您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > NIIT-2综合训练报告-魔板游戏
-0-NIIT-2综合训练专业计算机科学与技术学生姓名季胜伟班级B计算机094学号0910704409指导教师刘其明完成日期2011年7月8日信息工程学院1目录一、综合训练的目的...................................................................................................1二、综合训练的内容...................................................................................................1三、综合训练的具体实现...........................................................................................1四、综合训练的总结...................................................................................................5附录:源程序清单.......................................................................................................51NIIT-2综合训练一、综合训练的目的(1)进一步巩固所学的Java语言基础知识,达到熟练编写、运用的程度;(2)锻炼自己的面向对象的程序设计思想,能够深刻认识面向过程与面向对象两种设计方法之间的区别;(3)熟练掌握具体软件开发平台下(NetBeans)的动手能力,掌握Java应用程序设计的方法与技巧,实现从传统面向过程程序设计思维到面向对象程序设计思维的转型;(4)初步了解MIS的概念与相关知识,具备独立设计、实现小型MIS系统的应用开发能力。二、综合训练的内容题目:魔板游戏三、综合训练的具体实现1.设计内容:设计GUI界面的魔板游戏程序。2.设计要求A魔板3*3个方格组成,其中一个格子是空的。对于3*3的魔板,其他格子里随机放置8个编号为1~8的方块。B用鼠标单击任何与空格子相邻的方块可以把该方块移入空格子。通过不断的移动方块,可以将方块一行一行按数字顺序依次排列。C魔板游戏也可以使用图像来替代数字,对于3*3的魔板,将图像分成3*3个方块,打乱顺序后,放入魔板,并将其中一个方格置为空最终目标是通过移动方块恢复为原始图像。3.总体设计1)魔板游戏Java程序包括三个源文件和一个图像文件。如图所示PuzzleFrame(主类)PuzzlePadSquarePoint2PuzzleFrame.java:该Java文件生成的类负责创建魔板游戏程序主窗口,该类含有main方法,程序从该类执行。PuzzlePad.java:该文件生成的类负责创建魔板游戏中的魔板对象。SquarePoint.java:该文件生成的类负责创建魔板中的点对象。总的来说:即将该游戏写成一个应用程序,应该先设计框架和菜单。然后,应该在一个面板上构建游戏界面,将该面板嵌入游戏大框架。最后,对菜单以及界面上的控制按钮进行响应,并相应的来控制游戏,并编写程序使游戏可以玩起来。流程:4.具体设计运行程序3选择玩法(这里选择图像玩法)选择玩法(数字玩法)4进行游戏5四、综合训练的总结通过这次的课程设计,由于一开始不熟练的情况,出现了各种问题。在经过一次又一次的思考,和通过老师和同学的帮助,一遍又一遍的检查终于找出了原因所在,这也暴露出了前期我在这方面的知识欠缺和经验不足,最终得以顺利完成设计。并且,在掌握了Java基本知识的基础上,通过这次训练使得自身的Java的编程技术得到了显著的提高和加强。这也为我以后的该课程的学习打好Java语言的编程基础,也有效的提高了本人的Java语言开发具体项目的能力。附录:源程序清单PuzzleFrame.java:package魔板游戏;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassPuzzleFrameextendsJFrameimplementsActionListener{PuzzlePadpuzzlePad;JButton开始;JMenuBarbar;JMenufileMenu;JMenuItem初级,高级;JRadioButton数字玩法,图像玩法;ButtonGroupgroup=null;Containercon=null;publicPuzzleFrame(){bar=newJMenuBar();fileMenu=newJMenu(魔板游戏);初级=newJMenuItem(初级);高级=newJMenuItem(高级);fileMenu.add(初级);fileMenu.add(高级);bar.add(fileMenu);setJMenuBar(bar);初级.addActionListener(this);高级.addActionListener(this);开始=newJButton(开始玩);开始.addActionListener(this);6group=newButtonGroup();数字玩法=newJRadioButton(数字玩法,true);图像玩法=newJRadioButton(图像玩法,false);group.add(数字玩法);group.add(图像玩法);puzzlePad=newPuzzlePad(3,3,50,50);con=getContentPane();con.add(puzzlePad,BorderLayout.CENTER);JPanelpNorth=newJPanel();pNorth.add(数字玩法);pNorth.add(图像玩法);pNorth.add(开始);con.add(pNorth,BorderLayout.NORTH);con.validate();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});setVisible(true);setBounds(100,50,440,360);validate();}publicvoidactionPerformed(ActionEvente){if(e.getSource()==开始){if(数字玩法.isSelected()){puzzlePad.随机排列数字();}elseif(图像玩法.isSelected()){puzzlePad.随机排列图像();}}elseif(e.getSource()==初级){con.remove(puzzlePad);puzzlePad=newPuzzlePad(3,3,50,50);con.add(puzzlePad,BorderLayout.CENTER);7con.validate();this.validate();}elseif(e.getSource()==高级){con.remove(puzzlePad);puzzlePad=newPuzzlePad(4,4,50,50);con.add(puzzlePad,BorderLayout.CENTER);con.validate();this.validate();}}publicstaticvoidmain(Stringargs[]){newPuzzleFrame();}}PuzzlePad.java:package魔板游戏;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;importjava.util.Vector;importjava.awt.image.*;publicclassPuzzlePadextendsJPanelimplementsActionListener{introws,colums;intwidth,height;SquarePointpoint[][];JButtonblock[][];Vectorvector;intleftX=50,leftY=50;Imageimage=null;Toolkittool=null;MediaTrackermt;int图像的宽,图像的高;ImageblockImage[];boolean画图像=true;publicPuzzlePad(intr,intc,intw,inth)8{setLayout(null);vector=newVector();rows=r;colums=c;width=w;height=h;tool=getToolkit();try{image=tool.createImage(气球.jpg);mt.addImage(image,1);mt.waitForAll();}catch(Exceptione){}block=newJButton[rows][colums];point=newSquarePoint[rows][colums];for(inti=0;irows;i++){for(intj=0;jcolums;j++){if((i==rows-1)&&(j==colums-1)){}else{block[i][j]=newJButton();block[i][j].setSize(width,height);block[i][j].addActionListener(this);vector.add(block[i][j]);}}}for(inti=0;irows;i++){for(intj=0;jcolums;j++){point[i][j]=newSquarePoint(50+j*width,50+i*height);if((i==rows-1)&&(j==colums-1)){}else9{point[i][j].setBlock(block[i][j],this);}}}}publicvoidactionPerformed(ActionEvente){JButtonbutton=(JButton)e.getSource();intx=button.getBounds().x;inty=button.getBounds().y;intm=0,n=0;for(inti=0;irows;i++){for(intj=0;jcolums;j++){if(point[i][j].getX()==x&&point[i][j].getY()==y){m=i;n=j;}}}int上=Math.max(0,m-1);int下=Math.min(rows-1,m+1);int左=Math.max(0,n-1);int右=Math.min(colums-1,n+1);if(point[上][n].get有方块()==false){point[上][n].setBlock(button,this);point[m][n].set有方块(false);}elseif(point[下][n].get有方块()==false){point[下][n].setBlock(button,this);point[m][n].set有方块(false);}elseif(point[m][左].get有方块()==false)10{point[m][左].setBlock(button,this);point[m][n].set有方块(false);}elseif(point[m][右].get有方块()==false){point[m][右].set
本文标题:NIIT-2综合训练报告-魔板游戏
链接地址:https://www.777doc.com/doc-2884006 .html