五子棋游戏总体设计与实现
软件的角度进行考虑。
(2)灵活性:为保持软件长久的生命力,要求该手机游戏软件具有很强的环
境适应性。为此,游戏软件应具有较好的开放性和结构的可变性。
(3)可靠性:可靠性是指软件抵御外界干扰的能力及受外界干扰时的恢复能
力。
(4)经济性:经济性是指在满足游戏软件需求的前提下,尽可能地减小游戏
软件的开销。
4.1.2软件模块总体设计
软件中各模块之间的关系通常利用层次图来表示。它是一种一系列多层次
的用树形结构的矩形框描绘数据的层次结构框图。一个单独的矩形框作为树形
结构的顶层,各个数据的子集由下面的各层矩形框代表,最底层的各个矩形框
代表组成这个数据的实际数据元素(不能再分割的元素),它代表完整的数据结
构。这模式非常适合于需求分析阶段的需要,层次方框图对数据结构描绘随着
戏设置和帮助。按照在调研中搜集的资料对每个模块的功能进行编排制作。依
据上述功能的分析,本研究中,将游戏软件在三大模块的基础上又对每一大模
块又分为几个子模块:
游戏选项包括六个模块:开始游戏、重新游戏、悔棋、认输、背景音乐和
退出游戏。
游戏设置包括三个模块:先后手设置、棋盘底纹颜色设置和棋盘大小设置。
帮助包括两个模块:游戏帮助和关于。
个特性,本游戏摒弃了大多数游戏采用的线程或定时器驱动游戏的方法,而采
用了事件驱动的方法,即玩家的键盘或触摸笔触发游戏的下一个动作。事件驱
动大大减少了不必要的工作量,只有玩家发出消息时,计算机才启动运算,而
在玩家思考期间,计算机不做任何运算和重绘操作。
4.2.3游戏的类设计
五子棋游戏属于二维棋类游戏,因此可以定义一个Chesses类来表示棋子,
4.系统总体设计与实现
4.1总体设计分析
总体设计是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求
分析中提出的逻辑模型,科学合理地进行物理模型的设计。这个阶段的主要目
标是将反映用户信息需求的逻辑方案转换成物理方案,并为下一阶段提供必要
的技术资料。
4.1.1总体设计原则
(1)整体性:软件是作为统一整体而存在的。因此,在总体设计中要从整个
4.2游戏设计
4.2.1游戏前的准备
本游戏在开发之前需要做一些前期准备工作,尤其是对于精通五子棋游戏
的Java游戏开发者来说。通常情况下,一款运用起来比较熟练地J2ME开发
工具是必不可少的。本游戏使用的是J2ME的简化开发工具SunJava(TM)
WirelessToolkit2.5.2forCLDC,他需先将Java虚拟机安装调试好之后才能使用。
件驱动的核心自然是。从事件角度说,一个事件收集器、一个事件发送器和一
个事件处理器组成了事件驱动程序的基本结构。事件收集器专门负责收集包括
来自硬件的(如时钟事件等)、来自用户的(如键盘、鼠标事件等)及来自软件
的(如应用程序本身、操作系统等)的所有事件。将收集器收集到的事件分发
到目标对象中则由事件发送器负责完成。具体的事件响应工作则由事件处理器
WTK2.5.2不带有文本编辑功能,所以需要另寻搭配使用。本游戏采用Ultra
Edit进行编辑。本游戏需要几张后缀名为.png格式的卡通图,除了一张用作五
子棋游戏的Logo外,其余的都将在游戏中使用。
4.2.2游戏界面和事件驱动设计
游戏的界面设计采取传统游戏界面风格,如图4-2所示。游戏设计中采用
传统界面游戏风格,首先启动游戏,然后进入游戏开始界面,界面中放置“设
置”、“开局”、“帮助”、“关于”四个选项供玩家选择。其中“设置”选项主要
是对游戏的相关功能进行设置,如游戏难度设置。另外还有“悔棋”、“重玩”
等项目的设置。除此之外还包括查看游戏帮助、游戏介绍等。
图4-2游戏界面设计
所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什
么操作(即调用什么函数)。当然事件不仅限于用户的操作。我们知道,事件是事
用一个Chess类型的二维数组来包含棋盘上的所有棋子,对于该棋子玩家的区
分使用Chesses的boolean型的变量isPlayer1来区分。可以考虑直接生成数
组的每一个对象而不是在数组建立后,而是把每一个棋子对象(Chesses)放在游
戏的进行中生成,这主要是考虑到移动设备的资源有限,尽可能减少系统资源
占用。这样在游戏进行时,可以避免还没有下的棋子在一开始就占用了系统内
存,玩家每下一步棋,在数组相应位置生成该棋子的对象。
对于游戏中的每一类的设计,首先就是一个MIDlet类,Gobang类继承自
MIDlet类,通过方法startApp,pauseApp,destroyApp来通知游戏的开始,暂
停和销毁结束,用于连接设备的应用程序管理器(ApplicationManager)。
结构精细化也越来越详细。反复细化沿着图中每条路径,从对顶层信息的分类
开始,直到确定了数据结构的全部细节为止。
游戏选项
开始游戏
重新游戏
悔棋
认输
五
子
棋
游
戏
背景音乐
退出游戏
先后手设置
游戏设置
帮助
棋盘底纹设置
棋盘大小设置
游戏帮助
关于
图4-1游戏功能结构
本研究中将游戏软件分为三大模块,如图4-1所示,包括:游戏选项、游
本游戏共由7个类组成,它们各自的功能如下:
(1)GobangMIDlet类
负责程序的启动和屏幕之间的切换;
(2)GobangCanvas类
玩家的对战平台,他继承于Canvas类;
(3)Setting类
用于创建游戏的各项设置参数表单;
(4)GobangLogic类
游戏的逻辑类,负责胜负判断和计算机落子;
完成,它需要运用虚函数机制(函数名取为类似于HandleMsg的一个名字),
它往往要到实现阶段才完全确定。事件处理器对于框架的使用者来说是他们唯
一能够看到的。棋类游戏通常具备两个重要特性,首先是对战双方轮流落子,
其次是落子间隔通常是不确定的,尤其是对战后期,可能每一步棋都要经过深
思熟虑,无论是人还是计算机,都无法对时间间隔有事先的预期。基于以上两
(5)Dot类
棋子类,包含了棋子的位置信息;
(6)Help类
游戏的帮助类,包含五子棋的一些常识信息和五子棋教学内容;
(7)About类
游戏的关于类,包Байду номын сангаас游戏的版本、版权等信息。
各个类之间的关系如图4-3所示:
图4-3游戏类设计
4.2.4游戏的流程设计
对于棋盘界面的更新,游戏进行绘制棋子时是按照棋子的二维数组来完成