最新java-课程设计报告-拼图游戏.doc





《最新java-课程设计报告-拼图游戏.doc》由会员分享,可在线阅读,更多相关《最新java-课程设计报告-拼图游戏.doc(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datejava-课程设计报告-拼图游戏目录目录一、 题目介绍.3 1、题目.3 2、任务.3 3、要求.3二、需求分析.3三、 概要设计.4 1、功能分析.4 2、界面初始化.4 3、事件处理(1)鼠标事件.4 4、事件处理(2)键盘事件.5 5、状态判断.5 6、程序流程图.5四、 详细设计.6 1、.html代码设计.6 2、.java代码设计.6五、调试结果.19第一
2、个大图的拼图界面.19第一个拼图全图预览.19第二个大图的拼图界面.20第二个拼图全图预览.20第三个大图的拼图界面.21第三个拼图全图预览.21六、心得总结.22七、参考资料.22一、 题目介绍1、 题目:拼图游戏设计2、 任务:利用java的图形用户界面设计,设计一个拼图游戏界面,能够实现基本的游戏功能。3、 要求:(1)游戏者可以选择不同的图片。(2)按完成的时间计算成绩。(3)记录拼图完成的总步数。二、 需求分析拼图游戏是一个简单的小程序,游戏规则如下:将一张大图打散成9张小图,然后在游戏里任意挑8张图,贴在3行3列的矩阵中的任意位置。通过鼠标或键盘的方向键移动打乱的8张图片,让其复原
3、成原来的顺序,玩家就胜利了,游戏就结束了。在游戏结束之后,算出玩家的得分。三、概要设计1、功能分析由于要计算游戏的时间,需要引入线程,通过实现Runnable接口和创建Thread类来实现线程的功能。使用多线程机制来计算时间的流逝。引入AWT绘图包,实现图片的绘制。 引入事件处理机制,要求对鼠标事件,键盘事件进行相应,实现移动图片,预览全图等功能。按键“Y”实现临时的原图整体预览。按键“1或者2或者3”实现大图选择、2、 界面初始化调用public void init()通过接收html数据,加载三张源图片,安装媒体监视器和鼠标键盘监听器,实现界面初始化;调用public void initD
4、ata()将加载的一张大图分割成九个随机分布的小图部分; 调用public void paint(Graphics g)划分提示信息区域和拼图区域;3、 事件处理(1) 鼠标事件调用public void mouseClicked(MouseEvent e)方法实现鼠标事件处理。调用Public int directionCanMove(int nCol,int nRow)方法检测那个方向没有拼图而可以向之移动。调用public void move(int nCol,int nRow,int nDirection)方法实现鼠标激活拼图移动。(2) 键盘事件调用public void keyPr
5、essed(KeyEvent e)方法实现键盘事件处理。 调用public void initImageAgain(int nImgNo)方法实现重新加载另一张大图。调用public boolean move(int nDirection)方法实现判断指定拼图是否可以往方向nDirection移动。4、状态判断动过调用public void checkStatus()方法来检测拼图状态,判断是否拼图成功,确定游戏是否结束。5、附加功能调用public void run()方法,给游戏过程添加计时进程。6、程序流程图四、 详细设计1、 编写.html代码拼图游戏拼图游戏这是一个拼图游戏。玩家应该
6、将打散的小图拼成一张大图。玩家可以通过鼠标和键盘来移动小图,移动的次数和拼成一张大图所化费的时间作为游戏得分的依据。成绩=1000-时间(秒)-移动步数*10按F1键重新开始该游戏,按Y健可以预览整个的图片2、 编写.java代码1、界面设计和附加功能import java.applet.*;import java.awt.*;import java.awt.event.*;import .*;/Download by public class pintu extends Applet implements MouseListener,KeyListener,Runnable Image m_
7、Image=new Image9; /9个用来装入每个拼图的图片对象 Image m_ImgAll; /总的大图片int m_nImageNo=new int33; /标志现在各个拼图的排列情况final int NO_IMAGE=-1; /此位置没有拼图,表示空白拼图final int IMAGE_WIDTH=120; /每张拼图的宽final int IMAGE_HEIGHT=120; /每张拼图的高final int DIRECTION_UP=1;final int DIRECTION_DOWN=2;final int DIRECTION_LEFT=3;final int DIRECTI
8、ON_RIGHT=4;final int DIRECTION_NONE=-1; final int DELTAX=120; /标志提示信息区的宽度 boolean bWantStartNewGame=false; /游戏是否结束,是否需要开始新游戏 int nStep=0; /已经走的步数 int nTime=0; /已经玩过的时间,以秒为单位 Thread thTimer; /计时器线程 int nScore=0; /玩家所得的分数 int m_nNumOfImg=0; /拼图底图所使用的图片的个数 String m_sImgName=new String9; /记录拼图底图的名字 bool
9、ean bOnShowAll=false; /预览的开关 AudioClip m_audioClip1,m_audioClip2; /装载要播放的声音对象 public void init()/ String param=getParameter(NumOfImg); try m_nNumOfImg=Integer.parseInt(param); catch(Exception e) m_nNumOfImg=1; System.out.println(Cant convert the params name to int.); for(int i=0;im_nNumOfImg;i+) m_s
10、ImgNamei=getParameter(Image+(i+1)+.jpg;/用字符串数组m_sImgName分别保存三个大图及其规范命名:p/pintu.jpg pintu1.jpg pintu2.jpg System.out.println(m_sImgNamei); System.out.println(param); MediaTracker mediaTracker=new MediaTracker(this); /为这个拼图界面设置一个监视器m_ImgAll=getImage(getDocumentBase(),img/+m_sImgName0); /从装载总的大图片mediaT
11、racker.addImage(m_ImgAll,1);/为向此媒体跟踪器正在跟踪的图像列表中添加一个图像,/并分配一个表示号1 给这个图像trymediaTracker.waitForID(1);/加载所跟踪的图像列表中的某一个标识号所对应的的一个图像catch(Exception e)System.out.println(图片装载出错); if(mediaTracker.isErrorAny()System.out.println(图片装载出错); for(int i=0;i9;i+) m_Imagei=createImage(IMAGE_WIDTH,IMAGE_HEIGHT); Grap
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 java 课程设计 报告 拼图游戏

限制150内