汉诺塔游戏的设计(图文)
时间:2007-10-06 23:45:16
来源: 作者:ChinaITzhe 编辑:海
if(iNum==3)
{
Move(iA,iC);
::Sleep(500);
Move(iA,iB);
::Sleep(500);
Move(iC,iB);
::Sleep(500);
Move(iA,iC);
::Sleep(500);
Move(iB,iA);
::Sleep(500);
Move(iB,iC);
::Sleep(500);
Move(iA,iC);
::Sleep(500);
}
//个数大于3,递归实现移动。
else
{
//递归自动移动。
AutoMove(iA,iC,iB,iNum-1);
Move(iA,iC);
::Sleep(500);
AutoMove(iB,iA,iC,iNum-1);
}
}
};
程序实现的结果如下图:
由于堆栈内存的限制,选关不可能是无限个盘子,本程序设计的最大关数是8。自动移动是用递归实现的,自动移动的过程中,其他消息无法响应,可以改成多线程或由用户控制的形式。上述的程序附有Visual C++源代码,并在Windows XP和Visual C++6.0下调试成功。
关键字:VC,程序
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面