JAVA汉诺塔
发布网友
发布时间:2022-04-30 16:11
我来回答
共3个回答
热心网友
时间:2022-06-27 03:59
import java.awt.*;
public class TowerPoint //公共类TowerPoint
{
int x,y; //定义2个int类型的变量
boolean 有盘子; //定义一个boolean类型的变量
Disk 盘子=null; //初始化一个对象"盘子"并赋值为空
HannoiTower con=null; //初始化一个HannoiTower类的对象"con"并赋值为空
public TowerPoint(int x,int y,boolean boo) //构造函数,有3个参数,x,y,boo
{
this.x=x; //将参数赋给当前x
this.y=y; //将参数赋给当前y
有盘子=boo; //将boo赋给"有盘子"
}
public boolean 是否有盘子() //定义一个返回boolean类型的方法"是否有盘子"
{
return 有盘子; //返回boolean类型的"有盘子"
}
public void set有盘子(boolean boo) //set方法,并且参数为boolean
{
有盘子=boo; //将boo赋给有盘子
}
public int getX() //取得x方法
{
return x; //返回x
}
public int getY()//取得y方法
{
return y; //返回y
}
public void 放置盘子(Disk 盘子,HannoiTower con) //定义一个有2个参数的"放置盘子"方法。参数是Disk类和HannoiTower类
{
this.con=con; //当前con等于参数con
con.setLayout(null); //调用on对象的方法setLayout,并设置为空
this.盘子=盘子; //当前盘子等于参数盘子
con.add(盘子); //con对象的add方法,加入"盘子"对象
int w=盘子.getBounds().width; //定义并给一个int类型的w变量一个值,值为"盘子.getBounds().width"
int h=盘子.getBounds().height; //定义并给一个int类型的h变量一个值,值为"盘子.getBounds().height"
盘子.setBounds(x-w/2,y-h/2,w,h);//调用"盘子"对象的setBounds方法,并把传递值
有盘子=true;//boolean类型的对象"有盘子"等于true
con.validate(); //调用con对象的validate方法
}
public Disk 获取盘子() //定义"获取盘子"方法,方法返回Disk对象
{
return 盘子; //返回盘子
}
}
-----------------------另外说一下,楼主太抠门了!!!!!!!!只给5分-----------------------
热心网友
时间:2022-06-27 03:59
恩,我有一个完整的程序包。可以发给你,但是暂不提供源码,zhaorXXXXX@qq.com
热心网友
时间:2022-06-27 04:00
头疼的汉诺塔2的n次方-1
求java汉诺塔源代码的注解(急!)
import java.awt.*;public class TowerPoint //公共类TowerPoint { int x,y; //定义2个int类型的变量 boolean 有盘子; //定义一个boolean类型的变量 Disk 盘子=null; //初始化一个对象"盘子"并赋值为空 HannoiTower con=null; //初始化一个HannoiTower类的对象"con"并赋值为空 public TowerPo...
设计并编写汉诺塔程序怎么弄得用java的
import java.awt.*;import java.io.*;import java.awt.event.*;public class Hanoi { public static void main(String args[]) throws IOException { Hanoi aa = new Hanoi();aa.go();} public void go() throws IOException { int n;BufferedReader buf;buf = new BufferedReader(new Input...
这是Towers of Hanoi问题的Java方法,请高手解释一下
Java汉诺塔算法 汉诺塔问题[又称河内塔]是印度的一个古老的传说。据传开天辟地之神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助...
java汉诺塔(河内塔)问题。解释一下汉诺塔为3时怎么想
然后把3盘移动至C塔,即第4步。最后,把特殊盘移动到C塔上,同样把5-7步一起看,达到的效果即把特殊盘移动至C盘,完成!!等于4的时候 ,其实就是把123盘看成特殊盘!同样的道理,因为汉诺塔是递归实现的,明白之后很简单。
求java版汉诺塔的演示程序
本程序完成的功能是利用汉递规算法实现汉诺塔的动态演示程序 / import javax.swing.*;import java.awt.geom.*;import java.awt.event.*;import java.awt.*;public class Hanio extends JApplet implements ActionListener, Runnable { / diskNum是盘子的数量 / private int diskNum ;/ 各个组件的句柄...
JAVA中能够实现方法的递归调用吗?如何实现?
直接调用funca(){ ... funca();};间接调用;funca(){ ... funcb();}funcb(){ ... funca(); ...} 汉诺塔源码public class HanoiY { void Move(char chSour,char chDest){ System.out.println("Move the top plate of "+chSour+"-->"+chDest...
考“软考”的软件设计师,该看什么书?
算法的学习不是一朝一夕就能提高的,一定要静下心来学习一些经典算法,比如:穷举法、贪婪法、分治法、迭代法、递推法、递归法、回溯法;找一些有名的算法程序来分析,比如:背包问题、组合问题、斐波那契数列、马踏棋盘问题、货朗担问题、八皇后问题、迷宫问题、汉诺塔问题、约琴夫环问题等。有了这些算法...
JAVA程序经常用到“递归”,“递归”的基本思想是
递归强调的分治的策略,再举个例子,有一种排序算法叫归并排序,其思想是这样的:要对一个无序的数组进行排序,可以将这个数组分解为2个小数组,然后对这两个数组分别排序,再把排好序的两个数组合并。而这一过程中只有“对两个数组分别排序”不是我们能解决的,但是这个问题可以使用上面的策略进行再次...
小学四年级河内塔问题!!!火急!!!火急!!!火急!!!
汉诺塔问题的递归Java语言实现 import java.util.Scanner; public class HanoiTest { public static void hanoi(int level,String a,String b,String c){ if(level==1) move(1,a,c); else { hanoi(level-1,a,c,b); move(level,a,c); hanoi(level-1,b,a,c); } } static void move(int level,...
...c++ c c# java 哪个快。差别大吗?如运行 汉诺塔 这个小程序。_百度...
C和C++都是编译型语言,编译后是本地代码.最快,可能C比C++快一点.因为由于C++面向对象,较高级,所以有一点性能损失.C#和Java也需要编译,但是结果不是本地代码,是一种中间代码,已经非常接近本地代码,需要一个解释器进行解释运行,既有编译语言的特性,又有解释的特性,性能比C和C++要差一点.C#应该比Java...