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汉诺塔自动演示程序相关推荐

  1. 12306 java程序_基于java httpclient的12306 买票软件

    12306-hunter Java Swing C/S版本12306订票助手 本程序完全开放源代码,仅作为技术学习研究交流之用,不得用于任何商业用途:作者不承担任何由此带来的直接或间接责任 特别说明: ...

  2. 图像分割的java程序_基于java的图像分割(数字图像处理)

    [实例简介] 基于java的图像分割(数字图像处理),程序中包含 全局阈值分割,Roberts边缘检测分割,灰度图像,直方图. [实例截图] [核心代码] ImageProcess └── Image ...

  3. NYIST汉诺塔(一)(三)问题以及汉诺塔的路径实现

    首先,什么是汉诺塔?如题,简单的介绍一下:在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地 ...

  4. mysql连接java程序_实现Java连接mysql

    Java连接mysql数据库,代码经过运行准确无误. 下面为实例----> 用数据库操纵工具(例: SQLyogEnt)操纵mysql建表,或dos下建,如下: 数据库名:scutcs 表名:s ...

  5. 汉罗塔用java怎么编程_编程:递归编程解决汉诺塔问题(用java实现)

    //Li Cuiyun,October 14,2016. //用递归方法编程解决汉诺塔问题 package tutorial_3_5; import java.util.*; public class ...

  6. 汉诺塔问题java编程,Java经典编程300例之实例047 汉诺塔问题求解(递归)

    实例说明 汉诺塔问题的描述如下:有A.B和C 3跟柱子,在A上从下往上按照从小到大的顺序放着64个圆盘,以B为中介,把盘子全部移动到C上.移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的 ...

  7. python面对对象汉诺塔_如何使用python实现的汉诺塔的小程序

    python是面向对象的语言,但是做面向过程的操作,也是得心应手. 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- from requests. ...

  8. 河内塔php,基于HTML5的WebGL设计汉诺塔3D游戏

    在这里我们将构造一个基于HT for Web的HTML5+JavaScript来实现汉诺塔游戏. 知道了汉诺塔的规则和算法,现在就开始创建元素.用HT for Web(http://www.hight ...

  9. 个盘子的汉诺塔需要移动几步_坨——理解递归实现quot;汉诺塔quot;代码的关键...

    我记得,大学学C语言时,在函数递归调用那一节有个作业,就是写汉诺塔.不少同学遭遇到困难.在知乎上遇见的就有: 如何理解汉诺塔的递归?​www.zhihu.com 题主发出悲鸣:"--学C++ ...

最新文章

  1. android调试步骤,Android16_Android调试步骤
  2. HANA 数据库备份hang住的解决办法
  3. RT/Metro商店应用如何如何获取图片的宽高
  4. ZBrushCore中文版
  5. 模块化和组件化的定义以及两者的区别
  6. java多态替换switch_第1章 重构,第一个案例(3):运用多态取代switch
  7. android java 打开snd,使用SndPlaySound从内存中播放WAV
  8. linux中有fd set函数吗,LINUX下FD_SET介绍
  9. 【Paper-Attack】Poisoning Attacks to Graph-Based Recommender Systems
  10. Android 蓝牙相关的广播
  11. dgl._ffi.base.DGLError: Cannot assign node feature “n_feat“ on device cuda:0 to a graph on device
  12. 图像处理十:图像反色
  13. 7种寻址方式,以及有效地址计算方法。
  14. 安装 jupyter notebook
  15. 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_9 typeAliases标签和package标签
  16. 定时重启php,linux系统定时重启
  17. 卡巴斯基KEY 、NOD32注册机——最新版
  18. AtCoder 神题汇总
  19. 必须要了解的编程基础--哈希与字符串
  20. 用html和css制作九宫格,我就是要用CSS实现九宫格图

热门文章

  1. 国际顶会加持,算法大赛等你共探技术新可能
  2. 算法黑话大赏,我直呼好家伙!
  3. android+程序崩溃,Android平台程序崩溃的类型及原因列举
  4. Python3进阶复习
  5. 吴恩达机器学习6——机器学习算法改进、系统设计
  6. 01背包问题python实现
  7. MPEG-4视频编码核心思想
  8. 随机获取图片的api接口
  9. Android NDK开发: 通过C/C++调用第三方so库
  10. 素材诊断分析助手_资深优化师告诉你广告投放素材都在哪找?(国内篇)