工作时候闲得没事,做了一个游戏演示.
河内塔问题大家都知道吧,详细介绍这里
ccmp.tacomall.com.tw/toy/hanoi/hanoi.html河內塔的起源
1883年,一位法國的數學家 Edouard Lucas 教授在歐洲的一份雜誌上介紹了一個相當
吸引人的難題──迷人的智力遊戲。這個遊戲名為河內塔(Tower of Hanoi),它源自古印度
神廟中的一段故事(也有一說是 Lucas 教授為增加此遊戲之神秘色彩而捏造的)。傳說在古
老的印度,有一座神廟,據說它是宇宙的中心。在廟宇中放置了一塊上面插有三根長木釘
的木板,在其中的一根木釘上,從上至下被放置了64片直徑由小至大的圓環形金屬片。古
印度教的天神指示祂的僧侶們將64片的金屬片移至三根木釘中的其中一根上。規定在每次
的移動中,只能搬移一片金屬片,並且在過程中必須保持金屬片由上至下是直徑由小至大
的次序,也就是說不論在那一根木釘上,圓環形的金屬片都是直徑較小的被放在上層。直
到有一天,僧侶們能將64片的金屬片依規則從指定的木釘上全部移動至另一根木釘上,那
麼,世界末日即隨之來到,世間的一切終將被毀滅,萬物都將至極樂世界
针对这个游戏作了解法演示.
http://vip.5dmedia.com/star/star/game/hanoi/hnt.html下面我来简单介绍一下思路
程序中有如下几个重要函数:
init(n); //数据初始化
hnt(n,'A','B','C'); //最重要的函数,用于计算结果,并将结果分别保存在cluA,cluB,cluC数组中
drawQuestion(); //输出游戏说明(输出画面中红线以上的部分)
writeResault() //将cluA,cluB,cluC中的结果以图形的方式输出
refArray(); //用于刷新A,B,C三柱当前的盘子数组cluA,cluB,cluC