用C#开发智能手机软件:推箱子(二)

在上篇文章“使用 C# 开发智能手机软件:推箱子(一)”中,我对推箱子程序作了总体介绍。这次,我先介绍 Common/Fcl.cs 源程序文件。

以下是引用片段:

1 using System;
2 using System.IO;
3 using System.Drawing;
4
5 namespace Skyiv.Ben.PushBox.Common
6 {
7 ///
8 /// 这里是 .NET Framework 支持,而 .NET Compact Framework 不支持的东东
9 ///
10 static class Fcl
11 {
12 ///
13 /// 获取为此环境定义的换行字符串。-- Environment
14 ///
15 public static string NewLine { get { return "\r\n"; } }
16
17 ///
18 /// 打开一个文本文件,将文件的所有行读入一个字符串,然后关闭该文件。-- File
19 ///
20 /// 要打开以进行读取的文件
21 /// 包含文件所有行的字符串
22 public static string ReadAllText(string path)
23 {
24 string text = "";
25 if (File.Exists(path))
26 {
27 using (StreamReader sr = new StreamReader(path, Pub.Encode))
28 {
29 text = sr.ReadToEnd();
30 }
31 }
32 return text;
33 }
34
35 ///
36 /// 创建一个新文件,在其中写入指定的字符串,然后关闭该文件。-- File
37 ///
38 /// 要写入的文件
39 /// 要写入文件的字符串
40 public static void WriteAllText(string path, string contents)
41 {
42 using (StreamWriter sw = new StreamWriter(path, false, Pub.Encode))
43 {
44 sw.Write(contents);
45 }
46 }
47
48 ///
49 /// 将指定的 Size 添加到指定的 Point。-- Point
50 ///
51 /// 要添加的 Point
52 /// 要添加的 Size
53 /// 加法运算的结果
54 public static Point Add(Point point, Size size)
55 {
56 return new Point(point.X + size.Width, point.Y + size.Height);
57 }
58
59 ///
60 /// 将一维数组的大小更改为指定的新大小。-- Array
61 ///
62 /// 数组元素的类型
63 /// 要调整大小的一维数组
64 /// 新数组的大小
65 public static void Resize(ref T[] array, int newSize)
66 {
67 if (array != null && array.Length == newSize) return;
68 if (array == null) array = new T[0];
69 T[] newArray = new T[newSize];
70 Array.Copy(array, newArray, Math.Min(array.Length, newArray.Length));
71 array = newArray;
72 }
73 }
74 }

时间: 2024-11-01 20:57:35

用C#开发智能手机软件:推箱子(二)的相关文章

用C#开发智能手机软件:推箱子(七)

在上篇文章"使用 C# 开发智能手机软件:推箱子(六)"中,我对Common/Pub.cs 源程序文件进行了介绍.在这篇文章中介绍 Common/Step.cs 源程序文件. 以下是引用片段: 1namespace Skyiv.Ben.PushBox.Common 2{ 3 enum Direction { None, East, South, West, North } // 方向: 无 东 南 西 北 4 public enum Action { None, Create, Edi

用C#开发智能手机软件:推箱子(六)

在上篇文章"使用 C# 开发智能手机软件:推箱子(五)"中,我对经过改进后的 Common/FindPath.cs 源程序文件进行了介绍.在这篇文章中,介绍 Common/Pub.cs 源程序文件. 以下是引用片段: 1 using System; 2 using System.Drawing; 3 using System.Text; 4 using System.IO; 5 using System.Reflection; 6 7 namespace Skyiv.Ben.PushB

用C#开发智能手机软件:推箱子(五)

在上篇文章"使用 C# 开发智能手机软件:推箱子(四)"中,我对Common/FindPath.cs 源程序文件进行了介绍.在这篇文章中介绍经过改进后的 Common/FindPath.cs 源程序文件.也就是说,已经实现了"使用 C# 开发智能手机软件:推箱子(四)"的第二个评论中的想法,将地图 ushort[,] map 改为 byte[,] map 了.下面就是改进后的 FindPath 类: 以下是引用片段: 1 using System; 2 using

用C#开发智能手机软件:推箱子(四)

在上篇文章"使用 C# 开发智能手机软件:推箱子(三)"中,我对推箱子程序作了总体介绍.在这篇文章中,介绍 Common/FindPath.cs 源程序文件. 以下是引用片段: using System; using System.Drawing; using System.Collections.Generic; namespace Skyiv.Ben.PushBox.Common { /// /// 寻找最短路线 /// static class FindPath { static

用C#开发智能手机软件:推箱子(三)

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第三篇.在这篇文章中,介绍 Common/Block.cs 源程序文件. 以下是引用片段: 1 namespace Skyiv.Ben.PushBox.Common 2 { 3 /// 4 /// 基本单元格: 地 槽 墙 砖 箱子 工人 5 /// 6 static class Block 7 { 8 public const byte Land = 0; // 地 9 public const byte Slot = 1; //

教你用C#开发智能手机软件:推箱子(一)

最近,使用 C# 开发了一款智能手机软件:推箱子.先介绍一下这款软件的特点: 1.可以在智能手机上运行,也可以在计算机上运行. 2.退出程序时可保护现场,下次再运行自动恢复到原来的状态. 3.玩家通关后可以使用"录像"功能保存通关步骤,以便将来"回放". 4.可以自由设计关卡,批量进行数据导出和导入. 如下图的"解决方案资源管理器"所示,该程序的源程序主要分布在"Window"和"Common"两个文件夹中

HTC寄望开发国产智能手机软件对抗谷歌和苹果

据知情人士称,HTC董事长王雪红密切关注着智能手机操作系统的开发工作,她正在同中国政府官员讨论合作事宜.据悉,该软件将深度整合微博,按计划将在年底前发布. 这项计划说明中国消费者对HTC来说越来越重要,以及中国开发国产软件以对抗谷歌(微博)和苹果等美国科技巨头的决心.对于HTC来说,这也是它在两年前宣布的自有操作系统开发计划的最终成果.在中国市场,HTC仍然只是一个新进的厂商,它从2010年才开始在中国市场销售其自有品牌的智能手机,以前使用的品牌为"多普达". 中国政府鼓励技术厂商开发

C#编推箱子游戏的一些问题

问题描述 1,如何用Keydown键控制小人的上下左右行走,坐标是如何计算的?2.怎么控制小人和箱子坐标重合后,箱子的移动. 解决方案 解决方案二:坐等来人.....坐标应该可以通过数组解决吧?人和箱子重合的时候判断哪一边...然后....不懂了--解决方案三:"坐标"有两个含义,一个是编程世界的坐标,一个是应用领域的坐标.应用领域的坐标其x.y可能就是从1到5,表示最多有5行.5列.而编程领域的坐标,则可能是像素坐标系的坐标(例如x.y都是从0到800或者从0到任意n数值之间映射).

C语言实现的推箱子游戏

/* 这是彭搏同学的推箱子游戏,大家试试玩,谁有更好的Idea?*/ #include"stdio.h" #include"bios.h" #define LEFT 75 #define RIGHT 77 #define UPPER 72 #define DOWN 80 #define ESC 27 struct Boxss /*定义箱子结构体,其中包含坐标属性*/ { int x,y; }; union keyboard /*定义读取键盘码的共用体类型*/ { u