用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, Edit, Delete } // 设计: 无 创建 编辑 删除
5
6 /**////
7 /// 走法步骤
8 ///
9 struct Step
10 {
11 Direction direct; // 前进方向
12 bool isBox; // 是否推着箱子一起前进
13 bool isStop; // “撤销”时是否停留
14
15 public Direction Direct { get { return direct; } }
16 public bool IsBox { get { return isBox; } }
17 public bool IsStop { get { return isStop; } }
18
19 public Step(Direction direct, bool isBox, bool isStop)
20 {
21 this.direct = direct;
22 this.isBox = isBox;
23 this.isStop = isStop;
24 }
25
26 // isBox isStop None East South West North
27 // A B C D E
28 // x F G H I J
29 // x K L M N O
30 // x x P Q R S T
31
32 public static implicit operator char(Step step)
33 {
34 char c = "ABCDE"[step.direct - Direction.None];
35 if (step.isBox) c = (char)(c + 5);
36 if (step.isStop) c = (char)(c + 10);
37 return c;
38 }
39
40 public static implicit operator Step(char c)
41 {
42 int n = c - 'A';
43 return new Step((Direction)(n % 5), (n % 10 >= 5), (n >= 10));
44 }
45 }
46}

时间: 2024-08-27 17:47:15

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

用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# 开发智能手机软件:推箱子(一)"中,我对推箱子程序作了总体介绍.这次,我先介绍 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 不支

教你用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数值之间映射).

正规公司新开发的软件,如何不被世界各地杀毒软件拦截,不被识别为恶意软件?

问题描述 正规公司新开发的软件,如何不被世界各地杀毒软件拦截,不被识别为恶意软件?具体如何做菜鸟求大牛挨着一步一步赐教好有个头绪是申请证书吗?数字签名?电子证书?到哪里申请,是世界各地的主流的杀毒软件! 解决方案 解决方案二:你软件做了什么?解决方案三:肯定与写注册表有关了.解决方案四:木有大神了解北京汉正天成科技有限公司的?解决方案五:找出哪个线程或具体的模块来再分析解决方案六:企业自研软件的资产管控工具http://sunantek.com/cn/list.asp?typeid=1&sort