nuota *han) { int i =0; //clrscr(); system("CLS"); ShowFace(han); for(;i<3;i++) { TravereStack(han->sp[i],ShowElement,han->x[i],han->y); } gotoxy(8,14); printf("Step is No. %d ",step++); getch(); return 1; } int ChangeData(Hannuota *han,int a,int b) { ElementType data; Pop(han->sp[a],&data); Push(han->sp[b],&data); ShowHannuota(han); //getchar(); return 1; } void Mov(Hannuota *han,int num,int a,int b,int c) { if(num<1) { return; } Mov(han,num-1,a,c,b); ChangeData(han,a,c); Mov(han,num-1,b,a,c); } int GameStart(Hannuota *han) { int i = han->total; for(;i>0;i--) { Push(han->sp[0],&i); } ShowHannuota(han); Mov(han,han->total,0,1,2); return 1; } int main() { Hannuota *han = InitHannuota(3); if(!han) { return 0; } GameStart(han); DestroyHannuota(han); return 1; } 具体效果如下:
面向对象的实现,请大牛赐教。
|