为了学习Android,自己编了一个小游戏,就是9宫格。
特点:
1.自动分析可选数字。
2.自动判断结果
3.支持Undo功能(Command设计模式)
4.支持自编题目。
功能简介
主画面
功能:
1.点击项目选择题目
2.按【Menu】键新建题目
3.长按项目选择删除或编辑题目
游戏/编辑画面
功能:
1.按数字按钮选择数字(置灰按钮不可选)
2.按【Undo】按钮取消上一步操作
3.编辑状态时按下【menu】键可以选择清除输入结果或保存题目
游戏状态下按下【menu】键可以选择清楚输入结果或启动自动填写功能(根据现在状态可以判断的部分)
基本的想法
最初的时候,每个格都有选择所有数字的机会,当相同行或相同列或相同块的其他格选择了某数字是,这个数字就不能再选。
当一个格的可选数字之剩一个时,就作为答案使用,这是这个结果又会影响其他的同行,同列及同块的格。有点递归的感觉。
当一个格里的可选数字都没有了的时候,判定失败。
为了在选错的时候,有取消的机会,通过Command设计模式实现的动作的记录和恢复。这里麻烦一点的是在某一格的数组决定以后,会对其他各有影响,需要记录所有的变化。
挺复杂的吧,其实代码比想象的要简单。
下图中绿色的类就是Command模式相关的类。
标签:功能,题目,数字,九宫格,选择,源码,Command,按钮,Android From: https://blog.51cto.com/oothinking/5982838