C语语言言实实现现汉汉诺诺塔塔游游戏戏
操作就是:A B 号码A 的塔顶一层放在号码B的塔顶。如1 (空格) 3 回车。 话 有人能把我这C 的代码添加到QT 界面框架上去
么? 代码写的不好 ,维护性不够,只能玩8层的,写完以后发现很难拓展,软件工程,设计模式有待提高
里面提示输入等级的装B用了,没有实现,大家随便输入个个位数就可以玩了。
stackfunc.c
#include"STACK.h"
#include
extern ceng CENG[SIZE ;
//数据入栈
void push_stack(stack*p,int number){
p->arr[p->head =number;
p->head++;
}
//初始化栈1
void init_stack1(stack*p){
p->head=0;
push_stack(p,1);
push_stack(p,2);
push_stack(p,3);
push_stack(p,4);
push_stack(p,5);
push_stack(p,6);
push_stack(p,7);
push_stack(p,8);
}
//初始化栈2 3
void init_stack2_3(stack* p1,stack* p2){
p1->head=0;
p1->arr[p1->head =0;
p2->head=0;
p2->arr[p2->head =0;
}
//弹出栈顶元素
int pop_stack(stack* p){
p->head--;
return p->arr[p->head ;
}
//访问栈顶元素
int top_stack(stack* p){
return p->arr[p->head-1 ;
}
//比较两个栈顶元素的大小
int sizecmp_stack(stack* p1,stack* p2){
if(p1->arr[p1->head-1 >p2->arr[p2->head-1 )
return 1;
else if(p1->arr[p1->head-1 arr[p2->head-1 )
return -1;
else return 0;
}
//测出栈的高度
int high_stack(stack* p){
return p->head;
}
//是否为空栈
int empty_stack(stack* p){
return p->head==0;
}
//是否栈满
int full_stack(stack* p){
return p->head==SIZE;
}
//初始化层1
void init_ceng1(ceng* p){
p->number=1;
p->row=SIZE-1;
p->col=0;
}
//初始化层2
void init_ceng2(ceng* p){
p->number=2;
p->row=SIZE-2;
p->col=0;
}
//初始化层3
void init_ceng3(ceng* p){
p->number=3;
p->row=SIZE-3;
p->col=0;
}
//初始化层4
void init_ceng4(ceng* p){
p->number=4;
p->row=SIZE-4;
p->col=0;
}
//初始化层5
void init_ceng5(ceng*p){
p->number=5;
p->row=SIZE-5;
p->col=0;
}
//初始化层6
void init_ceng6(ceng*p){
p->number=6;