Java从基础到进阶学习之路----数独小游戏制作(一)

前言

数独这个游戏大多数人都玩过,所以具体的游戏本身就不描述了。

详见百度百科: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

详细设计,包含类图,方法,算法等实现。



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。