猜数字小游戏算是一个比较经典的智力游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
猜数字小游戏算是一个比较经典的智力游戏,当然这个游戏做起来比较简单,写这个程序的目的主要是为了说明如何编写一个游戏,这里有一个通用游戏编成模板,万变不离其踪,绝大多数游戏都逃脱不了这个格式:
#include........
#define........
void main()
{inta,b,c;
a=1; b=2; c=3; //设置初始值
while(a!='q') //循环直到退出游戏标志出现
{printf("%d",c); //相当于重画屏
a=getch(); //相应输入设备
c=a*b; //相当于重新运算变量值算法
}
}
牢记这个模板格式,以后你所要做的事就是用具体的游戏代码代替模板中的相应部分。祝你好运!
#include 《conio.h》
#include 《stdio.h》
#include 《stdlib.h》
#include 《time.h》
#include 《math.h》
#define RED 4
#define GREEN 2
#define YELLOW 62
#define WHITE 63
main()
{
int a=0,b,i,j,k1,k,n,times=0,guess[4],answer[4];char Q;
clrscr();
textcolor(RED);
for(i=1;i《=21;i++)
cprintf("\03");printf("\n"); /*做一个开头小图形*/
cprintf("\03");
textcolor(WHITE);
cprintf(" GUESS NUMBER GAME ");
textcolor(RED);
cprintf("\03\r\n");
for(i=1;i《=21;i++)
cprintf("\03");printf("\n");
textcolor(GREEN);
cprintf("%10c\r\n",'\01');
textcolor(YELLOW);
cprintf("Times ");
textcolor(GREEN);
cprintf("Guess\r\n");
for(k=0;k《4;k++) /*在0~9中随机产生4个不同的数字*/
{
Renew: srand(time(NULL));
i=rand()%10;
for(k1=0;k1《k;k1++)
if(answer[k1]==i) goto Renew;
answer[k]=i;
}
while(a!=4) /*当4A0B时游戏结束*/
{a=0;b=0;times++;
textcolor(YELLOW);
cprintf("%3d ",times);
Reguess:textcolor(GREEN);
scanf("%d",&n); /*输入猜测的4个数字*/
if(n》0&&n《100||n》9999) /*如果输入的不是3位或4位数则重新输入,输入12等价于0123 */
{textcolor(1);
cprintf(" Date error!\r\n ");
gotoReguess;
}
if(n==0)
exit(0);
for(i=0;i《4;i++)
{guess[i]=n/pow10(3-i);
n%=(int)pow10(3-i);
}
for(k=0;k《4;k++)
{
for(i=0;i《4;i++)
if(answer[k]==guess[i])
{if(k==i) a++;
else b++;
}
}
printf("%9c",'\032');
cprintf("%dA%dB\r\n",a,b);
}
textcolor(RED);
if(times《=7) cprintf("Very Good !\r\n"); /*最后成绩评价*/
else if(times》7&×《=9)
cprintf("Just so so !\r\n");
else cprintf("You are fool !\r\n");
puts("Press R to replay game,else quite game...");
Q=getch();
if(Q=='r'||Q=='R') /*重新开始游戏*/ main();
return 0;
}