C语言写猜字游戏
/*你说的功能基本达到了,但是样式没有怎么调整,你自己看下吧*/
#include<stdio.h>
#include<stdlib.h>
void getNum(int a[]) /*产生随机数*/
{int i,j;
randomize();
a[0]=random(10);
for(i=1;i<4;i++)
{
a[i]=random(10);
for(j=i-1;j>=0;j--)
if(a[i]==a[j])
{i--;
break;
}
}
}
void inputNum(int b[]) /*输入数字,并保证没有重复数字*/
{int i,j;
puts("Input number:");
laber:;
scanf("%d%d%d%d",&b[0],&b[1],&b[2],&b[3]);
for(i=3;i>0;i--)
for(j=0;j<i;j++)
if(b[j]==b[i])
{puts("Input again:");
goto laber;
}
}
main()
{int a[4],b[4],c[10][4],A=0,B=0,correct[10][2],count=0,i,j;
char ch;
laber:;
system("cls");
getNum(a);
while(count<10) /*最多猜10次*/
{puts("Browse the historic document?(Y/N)"); /*是否查看历史记录*/
ch=getchar();
if(ch=='Y'||ch=='y')
for(i=0;i<count;i++)
{printf("%d:",i+1);
for(j=0;j<4;j++)
printf("%d\t",c[i][j]);
printf("%dA %dB",correct[i][0],correct[i][1]);
putchar('\n');
}
putchar('\n');
inputNum(b);
for(i=0;i<4;i++)
c[count][i]=b[i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{if(a[i]==b[j]&&i==j)
A++;
else if(a[i]==b[j]&&i!=j)
B++;
}
if(A==4)
{puts("Congratulations!!");
getch();
break;
}
else
printf("%dA %dB\n",A,B);
correct[count][0]=A;
correct[count][1]=B;
count++;
A=0;B=0;
getchar();
}
getchar(); /*是否再猜一次*/
puts("Guess again?");
ch=getchar();
if(ch=='Y'||ch=='y')
goto laber;
}