ImageVerifierCode 换一换
格式:DOCX , 页数:52 ,大小:135.88KB ,
资源ID:15061594      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15061594.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汉诺塔游戏系统 2Word下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汉诺塔游戏系统 2Word下载.docx

1、(一)HannoiWindow类 2(二)AutoMoveDisc类 9(三)Disc类 14(四)HandleMouse类 15(五)Tower类 19(六)TowerPoint 类 23四、系统测试 25(一)主菜单: 25(二)游戏等级选择:(三)盘子数量选择: 26(四)变动颜色选择 26(五)背景音乐选择 26(六)用户自己演示结果: 27五、总结 27六、附件(代码、部分图表) 28汉诺塔游戏系统一、系统开发的背景设计GUI界面的Hannoi塔游戏,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。二、系统分析与设计 (一) 系统功能要求1、有三个表示塔的对

2、象,分别命名为A、B和C。A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。用户可以用鼠标拖动盘子,把A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。2、用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。3、可以由用户自己设置盘子数量和盘子大小。4、可以改变盘子的颜色、背景颜色以及背景音乐。5、游戏分为初、中、高三个等级。6、可以记录游戏时间并且设有从新开始按钮。(二) 系统模块结构设计通过对系统功能

3、的分析,汉诺塔游戏系统功能如图所示。TowerPoint图1:汉诺塔游戏系统功能图通过上图的功能分析,把整个系统划分为6个模块:我设计的Hannoi塔,除了要编写的6个java文件(HannoiWindow、AutoMoveDisc、Disc、HandleMouse、Tower、TowerPoint)所给出的类外,还需要java系统提供的一些重要的类,如JButton,JCheckBox等。汉诺塔中有三个座,名字分别为A,B,C。刚开始的时候A塔上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动盘子。释放鼠标来放置该盘子。程

4、序要求用户在移动盘子的过程中,不允许把大盘子放置在小盘子的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上。用户可以通过Hannoi塔界面提供的改变盘子数目功能来改变盘子的数目,用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上。用户在移动盘子的过程中,可以随时单击Hannoi塔界面上提供的按钮,重新开始。三、系统的设计与实现(一)HannoiWindow类该类主要功能是设置主界面的布局、相关按钮和监听事件 该模块的具体代码如下所示:import java.applet.Applet;import java.applet.AudioClip

5、;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.File;import .MalformedURLException;import .URL;import javax.swing.JOptionPane;public class HannoiWindow extends JFrame implements ActionListener Tower tower=null; /Tower创建的tower容器,刻画了汉诺塔的结构,放置在主界面的中心 int amountOfDisc=3; /

6、确定tower对象中“盘子”数目(默认为3个) int number=0; Color discColor; HandleMouse handleMouseTime; Timer time=new Timer(1000,this); char towerName=A,BC; /容器tower中三个座的名字 JMenuBar bar; /菜单棒 JMenu menuGrade,menuDiscNum,menuMM,menuColor; / boolean tag = true; File musicfile=new File(七里香.mid); URL url; AudioClip clip;

7、JMenu menumusic; JMenuItem oneGradeItem,twoGradeItem,threeGradeItem,discColorItem,backColorItem,maxDiscWidth,minDiscWidth,DiscNum,musicstart,musicstop; JButton renew=null; JButton autoButton=null; JPanel center=new JPanel(); JTextField text; /- public JRadioButton cyan,red,green,blue,yellow; public

8、ButtonGroup buttonGroup; HannoiWindow() /构造函数,设置主界面布局 super(汉诺塔小游戏 (Hannoi Game) tower=new Tower(towerName); tower.setAmountOfDisc(amountOfDisc);/设置盘子的数量 tower.setMaxDiscWidth(120);/设置最大盘子的宽度 tower.setMinDiscWidth(50);/设置最小盘子的宽度 tower.setDiscHeight(16);/设置盘子的高度 tower.putDiscOnTower();/放置盘子到塔上 add(to

9、wer,BorderLayout.CENTER);/增添菜单选项 bar=new JMenuBar(); menuGrade=new JMenu(选择关卡 menuColor=new JMenu(变换颜色 menuDiscNum=new JMenu(盘子数量 menuMM=new JMenu(盘子大小 oneGradeItem=new JMenuItem(第一关_初级 twoGradeItem=new JMenuItem(第二关_中级 threeGradeItem=new JMenuItem(第三关_高级 discColorItem=new JMenuItem(盘子颜色 backColorIt

10、em=new JMenuItem(背景颜色 maxDiscWidth=new JMenuItem(最大盘子宽度 minDiscWidth=new JMenuItem(最小盘子宽度 DiscNum=new JMenuItem(设置盘子数量 menuGrade.add(oneGradeItem);/将用户的操作设置返回给相应的变量 menuGrade.addSeparator(); menuGrade.add(twoGradeItem); menuGrade.add(threeGradeItem); menuColor.add(discColorItem); menuColor.add(backC

11、olorItem); menuMM.add(maxDiscWidth); menuMM.add(minDiscWidth); menuDiscNum.add(DiscNum); bar.add(menuGrade); bar.add(menuDiscNum); bar.add(menuMM); bar.add(menuColor); setJMenuBar(bar); /加入代码 menumusic=new JMenu(设置背景音乐 musicstart=new JMenuItem(背景音乐开启 musicstop=new JMenuItem(背景音乐关闭 menumusic.add(musi

12、cstart); menumusic.add(musicstop); bar.add(menumusic); try url=musicfile.toURL(); catch (MalformedURLException e) / TODO Auto-generated catch block e.printStackTrace(); clip=Applet.newAudioClip(url); clip.play(); /加入下2行代码 musicstart.addActionListener(this); musicstop.addActionListener(this); / oneGr

13、adeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); DiscNum.addActionListener(this); maxDiscWidth.addActionListener(this); minDiscWidth.addActionListener(this); discColorItem.addActionListener(this); backColorItem.addActionListener(this); renew=new JButton(重新开始 renew.addActionListener(this); autoButton=new JButton(自动演示 text=new JTextField(您的游戏时间:0秒,10); autoButton.addActionListener(this); JPanel north=new JPanel(); String mess=将全部盘子从 +towerName0+ 座搬运到 +towerName1+ 座或 +towerName2+ 座; JLabel hintMess=new JLabel(mess,JLabel.CENTER);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1