本人是搞软件的,
女朋友现在需要我帮忙做个东东.
可我是搞JAVA的,
对VC++只是懂基本语法.
还请诸位帮忙,如果各位也需要我帮忙.尽管说.
汉诺塔(Towers of Hanoi)问题来自一个古老的传说:在世界刚被创建的时候有一座钻石宝塔,其上有64个金碟。所有碟子按从大到小的次序从塔底堆放至塔顶。紧挨着这座塔有另外两个钻石宝塔。从世界创始之日起,婆罗门的牧师们就一直在试图把塔1上的碟子移动到塔2上去,其间借助于塔3的帮助。由于碟子非常重,因此,每次只能移动一个碟子。另外,任何时候都不能把一个碟子放在比它小的碟子上面。按照这个传说,当牧师们完成他们的任务之后,世界末日也就到了。问题:
1、已知有三个塔(1、2、3)和n个从大到小的金碟子,初始状态时n个碟子按从大到小的次序从塔1的底部堆放至顶部。
2、要求把碟子都移动到塔2(按从大到小的次序从塔2的底部堆放至顶部)。
3、每次移动一个碟子。
4、任何时候、任何一个塔上都不能把大碟子放到小碟子的上面。
5、可以借助塔3。
要求:
1、在窗口中画出初始时塔和碟子的状态。
2、可以以自动或手动两种方式搬移碟子。
3、自动搬移可以通过定时器或多线程的方法,每一次移动的时间间隔可以自定,以人眼观察比较舒服为宜,每一次的移动过程如能实现动画最好。
4、定义塔的描述类和碟子的描述类。
5、在程序中,碟子的数目及每次移动的时间间隔可以通过对话框设置(也应该有默认值)。
6、支持暂停功和继续的功能(在自动搬移过程中可以暂停,并继续)。
7、暂停后,可以将当前的状态保存(碟子和塔的组合关系)。
8、可以从7中保存的文件中读出某个状态,并继续移动。

解决方案 »

  1.   

    这是个经典问题,算法用递归解决,网上找个源代码很容易的。具体功能就要自己解决了。有一点搞不懂,你既然是搞JAVA的,怎么会对C++不熟?差不多的嘛!
      

  2.   

    http://www.0mai.com/bbs 上有这问题的解答 我把我做的例子放到 http://www.0mai.com/bbs/down_default.asp 上了你可以看一看我OICQ:9199333