#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void getnum(int a[]);
int guessnum(int a[]);
void main(){
int x;
do{
int num[4];
int cs;
int i;
int daan;
getnum(num);
printf("\n\n\n\t\t\t欢迎来到文曲星游戏俱乐部!!!\n\n\n");
printf("提示:\n计算机将获得4个不同的随机一位数,请依次猜出:\n");
printf("如果输出2A2B\n在A前的2意思为:有两个数字位置数值都对。\n");
printf("在B前的2意思为:(除去完全猜对来的)有两个数字猜对了,但位置不对!\n");
printf("\n\n请输入最多能够猜的次数:");
scanf("%d",&cs);
for(i=1;i<=cs;i++){
daan=guessnum(num);
if(daan==1){
printf("恭喜,你完全才对了!\n");
printf("所用次数为:%d\n",i);break;
}
}
printf("游戏结束!!!!\n\n");
printf("得到的随机数为:\n");
printf("%d\n",num[0]);
printf("%d\n",num[1]);
printf("%d\n",num[2]);
printf("%d\n",num[3]);
printf("是否继续 (1/0)");
scanf("%d",&x);
}while(x==1);
}
void getnum(int a[]){
srand(time(NULL));
a[0]=rand()%10;
do{
a[1]=rand()%10;
}while(a[1]==a[0]);
do{
a[2]=rand()%10;
}while(a[2]==a[0]||a[2]==a[1]);
do{
a[3]=rand()%10;
}while(a[3]==a[0]||a[3]==a[1]||a[3]==a[2]);
}
int guessnum(int a[]){
int guess[4]={0};
int x=0,y=0;
int i;
printf("不要输入相同的数字!\n");
for(i=0;i<4;i++){
printf("请猜第一个数:");
scanf("%d",&guess[i]);
if(guess[i]==a[i])
x++;
}
if(guess[0]==a[1]||guess[0]==a[2]||guess[0]==a[3])
y++;
if(guess[1]==a[0]||guess[1]==a[2]||guess[1]==a[3])
y++;
if(guess[2]==a[0]||guess[2]==a[1]||guess[2]==a[3])
y++;
if(guess[3]==a[0]||guess[3]==a[1]||guess[3]==a[2])
y++;
printf("给出结果:%dA%dB\n",x,y);
if(x==4){
return 1;
}
else return 0;
}