当前位置:文档之家› 数字排序拼图游戏

数字排序拼图游戏

数字排序拼图游戏【摘要】: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 implementsMouseListener {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=newImageIcon("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){//RIGHTx+=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);cellNull.setLocation(x,y);break;}}}}else if(direction==3){//UPy-=100;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("DOWN",200);cellNull.setLocation(x,y);break;}}}}else{//DOWNy+=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("UP",200);cellNull.setLocation(x,y);break;}}} }if(!hasAddActionListener)//如果尚未添加动作事件,则添加for(int i=0;i<8;i++)//为第个方格添加动作事件,这样单击按钮就能移动了cell[i].addMouseListener(this);hasAddActionListener=true;}private boolean test(int x,int y){if((x>=0&&x<=200)||(y>=0&&y<=200))return true;elsereturn false;}六运行调试与分析讨论1.初始运行,界面如图一所示:图一2.运行结果,图片顺序打乱,则开始进行拼图游戏,运用鼠标,移动图片。

当游戏完成时,如图二所示:图二七设计大作业的体会与小结一个编程语言最强大的地方不是它是容易学,或者难学,而是它拥有一个强大的库。

JAVA是一个完全面向对象的语言,JAVA的命名规则是很容易让人接受的。

而且容易背编程人员记住。

经过几天的实践训练,对JAVA的综合应用能力有了较大的提高,另外对JAVA的特点有了更深层次的认识。

这次设计中使用的代码虽然不长,但类与类之间也有很强的逻辑关系,这就是面向对象语言的最大优势,这样可使编程者更轻松的运用JAVA。

做这次大作业我最大的体会就是不仅熟练地掌握了书本上的知识,还学到了很多书本上没有的知识。

在编写完程序,按照老师的建议,我把程序一遍一遍的改,从老师那我了解到,一个好的程序,应该能让别人容易读懂,所以变量名尽量用英文单词而不要用单个字母表示,还有代码中应该要有足够多的注释。

当遇到某个功能无法实现时,我会上网先百度,看看网上有没有好的解决方案,找不到的话就去问老师,通过老师提供的接口、类等,然后查询那个帮助文档。

相关主题