魔板游戏Java课程设计报告Word下载.docx
- 文档编号:15124048
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:21
- 大小:192.30KB
魔板游戏Java课程设计报告Word下载.docx
《魔板游戏Java课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《魔板游戏Java课程设计报告Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法。
1.2课程设计内容
设计GUI界面的魔板游戏程序。
2系统需求分析
2.1系统目标
(1)设计一款经典的智力游戏,魔板游戏。
魔板由3*3或4*4个格子组成。
对于3*3魔板,在前8个格子里随即放置8个编号1-8的方块,最后一个格子是未放置方块的空格子;
对于4*4的魔板,在前15格子里随即放置15编号1-15的方块,最后一个格子是未放置方块的空格子。
(2)用鼠标单击任何与空格子水平或垂直相邻的方块可以把该方块移入空格子,而当前方块移动之前所在的格子成为空格子。
通过不断地移动方块可以将方块按数字顺序排好。
(3)魔板游戏也可以使用图像来代替数字。
例如,对于4*4的魔板,将一幅图像分成4*4幅小图像,除去最后一幅小图像(图像的右下角),将其余各幅小图像打乱顺序后放在魔板方块上,最终目标是通过移动方块恢复原始图像(不包括图像的右下角)。
(4)魔板游戏分为两个级别,用户可以通过界面上提供的菜单来选择“初级”或“高级”两个级别。
对于“初级”级别,魔板由3*3个格子组成;
对于“高级”级别,魔板由4*4个格子组成
2.2主体功能
此魔板游戏是一个应用程序(JavaApplication),用户通过点击游戏界面上的按钮或菜单栏选项魔板游戏控制游戏的初级、高级、等来开始游戏。
此游戏分散的图片或数字的移动规则是小方格会朝着空位置方向移动,玩家先在界面上选择图像玩法或数字玩法,然后通过鼠标左键点击菜单栏选项魔板游戏选择游戏的初级、高级,然后通过鼠标左键点击开始玩按钮图片或数字会自动随机的排列,用鼠标左键点击要移动的图片或数字,移动时,预备移往的图片或数字旁边必须有可供移往的空位置。
魔板游戏菜单的功能是玩家在游戏中任何时候都可以点击进入设置游戏的等级,在两个单选按钮中,程序为玩家提供了图像玩法和数字玩法两种不同的风格,玩家可以根据自己喜好选择自己喜欢的图片或数字开始魔板游戏。
2.3开发环境
操作系统:
MicrosoftWindowsXP/7
开发工具:
jdk1.6.0_22、MyEclipse8.5
3系统概要设计
3.1系统的功能模块划分
在设计魔板游戏时,需要编写3个java源文件:
PuzzleFrame.java、PuzzlePad.java、SquarePoint.java。
魔板游戏除了需要编写的上述3个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenuItem、JButton和JRadioButton等类,和一个图像文件。
3.1.2PuzzleFrame.java类模块
PuzzleFrame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始。
PuzzleFrame类的成员变量中有4种重要类型的对象:
PuzzlePad、JmenuItem、JRadioButton和JButton。
PuzzleFrame类的主要成员的作用将在后面的详细设计中阐述,PuzzleFrame类主要成员变量(属性)和主要方法如表1,2所示。
成员变量描述
变量类型
名称
魔板
开始游戏的按钮
选择玩法
选择级别
PuzzlePad
Jbutton
JradioButton
JmenuItem
开始
数字玩法,图像玩法
初级,高级
表1PuzzleFrame.java主要成员变量(属性)
功能
备注
PuzzleFrame
actionPerformed
main
创建程序主窗口
处理ActionEvent事件
程序开始运行的方法
构造方法
接口方法
表2PuzzleFrame.java主要方法
3.1.3PuzzlePad.java类模块
PuzzlePad类创建的对象是PuzzleFrame类最重要的成员之一,代表“魔板”。
该类的成员变量中有5种重要类型的对象:
Point、Block和Image。
PuzzlePad类类主要成员变量(属性)和主要方法如表3,4所示。
描述
魔板中的行数和列数
魔板中方块的宽和高
魔板中二维点数组
魔板中而为方块数组
模板可能用到的图像
int
SquarePoint[][]
JButton
Image
rows,colums
width,height
point
block
image
表3PuzzlePad.java主要成员变量(属性)
随机排列数字
随机排列图像
paintComponent
创建魔板对象
随机排列魔板中方块上的数字
随机排列魔板中方块上的图像
绘制图像
表4PuzzlePad.java主要方法
3.1.4SquarePoint.java类模块
SquarePoint类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。
SquarePoint.java类主要成员变量(属性)和主要方法如表5,6所示。
判断点上是否有方块
点上的方块对象
boolean
有方块
表5SquarePoint.java主要成员变量(属性)
SquarePoint
get有方块
set有方块
setBlock
getBlock
创建“点”对象
设置点上是否有方块
在点上放置方块
获取点上的方块
表6SquarePoint.java主要方法
3.2系统流程图
根据对模板游戏的功能分析,设计得到魔板游戏总流程,如图1所示:
图1系统流程图
4系统详细设计
由于我们要将这个游戏写成一个应用程序,所以首先要设计一下游戏的框架和菜单。
游戏的框架采用标准的Windows框架,在上面有标题栏、菜单栏,以方便玩家控制游戏。
我们应该先做好这一部分。
菜单栏包括魔板游戏。
框架中间嵌入显示单选按钮和按钮。
然后,应该在一个面板上构建游戏的界面,将这个面板嵌入到游戏的大框架里。
这样整个游戏的界面就出来了。
对菜单以及界面上的控制按钮进行响应,并相应地来控制游戏。
这时我们需要添加对菜单和按钮的事件响应方法。
在游戏面板构建好这后,我们应该让游戏能够玩起来,这一部分主要是编写一些算法,用来控制游戏。
这里我们还应该增加对鼠标事件的响应,让玩家用鼠标控制游戏。
为了实现魔板游戏的所有需求,设计应分为三个部分:
首先需要设计此魔板游戏的的界面以及其框架布局。
魔板游戏的基本框架从上由下依次是、菜单栏、游戏操作主界面。
菜单栏包含了魔板游戏一个菜单选项,并对各个菜单项以及界面上的小方格控制按钮进行事件响应,相应地来成功控制魔板游戏中的有关操作。
其次则需设计魔板游戏的“拼图”功能设计,需要设计在主界面中加载大图片并将其分割到9个或16个小方格里,在设置方格为按钮事件响应,然后编写算法控制小方格的移动,移动方向总是朝没有图案的空方格上移动,同时还需要在游戏中设置预览功能,让玩家在游戏的任何时候都能预览他们要完成的拼图。
魔板游戏的程序由三个类构成,其中类PuzzleFrame包含main()方法,另外两个类中PuzzlePad中则含五个方法:
方法PuzzlePad()、方法actionPerformed()、方法随机排列数字()、方法随机排列图像()和方法paintComponent();
另一个类SquarePoint
类中则包含了一个方法SquarePoint(intx,inty)
此魔板游戏由三个类实现所有设计需求。
第一个类PuzzleFrame定义了一个main()方法,创建了PuzzleFrame类实例,设置了程序的入口同时也设置了魔板游戏的Windows窗口主界面的菜单栏以及主界面分散按钮上的各个连接。
第二个类SquarePoint包含了一个SquarePoint(intx,inty)方法,这个方法控制主界面上分散的小图片受到鼠标的按钮响应后图片的移动,它控制小图片往没有图片的空位置移动。
第三个类PuzzlePad中则含五个方法:
方法PuzzlePad()添加图片和设置小方格的布局;
方法actionPerformed()实现小方格的移动规则;
方法随机排列数字()和方法随机排列图像()实现点击开始玩按钮时,随机产生一个图片和数字的排列;
方法paintComponent()实现小方格中黑色小方格功能实现。
5测试
5.1测试方案
打开eclipse运行环境,把包导入到eclipse中,打开主类PuzzleFrame编译运行结果如下图所示:
5.2测试结果
图23*3魔板游戏数字玩法
图34*4魔板游戏数字玩法
图43*3魔板游戏图像玩法
图54*4魔板游戏图像玩法
6小结
这次我做的课题是“模板游戏”,通过这次的课程设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。
同时,在软件开发方面也累积了不少经验,对java的知识重要性的认识更深了。
通过设计过程的锻炼,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对所学知识的理解。
这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的在技术上我也遇到了好多难题,好多东西都是第一次接触,我必需不断上网查询或去图书馆借书来研读,幸而经过努力,我虽不能很好的运用我所学的相关知识到实际开发中来,但是最终我还是按自己所预定的设计要求完成了流程的各个步骤,基本实现了我的电话簿管理工具需求的相关功能。
还有在这次设计中,我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。
同时,我也感受到了网络通信中服务器和客户相互通信的特点,加深了对网络通信知识的理解,对多线程和图像显示的了解,拓宽了我们的知识面。
通过几天努力,这次课程设计圆满的结束了,在这个过程中,我学到了很多的知识,在以后的学习中,我会更加努力的学好专业知识,并将所学知识用于实践当中去,以便牢固掌握知识。
参考文献
[1]耿祥义,张跃平.Java2实用教程(第三版)[M].北京:
清华大学出版社,2006
[2]耿祥义.Java课程设计(第三版)[M].北京:
清华大学出版社,2004
[3]张跃平.Java2实用教程实验指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 Java 课程设计 报告