码迷,mamicode.com
首页 > 其他好文 > 详细

第九周学习总结

时间:2020-05-15 13:26:26      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:||   windows   ati   --   第九周   getch   ring   现在   lse   

#include <stdio.h>
#include <time.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
int exp=0;
static char num[233][2];
int find0()
{
int exp1,x;
for(exp1=0;num[exp1][0]!=‘\0‘;exp1++)
x=exp1;
return x;
}
void clear_hanio()//将汉诺塔的数组缓存初始化
{
int exp1,exp2;
for(exp1=0;num[exp1][0]!=‘\0‘;exp1++)
for(exp2=0;exp2<2;exp2++)
num[exp1][exp2]=‘\0‘;
}
void hanio(int n,char a,char b,char c)//电脑计算正确答案(汉诺塔)
{
if(n==1)
{
num[exp][0]=a;
num[exp][1]=c;
exp++;
}
else if(n>1)
{
hanio(n-1,a,c,b);
num[exp][0]=a;
num[exp][1]=c;
exp++;
hanio(n-1,b,a,c);
}
}
int main()
{
void hanio_text();
hanio_text();
return 0;
}
void hanio_text()
{
void hanio_start_2();
void hanio_gz();
void text();
int start;
printf("\t****************************************************\n");
printf("\t* 汉诺塔 *\n");
printf("\t* *\n");
printf("\t* 1.开始游戏 *\n");
printf("\t* 2.规则 *\n");
printf("\t* *\n");
printf("\t* *\n");
printf("\t****************************************************\n");
rehanio_text:
scanf("%d",&start);
if(start==1)
hanio_start_2();
else if(start==2)
hanio_gz();
else
{
printf("输入错误,请再次输入。\n");
goto rehanio_text;
}
}
void hanio_gz()
{
void hanio_text();
int x;
printf("\t****************************************************\n");
printf("\t* 规则 *\n");
printf("\t* *\n");
printf("\t* 1.有三根相邻的柱子,标号为a,b,c。 *\n");
printf("\t*2.a柱子上从下到上按金字塔叠放着n个不同大小的碟子。*\n");
printf("\t* 3.现在把所有的碟子一个一个移动到柱子c上。 *\n");
printf("\t* 4.大碟子不能放在小碟子上方。 *\n");
printf("\t* 5.本游戏仅可运行一次 *\n");
printf("\t* 6.返回上一界面 *\n");
printf("\t****************************************************\n");
rehanio_gz:
scanf("%d",&x);
if(x==6)
hanio_text();
else
{
printf("输入错误,请再次输入。\n");
goto rehanio_gz;
}
}
void hanio_start_2()
{
void hanio_text();
void hanio(int,char,char,char);
char yas[233][2],a=‘a‘,b=‘b‘,c=‘c‘;
int n,m;
int exp1;
rehanio_start_2:
int exp11,exp22;//初始化yas
for(exp11=0;yas[exp11][0]!=‘\0‘;exp11++)
for(exp22=0;exp22<2;exp22++)
yas[exp11][exp22]=‘\0‘;
printf("请输入碟子的数量:");//开始运行
scanf("%d",&n);
printf("游戏开始\n格式为a-->c\n");
clear_hanio();
hanio(n,a,b,c);
for(exp1=0;num[exp1][0]!=‘\0‘;exp1++)
{
scanf("\n%c-->%c",&yas[exp1][0],&yas[exp1][1]);
getchar();
}
for(exp1=0;num[exp1][0]!=‘\0‘;exp1++)
{
if(num[exp1][0]!=yas[exp1][0]||num[exp1][1]!=yas[exp1][1])
{
printf("你输掉了本场游戏。\n");
reuse11:
printf("1.再次挑战\n2.返回上一界面\n");
scanf("%d",&m);
if(m==1)
goto rehanio_start_2;
else if(m==2)
hanio_text();
else
{
printf("输入错误,请再次输入。\n");
goto reuse11;
}
}
}
printf("恭喜你闯关完成。\n");
hanio_text();
}

 

 

顺手运用递归做了个游戏(bug有点多)

第九周学习总结

标签:||   windows   ati   --   第九周   getch   ring   现在   lse   

原文地址:https://www.cnblogs.com/Dawan/p/12894137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!