南京邮电大学计算机学院
2014/2015学年第1学期
《JAVA语言》课程报告
课题代号(单选)□课题1 □课题2 □课题3
课题名称: 拼图游戏
小组成员人数(单选)□1人 □2人 □3人 □4人
小组成员名单(学号和姓名):
(1)学号 姓名
(2)学号 姓名
(3)学号 姓名
(4)学号 姓名
课题实现采用的开发工具(如为其他,请填写具体工具名称)
□NetBeans □Eclipse □JDK命令行 □其他______________
课题实现采用的操作系统(如为其他,请填写操作系统名称)
□Microsoft Windows □Unix □ Linux □其他__________________
课题实现形式(如为PC桌面应用程序之外的其他形式请填写)___________
课题完成时间:_______2014年12月28日________________________
对应提交的电子文档文件夹名称(准确填写):
_______________________________________________________________
===================以下部分为教师填写区,请勿填写=======================
评阅编号:( )-( )
成绩评定:
软件运行______软件基本功能_______软件提高功能______ 软件部分成绩________文档结构______文档理论___________文档撰写__________ 文档部分成绩________
总成绩_____________
备注____________________________________________________________________
基本要求:在游戏界面显示一幅完整图片,点击游戏开始后该图片自动被分割为指定的M*N(其中M和N分别为图块矩阵的行和列,例如3x3=9块,4x5=20块)个图片小方块并随机散布在游戏界面中,使用鼠标拖动小方块进行拼接,正确归位的方块将被固定,直到全部图片还原,游戏结束。
提高要求:可以有多张图片供游戏者选择;实现倒计时功能;可以给游戏者提供提示功能;实现游戏难度的自适应(例如M,N数值的自适应算法和小图块的散布算法),即在初始时以及对游戏水平低的人而言游戏应该比较容易,对水平高的人游戏应随之增加难度;游戏画面的精细完善,有最佳的动画以及声音效果。
分析与总体设计
(拼图游戏需要解决的问题有:
图片的分割
图片分割后打乱位置
图片缩放作为预览图适应界面大小(不同的图片大小统一)
图片都恢复原位后判断拼图完成
(初步设计的流程图:
JFrame:主界面的设计
splitImage:图片缩放和图片的分割
picture:图片位置和将图片放入按钮之中check:判断游戏是否完成图片是否回归原位
randarry:产生随机数组用于打乱图片
ActionListener:注册事件每个组件事件的具体内容,其中移动图片的机制是将一个按钮设置为null;所以当非空按钮边有一个空按钮时将其中的图片交换。算法分析
最初设计游戏的想法是利用按钮,将图片添加到每个按钮之中然后移动图片将相邻的按钮中的图片进行交换,再定义一个int变量用来记录步数。图片的分割中利用Graphics绘制一个指定大小的区域,然后将图片中的一部分绘制到区域中用一个图数组保存,此种方法即可以分割图片也可以压缩图片。打乱图片所利用的是随机数,由于每个分割后的图片都是存放在数组中的所以可以利用数组的下再利用随机数将图片随机加入到按钮之中。当选择难度时定义了
详细设计
Jigsaw类
(
成员变量名menu1-3JMenu菜单栏item1-6JMenuItem菜单选项lvl1-3JRadioButtonMe