为了学习Android,自己编了一个小游戏,就是9宫格。
特点:
1.自动分析可选数字。
2.自动判断结果
3.支持Undo功能(Command设计模式)
4.支持自编题目。
功能简介
主画面
功能:
1.点击项目选择题目
2.按【Menu】键新建题目
3.长按项目选择删除或编辑题目
游戏/编辑画面
功能:
1.按数字按钮选择数字(置灰按钮不可选)
2.按【Undo】按钮取消上一步操作
3.编辑状态时按下【menu】键可以选择清除输入结果或保存题目
游戏状态下按下【menu】键可以选择清楚输入结果或启动自动填写功能(根据现在状态可以判断的部分)
基本的想法
最初的时候,每个格都有选择所有数字的机会,当相同行或相同列或相同块的其他格选择了某数字是,这个数字就不能再选。
当一个格的可选数字之剩一个时,就作为答案使用,这是这个结果又会影响其他的同行,同列及同块的格。有点递归的感觉。
当一个格里的可选数字都没有了的时候,判定失败。
为了在选错的时候,有取消的机会,通过Command设计模式实现的动作的记录和恢复。这里麻烦一点的是在某一格的数组决定以后,会对其他各有影响,需要记录所有的变化。
挺复杂的吧,其实代码比想象的要简单。
资源连接:
工程/源码:
用户名与密码都是
具体下载目录在 /pub/Android源码集锦/2011年/10月/Android小游戏九宫格源码/
类图:Android小游戏-9宫格类图类图,配合源码、请用EA(Enterprise Architect)打开
下载在Linux公社的1号FTP服务器里,下载地址:
FTP地址:ftp://www.linuxidc.com
用户名:
密码:
在 2011年LinuxIDC.com\10月\Android小游戏九宫格类图
下图中绿色的类就是Command模式相关的类。