基于JAVA汉诺塔游戏设计与实现
java,汉诺塔,课程设计,心得体会
java,汉诺塔,课程设计,心得体会
篇一:基于JAVA汉诺塔游戏设计与实现
基于JAVA汉诺塔游戏设计与实现
院系:计算机与电子系
专业班:计算机应用技术0902班
姓名:高亚
学号:XX2911057
指导教师:彭文艺
XX 年6月
基于JAVA汉诺塔游戏设计与实现
JAVA Tower of Hanoi-based Game
Design and Implementation
摘要
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
随着时代的不断发展进步,计算机已经融入我们的日
常生活。很多时候,很多的问题想通过人的手来亲自解决已变得十分困难了,这时我们就要运用计算机来帮我们解决这些复杂的问题,汉诺塔问题就是这类较复杂的问题。
此次,我们通过Eclipse软件来解决汉诺塔问题。程序运行后会出现一个界面,界面上有各种操作提示,按照提示进行各种操作后会得到汉诺塔游戏的运行过程及结果。
关键词: Java 汉诺塔 Eclipse
Abstract
Java is a cross-platform application software can write object-oriented programming language by Sun Microsystems, Inc. in May 1995 launch of the Java programming language and the Java platform (namely JavaSE, JavaEE, of JavaME) the general excellent versatility, efficiency, platform portability, and security of Java technology, widely used in personal PC, the data center, game consoles, scientific supercomputers, mobile phones and the Internet, while the world's largest developer of professional community. Global cloud computing and mobile Internet industry environment, Java has significant advantages and broad prospects.
Java实现一个汉诺塔实战练习
Java实现⼀个汉诺塔实战练习汉诺塔简介:
我们想要实现的是让 A柱上的盘⼦,移动到C柱上
1层汉诺塔
2层汉诺塔
3层汉诺塔详解图
第⼀步
第⼆步
第三步
第四步
第五步
第六步
第七步
经过上⾯的图解,相⽐⼤家⼀定在⼀定程度了解到汉诺塔的游戏规则,以及怎么去玩。
总之 最终C 柱上第⼀个盘⼦,是最⼤,最顶的是最⼩的,⽽且在操作过程中,前⼏步就是为了让三个柱⼦中最⼤的盘⼦移动到C 柱上,
然后不断,将它两个柱⼦中最⼤盘⼦往上累加,(盘⼦从⼤到⼩,从下往上摆放)
⽽且盘⼦⼀多,你就会发现过程中间,除了最⼤的盘⼦,其余的盘⼦都会集中在 B 柱上,这样才能把 A 柱上最底下也是最⼤的盘⼦,移动到C 上。这是规律⼀
还有⼀个规律,在最⼤的盘⼦移动C 柱上之后,第⼆个⼤的盘⼦要放在A 柱上,其余盘⼦按照规则全部放在B 柱上,
这样第⼆⼤的盘⼦才能移动到最⼤的盘⼦上
说⽩了,盘⼦再多,也要按照上⾯两个规律,才能完成整个游戏
那我把最⼤盘⼦上⾯的所有盘⼦看成⼀个整体,放在B 柱上,最⼤盘⼦移动到C 柱上,把B
柱上盘⼦直接盖上去,不就⾏了,反正也就是重复那两个规律⽽已程序如下
1
2
3456import java.util.Scanner;
public class Manuscript {
static int times;// 移动次数
public static void main(String[] args) {
789101112131415161718192021222324252627282930
Scanner scanner = new
汉诺塔递归算法java
汉诺塔递归算法java
汉诺塔递归算法Java
汉诺塔问题是计算机科学中经典的问题之一,它是一个递归问题,可以用递归算法来解决。在这篇文章中,我们将介绍如何使用Java编写汉诺塔递归算法。
一、问题描述
汉诺塔问题是一个经典的数学问题,它由三个塔和一些圆盘组成,这些圆盘按照从大到小的顺序放置在一个塔上。问题的目标是将所有的圆盘从一个塔移动到另一个塔上,同时遵守以下规则:
1. 每次只能移动一个圆盘;
2. 圆盘只能放在比它大的圆盘上面。
二、递归算法
递归算法是一种解决问题的方法,它通过将问题分解成更小的子问题来解决。在汉诺塔问题中,我们可以使用递归算法来解决问题。
我们可以将汉诺塔问题分解成三个子问题:
1. 将n-1个圆盘从A塔移动到B塔;
2. 将第n个圆盘从A塔移动到C塔;
3. 将n-1个圆盘从B塔移动到C塔。
这三个子问题可以使用递归算法来解决。当n=1时,我们可以直接将圆盘从A塔移动到C塔。
三、Java代码实现
下面是使用Java编写的汉诺塔递归算法代码:
```
public class HanoiTower {
public static void main(String[] args) {
int n = 3; // 圆盘的数量
hanoi(n, 'A', 'B', 'C'); // 将n个圆盘从A塔移动到C塔
}
public static void hanoi(int n, char A, char B, char C) {
if (n == 1) {
System.out.println("将第" + n + "个圆盘从" + A + "塔移动到" + C + "塔");
“汉诺塔”问题的算法分析及JAVA实现
3J V 实现 A A
31说明如下 . () 1n为 A塔初始 盘子个 数 ;
() 2 A塔 上 盘 子从 上 到 下 、 小 到 大 编 号 依 次 为 l2 3 … : 从 , ,…
h o g v . al k er e tru h l a c rma elan l bev lal h oec u ewhc ov sti iu + a  ̄o srece r tewh l o r ihs le hs s e y s s
K ywod : no A g rh Keus eJv e rsHai; loi m; crv ;aa t i
次 只能移动一个盘子 , 任何时候都不允许将较大 的盘 子压在 比 且
它小的盘子的上面。
要求如下 : 键 盘输入初始 圆形盘子个数 n 用 J A实现 n 从 . AV 个 盘子 最佳 移 动 的全 过 程 。
第二步 : 将剩下 的第 N个盘子 ( 也就 是最底 下的一个 ) 直接从 A塔 叠放到空着 的 C塔上。 第 三步 用第 一步 的方法 , 次将 B塔 上 的所有 盘子叠 放到 再
(.i uT nzo oao ̄ E ua o ne Nat g26 0 , ia ,i guR doa dT ie i ,o g h uC  ̄ g, no g 1J n o gh uV ct t d ct nCet , no 23 0Ch ; J ns a i n V Unvr tT n zo o ee a i i r n n2 a sy Natn 2 6 0 ,hn) 23 0C ia A src:hs et a i n du e nl iao t l s a H noiu n rv e razt no g rh i jv. Religti iu b t t i t re O e fdaa s b u ai l a i s eadpo i s ela o f r i m a a T x c rs l ys c sc s d i i aot na az s s e in h s
java汉诺塔详解及实现代码
java汉诺塔详解及实现代码
java 汉诺塔详解及实现代码
实现效果图
打印的⽅法在 moveTheTopOne() ⽅法中被调⽤,调⽤该⽅法前打印出移动的⽅向--从X号塔往Y号塔汉诺塔要求:将第⼀座塔上的所有盘⼦,借助第⼆座塔,全部搬运到第三座塔上。
规则:⼀次只能搬运⼀个盘⼦,不准将⼤盘⼦落在⼩盘⼦上。
汉诺塔实现代码:
public class NewHanoi {
public static int tiers = 4; // tiers 层数
private static List<String> pagoda1 = new ArrayList<String>(); // 静态指针
private static List<String> pagoda2 = new ArrayList<String>();
private static List<String> pagoda3 = new ArrayList<String>();
// 映射,⽤来确定并打印塔的序号(使⽤⾓标),也可以使⽤ Map
private static List[] mapping = {pagoda1, pagoda2, pagoda3};
public static void main(String[] args) {
preparePagoda(pagoda1, tiers);
System.out.println("初始状态:");
printPagodas();
python实现汉诺塔游戏
python实现汉诺塔游戏
汉诺塔(Hanoi Tower)是一种经典的益智游戏,起源于中国。它的规则很简单,但是解决它的问题却需要一定的智力和耐心。下面我将用Python实现一个汉诺塔游戏。
汉诺塔游戏的规则如下:
-有三根柱子,分别为A、B、C。开始时,所有的盘子都堆在柱子A 上,从大到小依次摆放。
-目标是把所有的盘子从柱子A移动到柱子C上。
-移动盘子时,每次只能移动一个盘子,且必须保证大盘子在小盘子下面。
我们可以使用递归算法来解决这个问题。具体实现如下:
```python
def hanoi(n, source, target, auxiliary):
if n > 0:
# 先将n-1个盘子从source柱子移动到auxiliary柱子上
hanoi(n-1, source, auxiliary, target)
# 将第n个盘子从source柱子移动到target柱子上
print("Move disk", n, "from", source, "to", target)
# 将n-1个盘子从auxiliary柱子移动到target柱子上
hanoi(n-1, auxiliary, target, source)
#测试
hanoi(3, 'A', 'C', 'B')
```
上述代码中的`hanoi`函数用来实现递归的移动盘子操作。参数`n`表
示当前要移动的盘子数量,`source`表示源柱子,`target`表示目标柱子,`auxiliary`表示辅助柱子。
在代码中,我们首先判断`n`是否大于0,如果是,则进行递归操作。首先将`n-1`个盘子从源柱子移动到辅助柱子上,然后将第`n`个盘子从源
汉诺塔实现步骤
汉诺塔实现步骤
一、创建工作空间和应用(略)
二、创建结构体对象(str_disk)其中str_表示structure, disk就是圆盘.
三、创建用户对象(u_tower)
其中u_表示UserObject,选PB Object中的custom visual.
(1)操作界面
(2)设计控件
(3)控件名称
(4)部分控件不可见
(5)声明实例变量
其中roundrectangle irr_disk[14]定义栈空间(空栈)
int ii_count栈顶指针(栈内盘子数)
(6)编写constructor事件代码
作用:在空栈中放置栈元素(盘子)
//将14个圆角矩形控件对象加到数组中
//即初始化栈
//其结果数组元素irr_disk[1]-- irr_disk[14] 分别对应存放的是对象rr_1--rr_14。
int li_index
int li_array_limit
int li_control_index
int li_control_limit
string rr_name
drawobject ldo_temp
li_array_limit = upperbound (irr_disk[])//返回数组维界
li_control_limit = upperbound (control[])//
返回控件数组维界
//将控件数组里的隐藏矩形,放置在定义的实例对象数组中。
For li_control_index = 1 to li_control_limit //对控件数组的每个元素
ldo_temp = control[li_control_index]
Java课程设计报告--Hannoi塔
课程设计报告
课程名称 Java程序设计
课题名称 Hannoi塔
专业计算机科学与技术
班级
学号
姓名
指导教师李远辉
2013 年 6月 27日
湖南工程学院
课程设计任务书
课程名称 Java程序设计
课题 Hannoi塔
专业班级
学生姓名
学号
指导老师李远辉
审批李远辉
任务书下达日期 2013 年 6 月20 日
任务完成日期2013 年 6 月 27 日
目录
1.设计要求 (1)
1.1 界面要求 (1)
1.2 功能要求 (1)
2.总体设计 (2)
2.1 总体概述 (2)
2.2 主要类功能设计 (3)
3.详细设计 (5)
3.1 HannoiWindow类 (5)
3.2 Tower类 (5)
3.3 HandleMouse类 (6)
3.4 AutoMoveDisc类 (7)
3.5 TimeCount类 (8)
4.调试与结果分析 (9)
4.1 初级游戏 (9)
4.2 游戏界面属性设置 (10)
4.3 游戏外观设置 (10)
4.4 自动移动演示 (10)
5.设计总结与心得体会 (12)
附录 (13)
1 参考书 (13)
2 源代码 (13)
1 设计要求
1.1 界面要求
用户界面为GUI界面,其分为菜单栏以及游戏区两个部分。游戏区中分布有三座Hannoi塔,其名字分别为A、B、C。初始状态下A座有三个大小不等的盘子,其按照从大到小的顺序依次摆放在A座上。
1.2 功能要求
1.2.1 游戏规则
用户用鼠标选中盘子,然后通过拖动鼠标来移动盘子、释放鼠标来放置该盘子。其中主要的规则就是:
(1)移动盘子时,盘子上方必须无盘子
(2)放置盘子时,其位置必须在塔点处,而且盘子必须比下方盘子小
java实现汉诺塔详解及实现代码
java实现汉诺塔详解及实现代码
java 实现汉诺塔详解及实现代码
汉诺塔问题:有三根柱⼦A,B,C,其中A上⾯有n个圆盘,从上⾄下圆盘逐渐增⼤,每次只能移动⼀个圆盘,并且规定⼤的圆盘不能叠放在⼩的圆盘上⾯,现在想要把A上⾯的n个圆盘全部都移动到C上⾯,输出移动的总步数以及移动的过程
分析:
//先求出移动的总步数
1,假设g(n)表⽰n个圆盘时的移动总的步数,当n=1时,g(1)=1;
2.现在可以把g(n)进⾏细分为三步:
1>先将n-1个圆盘从A通过C移动到B上⾯,相当于将n-1个圆盘从A移动到C,因此需要g(n-1)步;
2>然后将剩下的最⼤的圆盘从A移动到C,需要1步;
3>最后再将n-1个圆盘从B通过A移动到C上⾯,相当于将n-1个圆盘从A移动到C,因此也需要g(n-1)步;
因此可以得出递归关系式:g(n) = 2*g(n-1)+1;
//现在我们在来求出移动的过程
1.假设hm(m,a,b,c)表⽰将m个圆盘从a通过b移动到c的过程,假设mv(a,c)输出⼀次a到c的过程,即print a-->c
2.初始化hm,当m=1时,hm(1,a,b,c)=mv(a,c);
2.可以把hm(m,a,b,c)进⾏细分为三步:
1>先将n-1个圆盘从A通过C移动到B,此时b和c进⾏互换,也就是 hm(m-1,a,c,b);
2>然后将剩下的最⼤的圆盘从A移动到C,也就是hm(1,a,b,c);
3>最后将n-1个圆盘从B通过A移动到C,此时b和a进⾏交换,也就是 hm(m-1,b,a,c);
汉诺塔代码java实现
汉诺塔代码java实现
汉诺塔(Tower of Hanoi)是一种经典的数学问题和递归算法示例。这个问题的目标是将一堆盘子从一个柱子上移动到另一个柱子上,同时遵守以下规则:只能移动一个盘子,移动过程中不能将较大的盘子放在较小的盘子上。
以下是使用Java语言实现汉诺塔问题的代码示例:
```java
public class HanoiTower {
public static void move(int n, char source, char target, char auxiliary) {
if (n == 1) {
System.out.println("Move disk 1 from " + source + " to " + target);
return;
}
move(n - 1, source, auxiliary, target);
System.out.println("Move disk " + n + " from " + source + " to " + target);
move(n - 1, auxiliary, target, source);
}
public static void main(String[] args) {
int n = 3; // 盘子的个数
move(n, 'A', 'C', 'B');
}
}
```
在上述代码中,我们定义了一个名为`move`的递归函数,该函数接受四个参数:盘子的数量`n`、源柱子`source`、目标柱子`target`和辅助柱子`auxiliary`。递归函数的作用是将`n`个盘子从源柱子移动到目标柱子。
java递归实现汉诺塔步骤介绍
java递归实现汉诺塔步骤介绍
汉诺塔的规则是:⼀共三根柱⼦,⼀根柱⼦从上到下套着有⼩到⼤的若⼲个圆盘,要将所有圆盘按照这个排放顺序移动到第三根柱⼦上,并且每次只能移动⼀个圆盘.
可以将整个过程分为三个步骤来看:
第⼀步:将除最⼤圆盘外的n-1个圆盘移动辅助柱⼦上
第⼆步:将最⼤的圆盘移动到⽬标柱⼦
第三步:将n-1个圆盘从辅助柱⼦移动到⽬标柱⼦
其中第⼀步⼜可以拆成⼀模⼀样的三步,可以看成⼀个n-1层的塔要移动到⽬标柱⼦,只不过⽬标柱⼦换了⼀个:
第三步也可以拆分成⼀模⼀样的三步:
多拆⼏次就会发现规律:第⼀步和第三步⽆论如何拆成更⼩的汉诺塔,都只是⽬标柱和辅助柱发⽣调换,其他部分都是⼀模⼀样.所以我们将第⼀步和第三步进⾏递归运算就可以解决汉诺塔问题.
static void hanNuo(int n,String A,String B,String C){
if (n==1){
System.out.println("把第"+n+"个从"+A+"移动到"+C);
}else {
hanNuo(n-1,A,C,B);
System.out.println("把第"+n+"个从"+A+"移动到"+C);
hanNuo(n-1,B,A,C);
}
}
每进⼊⼀次递归塔的层数减⼀ ,由于第⼀步和第三步每拆分⼀次⽬标塔和辅助塔就会互换,同理,每进⼊⼀次递归也会将两个塔互换,因为第⼀步拆分⽬标塔是在塔⼆和塔三之间循环,所以我们在进⼊递归时也将传⼊代表"塔⼆"和"塔三"的参数互换,同理第三步也将互换代表"塔⼀"和"塔⼆"的参数.
Hannoi塔(汉诺塔)--Java课程设计报告
Java课程设计报告
题目汉诺塔
所在院系软件学院
学生姓名邓小文专业土木+软件工程班级08-1班学号14号
2010年7月17日
一、总体设计
1.本系统的主要功能(1)本软件是汉诺塔游戏;(2)可以实现计时功能;(3)游戏结束时记录排名;
(4)在玩游戏的同时还可以欣赏歌曲;(5)不知如何玩时可以实现自动演示;
2.系统包含的类及类之间的关系
为了实现本软件的各项功能,对要在本软件中需要用到的源文件进行总体设计。本系统共包括12个java 源文件。1.各个类之间的关系如图1所示。
Hel Tower
HannoiTower Musi Disk TowerPoint Time
Record ShowRecor Peopl
图1-1各个类之间的关系
2.java 源文件及其功能,如表所示。
表1java 源文件及其功能
二、详细设计
为了实现总体设计中的各个类之间的接口连接,使玩家能够顺畅的使用本软件进行游戏,考虑用详细设计来给玩家一一介绍。
以下是对本软件的详细设计:
序号文件名主要功能备注
1
Tower 用户可以在主窗口选择开始搬运
盘子或自动演示。程序默认的情况
是手动搬运盘子
2HannoiTower 该文件生成的类负责创建Hannoi
塔,汉诺塔由A、B、C 三个塔组成,
可以用鼠标搬运各个塔上的盘子。3Disk
该文件生成的类负责创建盘子对
象
4
TowerPoint 该文件生成的类负责为Hannoi 塔
创建塔点对象,即盘子放置的位
置。
5Time 记录玩家完成游戏所需的时间
6People 记录成绩能够排进排行榜的选手7About 关与本软件的制作信息8Help 帮助主题9Record 记录
汉诺塔问题的程序实现
汉诺塔问题的程序实现
汉诺塔问题的程序实现
实验⽬的:运⽤程序解决汉诺塔(hanoi)问题。
汉诺塔问题:假设有3个分别命名为A,B,C的塔座,在塔座A上插有n个直径⼤⼩各不相同,依⼩到⼤编号为1,2....,n的圆盘。现要求将A轴上的n个圆盘移到C并仍按同样顺序叠排,圆盘按以下规则(1)每次只能⼀动⼀个盘⼦(2)圆盘可以插在A,B,C中任⼀个塔座上(3)任何时刻都不能将⼀个较⼤的圆盘压在较⼩的圆盘之上。
A B C
实验分析:汉诺塔问题可以规划为⼀个递归的问题予以分析,将n个盘⼦从A针移动到C 针可进⾏3个步骤:
(1)将A上n-1的个盘⼦移到B针上;
(2)把A针最后1个盘⼦移到C针上;
(3)再把B盘⼦上的n-1个移到C针上。
实验过程:
#include
using namespace std;
void main()
{
void hanoi(int m,char A,char B,char C); //A代表初始柱⼦,B代表辅助柱⼦,C代表⽬标柱⼦
int m;
printf("请输⼊盘⼦的个数:");
scanf("%d", &m);
printf("当盘⼦的个数为%d时移动的步骤是:\n",m);
hanoi(m,'A','B','C');
}
void hanoi(int n,char X,char Y,char Z)
{
void move(char X,char Z );
if(n==1)
move(X,Z);
else
{
hanoi(n-1,X,Z,Y);
move(X,Z);
hanoi(n-1,Y,X,Z);
}
基于JSSE的汉诺塔游戏设计与实现
基于JSSE的汉诺塔游戏设计与实现
作者:康多全
(合肥学院计算机科学与技术系,安徽省合肥市合肥学院(南区)邮编230601)
摘要:
对汉诺塔游戏问题进行了研究,发现了对汉诺塔游戏用递归算法实现符合问题逻辑结构。设计了基于JSSE的递归算法实现了手动移盘和自动移盘的游戏功能。
关键词:汉诺塔河内塔盘子问题游戏设计递归问题
The Design and Realization of Hanoi Tower Game Based on JSSE
KANG Duoquan
(HEFEI UNIVERSITY HEFEI ANHUI )
Abstract:
Carried on a research to the problem of Hanoi Tower Game , discovered that the realization using a return calculate way matches the logic structure of the Hanoi Tower Game.Designed the return calculate way to carry out the function of the game to move the dish automatically or move by hand based on JSSE.
Key words: Hanoi Tower The problem of the dish Design for game
1 引言:
相传在古印度的布拉玛婆罗门圣庙的僧侣在进行一种被称为汉诺塔的游戏,其装置是一块铜板,上面有三根杆(编号A、B、C),A杆上自下而上、由大到小按顺序串上64个金盘。游戏的目标是把 A杆上的金盘全部移到C杆上,并仍原有顺序叠好。条件是每次只能移动一个盘,并且在每次移动都不允许大盘移到小盘之上。僧侣们说游戏结束的时候就是世界末日。现要求利用递归调用技术把N个盘从A杆移到C杆的移动过程演示出来。
汉诺塔设计与实现
一、需求分析
(1)设计GUI界面的Hannoi塔。Hannoi塔中有三个座,名字分别为A、B和C。初始化状态是A做上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺
序依次摆放在A座。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘
子、释放鼠标来放置该盘子。
(2)程序要求用户在移动盘子过程中,不允许把大盘放置在小盘的上面,用户最终要完成的是把A座上的全部盘子移动到B座或者说C座上。
(3)用户可以通过Hannoi塔界面提供的菜单来选择初级、中级和高级三个级别。
初级级别的A座右3各大小不等的盘子、中级有4个而高级则有5个。
(4)用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成A座上的盘子全部移动到C坐上。
(5)用户在移动盘子的过程中,可以随时单击Hannoi塔界面上的提供的按钮,重新开始当前的级别。
二、总体设计
在设计Hannoi塔时,需编写6个JAVA源文件:HannoiWindow.Java 、TowerPoint.java、Disc.java、HandleMous.java和AutoMoveDisc.java。
Hannoi塔除了要编写的6个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenubar,JMenu,JMenuItem和JButton。Hannoi塔所用到得一些重要的类以及类之间的组合关系如图2.1所示:
图2.1 类之间的组合关系
分工:在本次课程设计中我和吴林剑作为一个团队设计一个汉诺塔,我主要负责主窗口的设计和相关各个函数之间的调用,吴林剑主要负责容器的设计。
Java实现汉诺塔游戏(可打印修改)
point[i] = new TowerPoint(2 * width, 100 + diskHeight, false); diskHeight = diskHeight + height; }
setLayout(null); setBackground(Color.cyan); addMouseListener(this);
//创建盘组 diskArray = new Disk[this.totalDisk]; point = new TowerPoint[3 * this.totalDisk];
diskHeight = 20;
// 给出 C 塔中塔点坐标 for (int i = 2 * this.totalDisk; i < 3 * this.totalDisk; i++) {
point[i] = new TowerPoint(6 * width, 100 + diskHeight, false); diskHeight = diskHeight + height; }
/** * 游戏主窗口宽度 */ private int mainFrameWidth;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于JAVA汉诺塔游戏设计与实现
院系:计算机与电子系
专业班:计算机应用技术0902班
姓名:高亚
学号:20092911057
指导教师:彭文艺
2012 年6月
基于JAVA汉诺塔游戏设计与实现JA V A Tower of Hanoi-based Game Design and Implementation
摘要
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
随着时代的不断发展进步,计算机已经融入我们的日常生活。很多时候,很多的问题想通过人的手来亲自解决已变得十分困难了,这时我们就要运用计算机来帮我们解决这些复杂的问题,汉诺塔问题就是这类较复杂的问题。
此次,我们通过Eclipse软件来解决汉诺塔问题。程序运行后会出现一个界面,界面上有各种操作提示,按照提示进行各种操作后会得到汉诺塔游戏的运行过程及结果。
关键词:Java汉诺塔Eclipse
Abstract
Java is a cross-platform application software can write object-oriented programming language by Sun Microsystems, Inc. in May 1995 launch of the Java programming language and the Java platform (namely JavaSE, JavaEE, of JavaME) the general term.Has excellent versatility, efficiency, platform portability, and security of Java technology, widely used in personal PC, the data center, game consoles, scientific supercomputers, mobile phones and the Internet, while the world's largest developer of professional community. Global cloud computing and mobile Internet industry environment, Java has significant advantages and broad prospects.
With the continual development and progress, the computer has been integrated into our daily lives. In many cases, a lot of problems to think through the human hand to personally resolve the very difficult, then we will use the computer to help us solve these complex issues. The Tower of Hanoi problem is that these more complex problems.
The Eclipse software to solve the Tower of Hanoi problem. After running a single interface, the interface on a variety of operating tips, follow the prompts to perform various operations will be the running process and the outcome of the Tower of Hanoi game.
Key words: Java Tower of Hanoi Eclipse
目录
摘要 .................................................................................................................... I Abstract ............................................................................................................. II 绪论 .. (1)
1相关技术介绍 (2)
1.1开发工具........................................................................ 错误!未定义书签。
1.2应用环境 (2)
1.3问题的提出 (2)
1.4任务设计内容 (3)
2系统需求分析 (4)
2.1界面及其布局设计 (4)
2.2 A、B、C座的实现方法 (4)
2.2.1成员变量 (5)
2.2.2方法 (5)
2.3圆盘的实现方法 (6)
2.3.1 Disc成员变量 (7)
2.3.2 Disc方法 (7)
3系统总体设计 (8)
3.1总体类关系 (8)
3.2总体功能图 (8)
3.3总体流程图 (9)
4系统主要功能设计流程图 (10)
4.1 A、B、C座实现流程图 (10)
4.2圆盘画法流程图 (10)
5系统详细设计 (12)
6系统测试 (17)
结论 (19)
致谢 (20)
参考文献 (21)