1、软件设计汇报题 目: 拼图游戏 专 业 数字媒体技术 学 生 姓 名 班 级 学 号 日 期 5月 评 分 细 则评分项优异良好中等及格不及格平时表现(10%)程序演示(30%)汇报(60%)评分等级等级:老师署名: 年 5月备注评分等级有五种:优异、良好、中等、及格、不及格目录一、序言1二、项目开发计划书12.1技术可行性12.2人员可能性12.3代码工作量12.4开发环境1三、项目分析13.1设计目标13.2程序功效需求概述1四、软件测试汇报6五、不足分析9六、小结9附1:代码10附2:附录24一、序言鉴于拼图游戏是一款较为经典游戏,我们组选择了拼图游戏,借助Java - Eclipse这
2、么一个开发环境完成此次软件工程试验项目。二、项目开发计划书2.1技术可行性我们组组员系统学习了软件工程和Java相关知识,含有一定系统分析和设计能力,熟悉Java设计和操纵;早期大部分工作已经完成,因以后面工作相对轻松:指导老师林巧民老师多年从事软件工程和程序设计教学和研究工作,所以该系统实现在技术上是可行。2.2人员可能性程序设计、编写和调试由杜宗泽、沙杰。文档编写和整理,后期测试由陈凯负责。2.3代码工作量估计需一个星期左右。2.4开发环境开发环境:Java - Eclipse三、 项目分析3.1设计目标根据软件工程规范,以Java - Eclipse为前端开发工具,设计并实现一个拼图游戏
3、。3.2 程序功效需求概述(1) 实现载入3幅图片;(2) 设置字体;(3) 初始化界面;(4) 添加鼠标监听事件;(5) 面板初始化;(6) 单击鼠标时产生事件;(7) 鼠标进入某个区域时产生事件;(8) 鼠标突出某个区域时产生事件;(9) 移动鼠标时产生事件;(10) 拖动鼠标时产生事件;(11) 按下鼠标时产生事件;(12) 放开鼠标时产生事件;(13) 转换坐标;(14) 图片初始化;(15) 判定程序是否结束;(16) 游戏初始化。四、 软件测试汇报在Java - Eclipse环境中调试、运行程序点击运行后出现以下画面:单击选择美女头像,初始状态以下图:此时可依据需要单击左上角“小
4、程序”菜单进行功效选择,以下图:五、不足分析(1)4x4拼图难度较大;(2)右下角会有一块空缺,鉴于能力有限,未能完善。六、小结 经过两个星期努力,我们小组比较圆满地完成了此次课程设计题目拼图游戏。本练习制作拼图游戏实例,利用了Java2中图形处理技术和消息响应技术。经过图形技术,实现图片导入和分割。经过消息响应机制,使程序能够响应用户鼠标操作,进行拼图游戏操作。在为期一周学习实践中,最大收获是锻炼了自己编程能力。熟悉了Java - Eclipse开发环境。程序编写是最为艰辛过程。首先,因为没有较为深入学习Java高级语言,我们小组在开始程序编写工作之前,借阅了相关书籍,初步学习了Java语言
5、中各项功效。在又了一定知识积累后,我才着手开始项目程序编写。程序编写灵魂在于算法设计,所以我们组在这部分花费精力也最多。算法比较复杂。刚开始因为思索不够全方面,编写程序虽能勉强完成大约功效需求,但还是出现了很多bug。以后经过对算法重新审阅,和查阅相关书籍,不停修改已经有程序,最终基础消除了bug。在程序编写过程中,还出现了部分小问题,尤其是部分语言书写规则,细节功效实现着实让我们组大费了部分周折。自学了相关软件工程知识,并能够把自学导内容加以实践和应用。因为我没有选修这门课程,所以造成在实践过程中还是碰到了部分问题,比如在软件开发初级阶段,和小组组员讨论系统功效结构化设置时,就不能全方面有效
6、构思清楚。幸好另外一名同组组员较系统地学习了这门课程,经过讨论,最终设计出了现在程序。经过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提升。安排课程设计基础目标,在于理论和实际结合,人和人之间沟通,尤其是观察、分析和处理问题实际工作能力,作为整个学习体系有机组成部分,课程设计即使只安排了两周进行,但并不含有绝对独立意义。这次课程设计,让我找出了本身情况和实际需要差距,并在以后学习期间立即补充相关知识,为求职和正式工作做好充足知识、能力准备,让我受益匪浅。 代码部分import java.awt.*;import java.applet.*;import java.awt.even
7、t.* ;public class pintu extends Appletimplements MouseListener,MouseMotionListener private Image picture;private Graphics buffer;private Image pic;private Image off_pic;private Graphics off_buf;private Image off_screen;private Graphics off_buffer;private Image off_drag;private Graphics off_drag_buf;
8、private int map;private int ran;private int width=0;private int height=0;private int lastx;private int lasty;private int last_downx;private int last_downy;private int stepx;private int stepy;private boolean choose;private boolean click;private boolean m_down;private boolean m_drag;private boolean no
9、t_redraw;private boolean able;Font font1,font2;/程序初始化public void init()resize(640,480);pic = new Image 3;off_pic = new Image16;off_buf = new Graphics 16;map = new int 44;ran = new int 15;for(int a=0;a16;a+)mapa/4a%4 = a;for(int a=0;a15;a+)rana=a;click=new boolean 44;MediaTracker tracker= new MediaTr
10、acker (this);/要载入图片pic0=getImage(getCodeBase(),PICTURE0.JPG);pic1=getImage(getCodeBase(),PICTURE1.JPG);pic2=getImage(getCodeBase(),PICTURE2.GIF);tracker.addImage (pic0,0);tracker.addImage (pic1,0);tracker.addImage (pic2,0);trytracker.waitForID (0);catch(InterruptedException e)/设置字体font1= new Font (T
11、imesRoman, Font.BOLD, 48);font2= new Font (TimesRoman, Font.BOLD, 32);width=640;height=480;/初始化主界面initForm();/添加鼠标监听事件addMouseListener(this);addMouseMotionListener(this);/面板初始化void initForm()this.setBackground (Color.orange);if(off_drag=null)off_drag = createImage(width/4,height/4);off_drag_buf = of
12、f_drag.getGraphics ();public void paint(Graphics g)if(off_screen=null)off_screen = createImage(width,height);off_buffer=off_screen.getGraphics ();if(able)off_buffer.setColor (Color.black );for(int a=0;a4;a+)for(int b=0;b4;b+)if(mapab!=15)off_buffer.drawImage (off_picmapab,b*width/4,a*height/4,this);
13、if(mapab=15)off_buffer.fillRect (b*width/4,a*height/4,width/4,height/4);for(int c=0;c2;c+)off_buffer.drawRect (b*width/4+c,a*height/4+c,width/4-c,height/4-c);if(clickab)off_buffer.setColor(Color.red);for(int d=0;d30 & point.x50 & point.y370 & point.x160 & point.y60 & point.x270 & point.y30 & point.x
14、50 & point.y370 & point.x160 & point.y60 & point.x270 & point.y640 | point.y480)return point;else return point = new Point (point.x/160,point.y/120);/图片初始化void initmap(int stage)picture = createImage(width,height);buffer = picture.getGraphics ();buffer.drawImage (picstage,0,0,640,480,this);for(int a
15、=0;a15;a+)off_pica = createImage(width/4,height/4);off_bufa = off_pica.getGraphics ();off_bufa.drawImage (picture,0,0,width/4,height/4,(a%4)*width/4,(a/4)*height/4,(a%4+1)*width/4,(a/4+1)*height/4,this);initgame();repaint();/程序是否结束boolean wingame()for(int a=0;a4;a+)for(int b=0;b4;b+)if(mapab=a*4+b);else return false;return true;/游戏初始化void initgame()for(int a=0;a4;a+)for(int b=0;b14)temp=0;mapab=rantemp;rantemp=-1;elseranmapab=-1;else map33 = 15;附录说明本例知识点一句话讲解新学知识使用Image类导入图片使用MouseEvent类处理鼠标事件已学知识使用Point类转换坐标使用Graphics类管理屏幕显示
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100