欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    魔板游戏课程设计.docx

    • 资源ID:1579605       资源大小:134.33KB        全文页数:22页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    魔板游戏课程设计.docx

    1、魔板游戏课程设计20102011学年度JAVA GUI课程设计班级:_ _学号:_ _ 姓名:_ _2010 年 12月 16 日魔板游戏一、 设计内容设计GUI界面的魔板游戏程序。二、 设计要求1、 魔板由4*4或3*3个方格组成,其中一个格子是空的。对于4*4的魔板,其他格子里随机放置15个编号为115的方块;对于3*3的魔板,其他格子里随机放置8个编号为18的方块。2、 用鼠标单击任何与空格子相邻的方块可以把该方块移入空格子。通过不断的移动方块,可以将方块一行一行按数字顺序依次排列。3、 魔板游戏也可以使用图像来替代数字,对于4*4的魔板,将图像分成4*4个方块,打乱顺序后,放入魔板,并

    2、将其中一个方格置为空。最终目标是通过移动方块恢复为原始图像。三、 总体设计(10分)1. 魔板游戏的主界面 图3.1 主界面2. 源文件及其功能魔板游戏程序设计通过MainFrame.java、PlayPanel.java、CalPanel.java、ImageButton.java4个类来实现魔板游戏的整体功能。源程序功能MainFrame.java构造程序主界面并布局,侦听主界面按钮,完成计时功能。包含mian()方法,是程序入口。PlayPanel.java构造3*3魔板,侦听魔板上的每个按钮,并有此游戏的开始和结束的方法。CalPanel.java构造计时、计算已经移动步数的子面板。I

    3、mageButton.java构造按钮,给按钮以规范的设置。 表格3.2源程序功能 3. 关系说明源文件相关的源文件关系说明MainFrame.javaPlayPanel.java调用,根据不同的要求在住界面上构造魔板。如:选择卡通图片时加载相应的开通图片。CalPanel.java调用,根据不同的要求在住界面上构造子面板。如:数字玩法时不需要加载示例图片。PlayPanel.javaImageButton.java调用,加载魔板上的按钮。CalPanel.java调用,在计算移动魔板时执行相应操作使之步数加一。 表格3.3源文件关系说明四、主类说明(1分)1. 主类成员变量名称类型描述pla

    4、yPanelPlayPanel魔板类,继承于JPanelcalPanelCalPanel子面板,继承于JPanelmbJMenuBar菜单栏mHelpJMenu帮助菜单mSelectPictureJMenu选择图片菜单mSelectLevelJMenu选择难度级别菜单mBearJMenuItem卡通图片菜单项mPeopleJMenuItem风景图片菜单项oneGradeJMenuItem初级菜单项twoGradeJMenuItem高级菜单项 表格4.1主类成员变量digitPlayJRadioButton数字玩法选择按钮picturePlayJRadioButton图片玩法选择按钮butGro

    5、upButtonGroup按钮多斥作用域startButJButton开始游戏按钮whichPlayString判断那种玩法,有数字,图像whichOverString判断结束时,判断加载的是哪一张图片来匹配原图countTimeint记录游戏所用时间timerTimer计时器类2. 主类方法表格4.2主类方法名称功能备注MianFrame()初始化所有组件。构造方法。void LaunchFrame()布局组件。-void LaunchPlayPanel()根据选择类型加载想一个的图像面板。带参数which,判断图片类型,String类型。void actionPerformed()给按钮的

    6、侦听器增加相应的操作。-class CloseHandler extends WindowAdapter监听窗口的关闭。内部类。void main()程序入口。主方法。class MyTimerTask extends TimerTask创建一个TimerTask的子类,来完成计时的任务。-四、 其他各类的描述和说明。(1分)1. PlayPanel类表格5.1.1 PlayPanel类成员变量成员变量类型描述imageButtonImageButton面板上的按钮,为3*3的二维数组imageListArrayList数组链表存放按钮上的图像copyOfImageListArrayList存

    7、放最初时按顺序排列的图像emptyButtonImageButton空按钮gameOverboolean判断该游戏是否结束whichPlayString判断那种玩法,有图像,数字countStepint记录移动步数表格5.1.2 PlayPanel类成员方法成员方法功能备注PlayPanel() 初始化魔板。不带参数,默认。PlayPanel()初始化魔板。带参数which,判断图片类型,String类型。void startGame()随机排列图像集合中的图片,创建游戏开始时的界面。void actionPerformed()给移动的按钮的侦听器增加相应的操作boolean isFinish

    8、ed判断游戏结束的条件带参数whichOver,String类型2. CalPanel类表格5.2.1 CalPanel类成员变量成员变量类型描述lblTimeJLabel时间标签txtTimeJTextField记录时间文本框lblStepJLabel移动步数标签txtStepJTextField记录移动步数文本框lblPictureJLabel加载示例图片标签表格5.2.1 CalPanel类成员变量成员方法功能备注CalPanel() 初始化子面板。3. ImageButtton类表格5.3.1 ImageButton类成员变量成员变量类型描述rowint按钮的行标记colint按钮的列

    9、标记表格5.3.1 ImageButton类成员方法成员方法功能备注ImageButton()初始化魔板按钮。ImageButton()初始化魔板按钮。带参数icon,ImageIcon类型。void setRow(int row)设置按钮行值带参数row,int类型void setCol(int col)设置按钮列值带参数col,int类型int getRow()获取按钮行值返回类型为intint getCol()获取按钮列值返回类型为int五、 附主要源代码(分)1. MainFrame模块源代码import java.awt.*;import java.awt.event.*;impor

    10、t javax.swing.*;import javax.swing.JOptionPane;import java.util.*;import java.util.Timer;public class MainFrame extends JFrame implements ActionListener /*-声明所有需要的组件-*/ PlayPanel playPanel; CalPanel calPanel; JMenuBar mb; JMenu mHelp; JMenu mSelectPicture, mSelectLevel; JMenuItem mBear,mPeople,oneGr

    11、ade,towGrade; JRadioButton digitPlay,picturePlay; /为一组按钮创建一个多斥作用域。意味着“开启”其中一个 /按钮时,将关闭组中的其他所有按钮。 ButtonGroup butGroup; JButton startBut;/*-组件声明完毕-*/ String whichPlay=;/判断那种玩法,有数字,图像,图像中有小熊和人物 static String whichOver=;/判断结束时,判断加载的是哪一张图片来匹配原图 /记录游戏所用时间 int countTime; Timer timer; public MainFrame() /-

    12、初始化所有组件- new JFrame(); this.setTitle(魔板游戏); mb=new JMenuBar(); mHelp=new JMenu(帮助); mSelectPicture=new JMenu(选择图片); mSelectLevel=new JMenu(选择级别); mBear=new JMenuItem(卡通); mPeople=new JMenuItem(风景); oneGrade=new JMenuItem(初级); towGrade=new JMenuItem(高级); digitPlay=new JRadioButton(数字玩法,true); picture

    13、Play=new JRadioButton(图像玩法,false); butGroup=new ButtonGroup(); startBut=new JButton(开始游戏); /-初始化组件结束- public void LanuchFrame() /-布局组件- this.setJMenuBar(mb); mb.add(mSelectPicture); mb.add(mSelectLevel); mb.add(mHelp); mSelectPicture.add(mBear); mSelectPicture.add(mPeople); mSelectLevel.add(oneGrade

    14、); mSelectLevel.add(towGrade); butGroup.add(digitPlay); butGroup.add(picturePlay); /为每个按钮添加侦听器 mBear.addActionListener(this); mPeople.addActionListener(this); mHelp.addActionListener(this); oneGrade.addActionListener(this); towGrade.addActionListener(this); digitPlay.addActionListener(this); picture

    15、Play.addActionListener(this); startBut.addActionListener(this); /添加菜单下方的面板,用来装数字,图像玩法的RadioButton,及开始游戏按钮 JPanel pNorth=new JPanel(); pNorth.add(digitPlay); pNorth.add(picturePlay); pNorth.add(startBut); this.add(pNorth,BorderLayout.NORTH); /-初始化时,默认加载数字图片,进行游戏 playPanel=new PlayPanel(); calPanel=ne

    16、w CalPanel(); this.add(playPanel,BorderLayout.CENTER); this.add(calPanel,BorderLayout.EAST); this.setBounds(100, 100, 600, 400);/为窗口设定大小 this.setResizable(false);/固定窗口大小 this.setVisible(true);/是主窗口可见 /*-根据选择类型加载想一个的图像面板-*/ public void LaunchPLayPanel(String which ) whichPlay=which; /-根据传进的参数判断要加载那个图

    17、片- if(whichPlay.equals(bear) playPanel=new PlayPanel(bear); calPanel=new CalPanel(); calPanel.lblPicture.setIcon(new ImageIcon(bear.jpg); this.add(playPanel,BorderLayout.CENTER); this.add(calPanel,BorderLayout.EAST); whichOver=bear; else if(whichPlay.equals(people) playPanel=new PlayPanel(people); c

    18、alPanel=new CalPanel(); calPanel.lblPicture.setIcon(new ImageIcon(people.jpg); this.add(playPanel,BorderLayout.CENTER); this.add(calPanel,BorderLayout.EAST); whichOver=people; else if(whichPlay.equals(number) playPanel=new PlayPanel(number); calPanel=new CalPanel(); calPanel.lblPicture.setIcon(null)

    19、; this.add(playPanel,BorderLayout.CENTER); this.add(calPanel,BorderLayout.EAST); whichOver=number; /*-给按钮的侦听器增加相应的操作-*/ public void actionPerformed(ActionEvent e) /显示帮助 if(e.getSource()=mHelp) String helpMessage = 此游戏是通过单击图片来实现图片的移动, 游戏的最终任务是要n+ 游戏面板上的图片排列的跟预览图中的图片一样, 为游戏结束; JOptionPane.showMessageD

    20、ialog(this,helpMessage); /选择小熊菜单项,把先前的面板移除,重新加载小熊面板 if(e.getSource()=mBear) picturePlay.isSelected(); this.remove(playPanel); this.LaunchPLayPanel(bear); /加载人物图片吗 if(e.getSource()=mPeople) picturePlay.isSelected(); this.remove(playPanel); this.LaunchPLayPanel(people); /加载数字图片 if(digitPlay.isSelected

    21、() this.remove(playPanel); this.LaunchPLayPanel(number); /开始游戏 if(e.getSource()=startBut) playPanel.startGame(); calPanel.txtTime.setText(0); calPanel.txtStep.setText(0); /跟踪计时 countTime=0; timer=new Timer(); timer.schedule(new MyTimerTask(),0,1000); /*-监听窗口的关闭-*/ private class CloseHandler extends

    22、WindowAdapter Override public void windowClosing(WindowEvent e) System.exit(0); /*-主方法,程序入口-*/ public static void main(String args) MainFrame m=new MainFrame(); m.LanuchFrame(); JOptionPane.showMessageDialog(m, 选择开始玩游戏); /*-创建一个TimerTask的子类,来完成计时的任务-*/ class MyTimerTask extends TimerTask public void

    23、 run() calPanel.txtTime.setText(String.valueOf(countTime+); 2. PlayPanel模块源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class PlayPanel extends JPanel implements ActionListener /面板上的按钮,为3*3 的二维数组ImageButton imageButtons = new ImageButton33; /数组链表存放按钮上的图像

    24、 ArrayList imageList = new ArrayList(); /存放最初时按顺序排列的图像,并用之判断游戏是否结束ArrayList copyOfImageList = new ArrayList(); /空按钮,按钮上没有图像mageButton emptyButton=new ImageButton(); /定义一个布尔变量,判断该游戏是否结束boolean gameOver=true; String whichPlay=;/判断那种玩法,有图像,数字 int countStep=0;/记录移动步数 /*-构造器,默认加载数字图片-*/ public PlayPanel(

    25、) this.setLayout(new GridLayout(3,3); for(int i=0;i9;i+)/将数字图片载入图像按钮 imageList.add(new ImageIcon(number+(i+1)+.jpg); for(int i=0;i3;i+) for(int j=0;j3;j+) /返回imageList列表上第i*3+j位置上的元素 imageButtonsij=new ImageButton(imageList.get(i*3+j); /设置组件的首选大小,尺寸为100,100 imageButtonsij.setPreferredSize(new Dimens

    26、ion(100,100); imageButtonsij.setRow(i); imageButtonsij.setCol(j); this.add(imageButtonsij); /为每个按钮添加监听器 imageButtonsij.addActionListener(this); /*-构造器,初始化面板,显示一幅完整的图像,并按顺序存放图像块-*/ public PlayPanel(String which) whichPlay=which; this.setLayout(new GridLayout(3,3); if(whichPlay.equals(bear) for(int i=

    27、0;i9;i+)/将图片载入图像按钮 imageList.add(new ImageIcon(bear+(i+1)+.jpg); if(whichPlay.equals(people) for(int i=0;i9;i+)/将图片载入图像按钮 imageList.add(new ImageIcon(people+(i+1)+.jpg); if(whichPlay.equals(number) for(int i=0;i9;i+)/将数字图片载入图像按钮 imageList.add(new ImageIcon(number+(i+1)+.jpg); /-将相应图片给相应按钮标签- for(int i=0;i3;i+) for(int j=0;j3;j+) /返回imageList列表上第i*3+j位置上的元素 imageButtonsij=new ImageButton(imageList.get(i*3+j); /设置组件的首选大小,尺寸为100,100 imageButtonsij.setPreferredSize


    注意事项

    本文(魔板游戏课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开