JAVA拼图游戏论文

  • 格式:doc
  • 大小:388.50 KB
  • 文档页数:27

四川师范大学成都学院高级语言程序课程设计基于JAVA的拼图软件的设计学生姓名彭长龙学号**********所在学院通信工程学院专业名称通信工程班级2011级1班指导教师王敏成绩四川师范大学成都学院二○一三年五月课程设计任务书基于JAVA的拼图软件的设计内容摘要:拼图游戏是一款非常经典的小游戏,因为它比较简单有趣,老少皆宜。

拼图游戏的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。

拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。

在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。

因此,如何设计和开发好这个拼图游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。

在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。

关键词:拼图游戏Java语言开发T he design of JAVA software based on the puzzle Abstract:Jigsaw puzzle is a very classic game, because it is easy and fun, both old and young, are more suitable.Jigsaw design language for each Java language designers to improve and advance is an excellent exercise opportunities. Puzzle design is more complex, its scope, and involves many more, if you do not think and design, would be difficult to successfully developed this game. In the design of the game involves display of the graphical interface and updating, data is collected and updated, and in the development of this game, class inheritance mechanism, and some design patterns you want to apply. Therefore, how to design and develop this jigsaw puzzle, for raising the level of Java development, and system design capabilities are of great help. During the process of design and development, you need to handle the inheritance relationships between the classes, also have to deal with each type of appropriate packaging, and also to coordinate the various logical dependencies between modules and data communication.Keywords:Jigsaw puzzle Java language develop目录前言 (1)1、开发工具介绍 (1)2、需求分析 (1)2.1开发环境与配置 (1)2.2功能要求 (2)2.3系统主要功能和主要功能描述 (2)2.4 关键技术 (5)3、详细设计 (6)3.1 核心功能代码实现技术 (6)3.2 程序的流程图 (7)3.3 程序运行效果图 (8)4、课程设计总结 (10)附录源代码 (11)参考文献 (22)基于JAVA的拼图软件的设计前言拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。

拼图的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。

拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。

在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。

因此,如何设计和开发好这个拼图游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。

在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。

1 开发工具介绍Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。

它主要由Eclipse项目、Eclipse 工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。

JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。

它提供建造块和构造并运行集成软件开发工具的基础。

Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

2 需求分析2.1开发环境与配置下载jdk1.6.0_16软件包,双击图标安装好JDK,将JDK安装后的bin目录路径复制下来,配置系统我环境变量。

2.2功能要求●实现图片的切割及随机分布。

●实现拼图游戏的拼图功能。

●在菜单栏里添加开始游戏、退出游戏、图片选择、难度选择的功能。

2.3系统主要功能和主要功能描述功能1:图片的放置新建工程PinTu,要求在工程中创建一个窗体类PinTu和类Play,在窗体类中编写图片放置方法septic,该功能属于基本功能,供其他方法所调用,为实现拼图游戏的图片选择、难度设置、开始游戏等功能作准备。

在septic方法中主要实现的功能是将图片切割成m行n列,并存放在pic 数组中;定义数组按扭btn[][],并且判断控件里是否为空,如果为空则分配m+1行n列的控件空间;如果存在则不分配空间这样有助于拼图游戏控件多少以及大小的改变。

将pic中存放的图片通过for循环放置在btn控件中。

图片放置方法的代码如下:public void setpic() //图片放置{isover.setText("拼图状态:未开始");step=0;lstep.setText("拼图步数:"+step+"步");w=280/m;h=290/n;Image[] a=splitImage(perimage1,1,1,100,100);perimagea=new ImageIcon(a[0]);if(pregtn1==null)pregtn1=new JButton(perimagea);elsepregtn1.setIcon(perimagea);pregtn1.setBounds(200,5,100,100);this.add(pregtn1);pic=new ImageIcon[m*n]; //分配空间大小if(btn==null) //如果为空就不重新分配控件btn=new JButton[m+1][n]; //分配控件空间p=new Rectangle[m+1][n]; //坐标Image[] t=splitImage(perimage1,m,n,w,h);for(int i=0;i<(m+1)*n;i++){int x=i/n,y=i%n; //下标转换if(btn[x][y]==null)btn[x][y]=new JButton();btn[x][y].setBounds(y*w+5,x*h+40,w,h); //设置数组按扭的位置if(m==5)btn[x][y].setBounds(y*w+5,x*h+60,w,h);btn[x][y].addActionListener(this); //添加事件this.add(btn[x][y]); //在窗体上加入这些按扭}for (int i=1;i<n;i++){btn[0][i].removeActionListener(this); //在按扭上添加事件btn[0][i].setVisible(false);}int temp[]=ran(m*n); //随机数组for (int i=0;i<m*n;i++){pic[i]=new ImageIcon(t[i]); //图片转换}for (int i=0;i<m*n;i++){btn[(i/n)+1][(i+n)%n].setIcon(pic[temp[i]]);}btn[0][0].setBackground(Color.blue); //设置背景颜色btn[0][0].setIcon(null); //设为空this.repaint(); //刷新}功能2:开始游戏在菜单中添加菜单选项开始游戏,通过对该菜单选项进行动作事件的监听,实现ActionListener接口,调用setpic方法,实现图片重新放置,游戏重新开始。

功能3:图片选择通过FileDialog df=new FileDialog (this,”图片选择”,FileDialog.LOAD);这个语句实现图片选择窗口,进行图片选择,将图片的控件设为空,然后再调用setpic图片放置方法将控件上的图片进行刷新。

图片选择功能实现的代码如下:if(e.getSource()==item3){FileDialog df=new FileDialog(this,"图片选择”,FileDialog.LOAD);df.setVisible(true);perimage1=df.getDirectory()+df.getFile();if(df.getFile()==null)return;for(int j=0;j<(m+1)*n;j++){int x1=j/n,y1=j%n;btn[x1][y1].removeActionListener(this);}setpic();return;}功能4:难度设置在窗体上添加菜单栏menubar,然后在菜单栏上添加操作、设置、关于的菜单,在设置菜单中添加难度设置的菜单选项。