本设计采用单机服务器模式,游戏规则是模仿网络上普通的跳棋游戏,主要是鼠标两次点击的图片能否实现跳转到指定位置的问题。当前,前提是点击棋子图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以跳转;如果没有,则不予处理。
界面的设计
将整体界面分为三个大的部分,左上部分为游戏图片显示区域,即主区域,用IMAGE控件;右上角为命令按钮。
跳棋游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,方便人们娱乐的目的。
设计时遇到的问题
开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制跳棋游戏中棋子图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。
基本思路
1 解决游戏区域问题
这个问题最简单,但是却是最花时间的。正所谓:万事开头难。刚开始想了好多控件来实现。比如Label,Panel等等,后来在发现一个跳棋游戏可以通过image控件来画图。因此在几天之后才解决这个最早的最简单的也是最头疼的问题。
2 获取图片位置的思路
首先,最基本的就是关于程序图片的位置怎么获取,以及如何控制。这里采用最常用的方法——数组。考虑到图片是多行多列的格式。所以采用二维数组(数组名为flag[])的方式来控制比较直观,并且为了程序容易解读,统一在不同过程中用名为i和j的变量来分别表示行列。程序开始时给数组中的各个元素赋初值为0,即表示没有图片。
然后数组控制整个游戏区域,游戏区域最外围为空白区域,即相关元素的值为0。这样就可以保证游戏刚开始后,第二层显示的图片之间的相连路径处理时就没有阻碍了。
现在介绍flag[]数组具体控制图片的过程,首先,由于每张图片显示的宽度×高度为39×47,所以整个控件设置为468×376(包括外围空白的两行两列)。而每张图片可以用flag[i,j]来表示,它在image内部的位置为{x=i*39到(i+1)39,y=j47到(j+1)*47}这样image控件内的一点M(x,y)所对应的图片就可以转化为数组flag[i,j]的值来判断。这个思路的具体算法可以后面的3.2.2的第二个步骤中得以体现。
2 界面的设计和棋子图片的生成
由于这个程序的界面并不是很复杂,所以用到的控件也不多,主要核心内容还是后台的代码设计。图片的随机生成主要是用到一个random()函数将随机数赋值给flag[]数组中的每个元素,然后根据数组元素值,来显示图片。(这个在3.1.2的思路中有详细的介绍)
目 录
1 选题背景 5
1.1 课题来源 5
1.2 目的 5
1.3 意义 5
1.4 主要问题 5
1.5 发展概况 6
1.6 指导思想 6
2 设计原理 6
3 开发语言JAVA介绍 6
4 系统设计 10
4.1 基本思路 10
4.1.1 解决游戏区域问题 10
4.1.2 获取图片位置的思路 10
4.2 界面的设计和棋子图片的生成 11
4.2.1 界面的设计 11
4.2.2 棋子图片的生成 12
4.2.3 单击控件的事件触发 13
4.3 跳转路径是否符合规律 14
4.4 游戏界面 16
5 系统调试与测试 17
5.1 程序调试 17
5.2 程序的测试 17
5.2.1 测试的重要性及目的 17
5.2.2 测试的步骤 19
5.2.3 测试的主要内容 19
总结 21
谢辞 22
参考文献 23