汉罗塔
3 详细设计
3.1 程序初始化
3.1.1代码功能
在初始化程序中,主要实现的是绘制塔座标志,绘制盘块,设置塔座标志颜色,以及填充盘块颜色等。
3.1.2 功能实现代码
①绘制塔座的代码如下:
setcolor(GREEN);/*设置塔座标志颜色*/
outtextxy(180,450,"press any key to continue"); settextstyle(0,0,2);
outtextxy(90,420,"A"); /*塔座标志*/ outtextxy(240,420,"B"); outtextxy(390,420,"C"); ②绘制矩形的代码如下:
setfillstyle(SOLID_FILL,color);/*设置填充颜色*/ bar(100-(33-3*num[0].data[num[0].top]),400-20*i-8,100+ (33-3*num[0].data[num[0].top]),400-20*i+8); /*画矩形*/
3.2 盘块的移动过程
3.2.1代码功能
盘块的移动实际上是一个出栈和入栈的过程,盘块出栈后便将原来的地方涂黑,本块代码主要是实现显示汉诺塔的具体移动的演示过程及移动步骤。
3.2.2 功能实现代码
void move(char x,char y,struct M num[3])/*移动的具体过程*/ { int i;
char num1[3],num2[3];
sprintf(num1,"%c",x-32);/*将小写变成大写,并转换成字符串输出*/ sprintf(num2,"%c",y-32);