汉诺塔游戏java编程.docx

上传人:b****4 文档编号:3013804 上传时间:2022-11-17 格式:DOCX 页数:19 大小:57.03KB
下载 相关 举报
汉诺塔游戏java编程.docx_第1页
第1页 / 共19页
汉诺塔游戏java编程.docx_第2页
第2页 / 共19页
汉诺塔游戏java编程.docx_第3页
第3页 / 共19页
汉诺塔游戏java编程.docx_第4页
第4页 / 共19页
汉诺塔游戏java编程.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

汉诺塔游戏java编程.docx

《汉诺塔游戏java编程.docx》由会员分享,可在线阅读,更多相关《汉诺塔游戏java编程.docx(19页珍藏版)》请在冰豆网上搜索。

汉诺塔游戏java编程.docx

汉诺塔游戏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();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

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

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