前 言
随着 21 世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我
们越来越多地与计算机打交道。这个学期我们有学习了一门新的编程语言
visual basic 简称 VB,它继承了 basic 语言易学易用的特点,特别适合于初学
者学习 windows 系统编程。为了使用户在繁忙的日程工作中得到放松,于是出
现了各种各样的休闲软件,如聊天工具,游戏等等。于是我想用 VB 设计一个简单
的游戏软件。通过这一个学期以来对 Visual Basic 的学习,我初步掌握了
Visual Basic 语言的最基本的知识,于是在我们 VB 老师潼老师的指导下动手
用 Visual Basic 编写一个汉诺塔小游戏。
首先通过网上的资料我们先了解一下汉诺塔的意义和它的一些基本玩法,
让读者能了解它是什么、他的具体玩法。
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智游戏。上帝创
造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着 64
片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根
柱子上。并且规定:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动
一个圆盘,最后把这些圆盘放在第三根柱子上,并且从下往上是圆盘大小依次
减小的。当所有的圆盘都从第一根柱子移到第三根柱子上时,世界就将在一声
霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。
不管这个传说的可信度有多大,如果考虑一下把 64 个圆盘,由一根柱子
上移到另一根柱子上,并且始终保持上小下大的顺序。这需要多少次移动呢?这
里就需要用到递归的方法。假设有 n 个圆盘,移动次数是 f(n).显然
f(1)=1,f(2)=3,f(3)=7,且 f(n+1)=2*f(n)+1。化解得 f(n)=2n-1。鉴于
264-1 这个数字太大,本次就只用 5 个圆盘,这样既让人一目了然,而且也起
到益脑的作用。
《汉诺塔》还被认为是仅有的一个能够真正吸引广泛人群的作品。某些批
评家也许会声称,《汉诺塔》要比过去二十年间出现的任何东西都要浪费人们
的时间。至于我们,则要欣然提名它为 GameSpot,是当初一款以游戏来锻炼
人的脑力和动作协调的休闲游戏。不得不说的是他也曾是一款经典的游戏之一。
为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、
娱乐的一个方式,我们小组开始着手用 VB 语言开发一个经典的汉诺塔游戏。
游戏设计