前言
数独这个游戏大多数人都玩过,所以具体的游戏本身就不描述了。
详见百度百科:http://baike.baidu.com/subview/961/10842669.htm
规则和目标
数独的规则很简单,就是在每一行,每一列,每个小宫格区(3X3)内不可以出现重复的数字。
先贴一下大概的游戏界面样子:
需求功能分析
站在学习者的角度来说
练下手,学习一下MVC框架模式
这个项目涉及的Java的主要内容有:
1.Java基础语法,特别是Java集合的部分。
2.Java内置的Observer模式。
3.Java的AWT和Swing组件
4.Java组件布局和事件模型编程
站在游戏者的角度来说
目前仅仅是实现最基础的功能
1)可以产生新的游戏地图,点击new按钮。
2)判错:即是当前游戏进度内,是否不符合规则的数字填入
如下:
3)游戏辅助
即是开启help功能,点击相应的数字,就会在地图上提示该数字可以填入的地方。
如下:
4)游戏结束,提示是否继续游戏
5)退出
概要设计分析
既然说了要学习一下 wiki MVC,所以,采用MVC框架来进行这个项目。
所以,就要把数独这个游戏分割成model,view,controller三部分。
首先简要说下MVC各部分的功能:(内容来自WIKI,具体参见上wiki链接)
- 模型(Model) 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。(比较:观察者模式(软件设计模式))
- 视图(View)能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
- 控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。
框架图如下
model部分
1)游戏地图存储数据结构
2)游戏的新地图生成算法
3)check,help等功能算法
Controller部分
1)选项按钮和数字选择的响应动作
2)填数字的动作相应
View部分
1)选项按钮、Help单选框、数字组按钮
2)数字填入显示
4)监听器
其中使用Observer模式辅助实现数独的更新检查等操作。
ok,这一节内容就这些了。
NEXT
详细设计,包含类图,方法,算法等实现。
时间: 2024-10-10 14:47:28