数字排序拼图游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字排序拼图游戏
【摘要】:Java语言的学习热潮并没有因为时间的推移而消退,相反,由于计算机技术的发展所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的。Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java自身的功能。有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。
【关键字】:Java;发展;程序设计
一引言
现代科学技术的发展,改变了人类的生活,作为新世纪的大学生,应该站在时代发展的前沿,掌握现代科学技术知识,以适应社会的发展,能够独立完成面临的任务,作为一名有创新意识的新型人才。
拼图游戏是广受欢迎的一种智力游戏,它的变化多端,难度不一,让人百玩不厌。个性化的拼图,拼凑的不仅仅是一张照片,而是一个故事,一段回忆,一缕温情。每一片的单片都有它自己的位置,就像每段回忆都有它的故事,你要将它放在专属的地方,放对了就慢慢丰富起来,放错了就无法完整。
二设计大作业的目的与要求
1.1 设计目的
JSP/JAVA是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完JSP/JAVA课程后,进行的一次全面的综合训练,JAVA程序的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2 设计的实验环境
硬件要求能运行Windows XP操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。
1.3 设计的预备知识
熟悉JAVA语言及ECLIPSE开发工具。
1.4 设计要求
按大作业指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
三需求分析
一款游戏项目的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求或者是出于公司自身发展和实力的情况,其中玩家的实际需求也就是说市场需求最为重要.面对游戏拥有不同知识和理解层面的玩家,项目的负责人(或者游戏制作人)对玩家需求的理解程度,在很大程度上决定了此类游戏开发项目的成败.因此如何更好地的了解,分析,明确玩家需求,并且能够准确,清晰以文档的形式表达给参与项目开发的每个成员,保证开发过程按照满足玩家需求为目的正确项目开发方向进行,是每游戏开发项目管理者需要面对的问题。
拼图游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。我通过所学的JSP设计了一个操作简单、界面美观的拼图游戏。
在制作这个拼图游戏之前,要熟悉Canvas屏幕类,来控制方格的移动。运用MyCanvas为16个方格加载数字,并初使化坐标,形成四行四列。将表单、屏幕、与事件处理融合使用。加深知识的记忆与熟悉,为更好地学习JSP打下结实的基础。
本作品是单人小游戏,适用于任何时候玩耍,因此未来的修改空间十分开阔。属于益智小游戏,简单易懂,技术要求相对较低,所以比较适合青少年玩耍。
四拼图游戏发展概况
拼图玩具已经有约235年的历史了。早在1760年,法英两国几乎同时出现这种既流行又有益的娱乐方式。把一张图片粘在硬纸板上,然后把它剪成不规则的小碎片。最初这些图片都是有教育意义的,要么附有适于年轻人阅读的短文,要么向新兴资产阶级传授历史或地理知识。
到19世纪初,新的大规模生产工业技术赋予了拼图明确的形式。以前庞大笨重的拼图由边缘光滑的碎片排列组成,轻微的震动就能使它们分开。在1840年左右,德国和法国的拼图制造商用联锁的咬接机来切割拼图,现代的拼图迷们都很熟悉这种形式。他们用软木材、夹板和纸板代替硬木薄板,大大降低了成本。最终价格低廉的拼图被各阶层的消费者接受,很快在孩子们、成年人和老年人中掀起玩拼图狂潮一直持续到当今社会。
五 Java文件分析
1、成员变量描述(如表一所示):
表一
2、源代码分析:
(1)运用画布的继承监听命令:
public class MyCanvas extends JPanel implements
MouseListener {
boolean hasAddActionListener=false;
//设置方格的动作监听器的标志位,TRUE为已经添加上动作事件,FALSE是
尚未添加动作事件
Cell cell[];//定义方格
Rectangle cellNull;//定义空方格区域
public MyCanvas() {
this.setLayout(null);
this.setSize(500,500);
cellNull=new Rectangle(300,300,200,200);
//空方格区域在第四行每四列
cell=new Cell[16];
Icon icon;
for (int i = 0; i < 4; i++) {
//为9个方格加载数字,并初使化坐标,形成三行三列
for(int j=0;j<4;j++){
icon=new
ImageIcon("pictrue/pic_"+pictureID+"_"+(i*4+j+1)+".jpg");
cell[i*3+j]=new Cell(icon);
cell[i*3+j].setLocation(j*100,i*100);
this.add(cell[i*3+j]);
}}
this.remove(cell[15]);//移除最后一个多余的方格}
public void reLoadPictrue(){
(2)对方格进行重新排序,并运用时间添加控制循环:
public void Start(){
while(cell[0].getBounds().x<=100&&cell[0].getBounds().y<=100){//
当第一个方格距左上角较近时
int x=cellNull.getBounds().x;
int y=cellNull.getBounds().y;
int direction=(int)(Math.random()*4);
//产生0-4,对应空方格的上下左右移动
if(direction==0){
//空方格左移动,与左侧方格互换位置,左侧方格右移动
x-=100;
if(test(x,y)){
for(int j=0;j<8;j++){
if((cell[j].getBounds().x==x)&&(cell[j].getBounds().y==y)){ //依
次寻找左侧的按钮
cell[j].move("RIGHT",100);
cellNull.setLocation(x,y);
break;//找到后跳出for循环
}}}
}else if(direction==1){//RIGHT
x+=200;
if(test(x,y)){
for(int j=0;j<15;j++){
if((cell[j].getBounds().x==x)&&(cell[j].getBounds().y==y)){
cell[j].move("LEFT",200);