hannoi塔java程序_基于Java实现的Hannoi汉诺塔自动演示程序
1 设计要求
设计GUI界面的Hannoi塔。汉诺塔中有三个座,名字分别为A,B,C。初始状态时A塔上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动盘子。释放鼠标来放置该盘子。
程序要求用户在移动盘子的过程中,不允许吧大盘子放置在小盘子的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上。
用户可以通过Hannoi塔界面提供的菜单来选择初级、中级和高级三个级别。初级级别A座上有3个大小不等盘子、中级级别A座上有4个大小不等盘子、高级级别A座上有5个大小不等盘子。
用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上。
用户在移动盘子的过程中,可以随时单击Hannoi塔界面上提供的按钮,重新开始当前的级别。
在设计hannoi塔时,需编写6个java源文件:HannoiWindow.java、Tower.java、TowerPoint.java、Disc.java、HandleMouse.java和AutoMoveDisc.java。
Hannoi塔除了要编写的6个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenuBar、JMenu、JMenuItem和JButton。Hannoi塔所用到的一些重要的类以及之间的组合关系如图1所示:
hannoi塔java程序_基于Java实现的Hannoi汉诺塔自动演示程序相关推荐
- 12306 java程序_基于java httpclient的12306 买票软件
12306-hunter Java Swing C/S版本12306订票助手 本程序完全开放源代码,仅作为技术学习研究交流之用,不得用于任何商业用途:作者不承担任何由此带来的直接或间接责任 特别说明: ...
- 图像分割的java程序_基于java的图像分割(数字图像处理)
[实例简介] 基于java的图像分割(数字图像处理),程序中包含 全局阈值分割,Roberts边缘检测分割,灰度图像,直方图. [实例截图] [核心代码] ImageProcess └── Image ...
- NYIST汉诺塔(一)(三)问题以及汉诺塔的路径实现
首先,什么是汉诺塔?如题,简单的介绍一下:在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地 ...
- mysql连接java程序_实现Java连接mysql
Java连接mysql数据库,代码经过运行准确无误. 下面为实例----> 用数据库操纵工具(例: SQLyogEnt)操纵mysql建表,或dos下建,如下: 数据库名:scutcs 表名:s ...
- 汉罗塔用java怎么编程_编程:递归编程解决汉诺塔问题(用java实现)
//Li Cuiyun,October 14,2016. //用递归方法编程解决汉诺塔问题 package tutorial_3_5; import java.util.*; public class ...
- 汉诺塔问题java编程,Java经典编程300例之实例047 汉诺塔问题求解(递归)
实例说明 汉诺塔问题的描述如下:有A.B和C 3跟柱子,在A上从下往上按照从小到大的顺序放着64个圆盘,以B为中介,把盘子全部移动到C上.移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的 ...
- python面对对象汉诺塔_如何使用python实现的汉诺塔的小程序
python是面向对象的语言,但是做面向过程的操作,也是得心应手. 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- from requests. ...
- 河内塔php,基于HTML5的WebGL设计汉诺塔3D游戏
在这里我们将构造一个基于HT for Web的HTML5+JavaScript来实现汉诺塔游戏. 知道了汉诺塔的规则和算法,现在就开始创建元素.用HT for Web(http://www.hight ...
- 个盘子的汉诺塔需要移动几步_坨——理解递归实现quot;汉诺塔quot;代码的关键...
我记得,大学学C语言时,在函数递归调用那一节有个作业,就是写汉诺塔.不少同学遭遇到困难.在知乎上遇见的就有: 如何理解汉诺塔的递归?www.zhihu.com 题主发出悲鸣:"--学C++ ...
最新文章
- android调试步骤,Android16_Android调试步骤
- HANA 数据库备份hang住的解决办法
- RT/Metro商店应用如何如何获取图片的宽高
- ZBrushCore中文版
- 模块化和组件化的定义以及两者的区别
- java多态替换switch_第1章 重构,第一个案例(3):运用多态取代switch
- android java 打开snd,使用SndPlaySound从内存中播放WAV
- linux中有fd set函数吗,LINUX下FD_SET介绍
- 【Paper-Attack】Poisoning Attacks to Graph-Based Recommender Systems
- Android 蓝牙相关的广播
- dgl._ffi.base.DGLError: Cannot assign node feature “n_feat“ on device cuda:0 to a graph on device
- 图像处理十:图像反色
- 7种寻址方式,以及有效地址计算方法。
- 安装 jupyter notebook
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_9 typeAliases标签和package标签
- 定时重启php,linux系统定时重启
- 卡巴斯基KEY 、NOD32注册机——最新版
- AtCoder 神题汇总
- 必须要了解的编程基础--哈希与字符串
- 用html和css制作九宫格,我就是要用CSS实现九宫格图