汉诺塔游戏java编程.docx
- 文档编号:3013804
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:19
- 大小:57.03KB
汉诺塔游戏java编程.docx
《汉诺塔游戏java编程.docx》由会员分享,可在线阅读,更多相关《汉诺塔游戏java编程.docx(19页珍藏版)》请在冰豆网上搜索。
汉诺塔游戏java编程
辽宁工业大学
JAVA语言程序设计课程设计(论文)
题目:
汉诺塔游戏设计
院(系):
软件学院
专业班级:
计算机网络技术091班
学号:
091406015
学生姓名:
张铎赢
指导教师:
赵凯
教师职称:
讲师
起止时间:
2010.12.13至2010.12.24
程序设计专题(报告)任务及评语
院(系):
软件学院教研室:
软件教研室
学号
091406015
学生姓名
张铎赢
专业班级
计算机网络技术091班
程序设计(报告)题目
汉诺塔游戏设计
程序设计(报告)任务
程序设计专题的任务与要求:
(1)掌握Java编程、面向对象的基础知识。
(2)较熟练地编写Java应用程序Application。
(3)了解Java的常用标准类库、编程技巧、异常处理。
(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。
(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。
(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
指导教师评语及成绩
成绩:
指导教师签字:
2010年12月24日
目录
第1章课程设计的目的与要求1
1.1课程设计目的1
1.2课程设计的实验环境1
1.3课程设计的预备知识1
1.4课程设计要求1
第2章课程设计内容2
2.1课程设计主要内容2
2.2概要设计2
2.2.1自定义类说明2
2.3详细设计3
2.4.1程序运行情况13
2.4.2程序异常处理16
第3章课程设计总结17
附录参考资料18
第1章课程设计的目的与要求
1.1课程设计目的
《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
1.2课程设计的实验环境
硬件要求能运行Windows9.X操作系统的微机系统。
JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。
1.3课程设计的预备知识
熟悉JAVA语言及ECLIPSE开发工具。
1.4课程设计要求
按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。
要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。
第2章课程设计内容
2.1课程设计主要内容
该程序是简单的汉诺塔游戏,其界面主要采用了awt包,程序实现了汉诺塔游戏的可玩性,使用鼠标操作,并且有菜单支持,游戏界面简洁直观,可玩性极高,可满足玩家的需求。
2.2概要设计
2.2.1自定义类说明
classMyData
主要数据及逻辑
fr.addWindowListener(newMyWindowAdapter());
给窗口加入windows事件监听器
fr.setResizable(false)
设为用户不可改变窗体大小
fr.setBackground(Color.WHITE);
框架fr的背景颜色设置为白色
汉诺塔系统流程图,如图2.1
图2.1
2.3详细设计
源代码及注释:
importjava.awt.*;//GUI支持
importjava.awt.event.*;//GUI事件支持
importjavax.swing.JOptionPane;//对话框支持
classMyData
{//主要数据及逻辑
privateintm_top;//拿起的方块
privateintm_size;//方块总数-1
privateint[][]m_room;//方块数组
privateint[]m_pos;//每组方块最顶的位置
publicMyData()
{
m_room=newint[8][3];
m_pos=newint[3];
Start(4);
}//endmethodMyData
publicvoidStart(intx)
{
m_size=x-1;
for(inti=0;i<=2;i++)
{
for(intj=0;j<8;j++)
{
m_room[j][i]=0;
}
m_pos[i]=-1;
}
for(inti=0;i { m_room[i][0]=x-i; } m_pos[0]=x-1; m_top=0; }//endmethodStart booleanTake(intx) { if(m_pos[x]==-1)returnfalse; m_top=m_room[m_pos[x]][x]; m_room[m_pos[x]][x]=0; m_pos[x]--; returntrue; }//endmethodTake booleanDrop(intx) { if(m_pos[x]! =-1) { if(m_top>m_room[m_pos[x]][x]) returnfalse; } m_pos[x]++; m_room[m_pos[x]][x]=m_top; m_top=0; returntrue; }//endmethodDrop publicbooleanTestFull() { if(m_pos[1]==m_size)returntrue; if(m_pos[2]==m_size)returntrue; returnfalse; }//endmethodTestFull publicbooleanClick(intx) { if(TestFull())returnfalse; if(m_top==0) Take(x); else Drop(x); //JOptionPane.showMessageDialog(null,""+x); returntrue; }//endmethodClick publicintGetTop() { returnm_top; }//endmethodGetTop publicintGetBlock(intx,intgroup) { returnm_room[x][group]; }//endmethodGetBlock }//endclassMyData classMyWindowAdapterextendsWindowAdapter {//只实现需要的方法 publicvoidwindowClosing(WindowEvente) { System.exit(0);//terminateapplication }//endmethodwindowClosing }//endclassMyWindowAdapter classMyMouseAdapterextendsMouseAdapter { publicvoidmouseClicked(MouseEvente) { //JOptionPane.showMessageDialog(null,"x"+e.getX()+"y"+e.getY()); Mainfr=(Main)e.getSource(); DimensionfrSize=fr.getSize(); intx=e.getX(); intw=frSize.width/3; if(x { fr.mdta.Click(0); } elseif(x<(2*w)) { fr.mdta.Click (1); } else { fr.mdta.Click (2); } fr.repaint(); }//endmrthodmouseClicked }//endclassMyMouseAdapter publicclassMainextendsFrame { staticMyDatamdta; publicMain(Stringstr) {super(str);} publicstaticvoidmain(Stringargs[]) { mdta=newMyData(); finalMainfr=newMain("汉诺塔forjava,DKink"); fr.setResizable(false);//设为用户不可改变窗体大小 fr.setSize(300,300);//设置窗口大小 fr.setBackground(Color.WHITE);//框架fr的背景颜色设置为白色 //begin菜单支持 MenuBarmyMenu=newMenuBar(); MenuSMenu=newMenu("开始"); MenuItemMI3=newMenuItem("3"); MI3.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { mdta.Start(3); fr.repaint(); } } ); MenuItemMI4=newMenuItem("4"); MI4.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { mdta.Start(4); fr.repaint(); } } ); MenuItemMI5=newMenuItem("5"); MI5.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { mdta.Start(5); fr.repaint();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汉诺塔 游戏 java 编程