#include<bits/stdc++.h>
using namespace std;
void explain()
{
printf("猜数字\n游戏规则如下\n电脑会随机生成一个不含重复数字的三位数,然后你根据电脑的提示来猜这个三位数。\n如果你猜的三位数里有一个数字和电脑生成的这个数字相同,但是位置不同");
printf( "那么电脑会显示一个字母B,有多个数字相同但是位置不同就显示多个B\n");
printf("如果你猜的三位数里有一个数字和电脑生成的这个数字相同,而且位置相同\n");
printf("那么电脑会显示一个字母A,有多个数字相同而且位置相同就显示多个A\n") ;
printf("例如,电脑现在生成一个数字123,而你猜的数字是321.那么电脑蒋会显示1A2B\n");
printf("注意:你不能猜有相同数字的数(这样写也很慢不是吗),数字有可能是0开头的,如012\n");
}
int main()
{
int flag;
printf("这是一个考验你的逻辑推理能力的小游戏,如果你准备好了就按1");
scanf("%d",&flag);
if(flag==1)
{
explain();
char a[3];
int i,j=1,b,s=0,k,h;
srand((unsigned)time((NULL)));
while(j)
{
h=(100+rand()%899);
i=0,s=0;
k=h;
while(h!=0)
{
a[i]=h%10;
h/=10;
i++;
}
for(i=0;i<2;i++)
{
for(j=i+1;j<3;j++)
if(a[i]==a[j])
s++;
}
if(s==0)
j=0;
}
char m[3];
int l=0,w,e,r=1;
while(r)
{
w=0;
e=0;
printf("请输入你猜的数字:\n");
scanf("%s",m);
for(i=0;i<3;i++)
for(j=2;j>=0;j--)
{
if(a[j]==m[i]-'0'&&i!=j)
w++;
else if(a[j]==m[i]-'0'&&i==j)
e++;
}
if(w==1&&e==0)
{
printf("1B\n");
l++;
}
else if(w==2&&e==0)
{
printf("2B\n");
l++;
}
else if(w==3&&e==0)
{
printf("3B\n");
l++;
}
else if(e==1&&w==0)
{
printf("1A\n");
l++;
}
else if(e==2&&w==0)
{
printf("2A\n");
l++;
}
else if(e==3&&w==0)
{
l++;
printf("你真是个大聪明,只用了%d步就猜出来了",l);
r=0;
}
else if(e==1&&w==1)
{
printf("1A1B\n");
l++;
}
else if(e==1&&w==2)
{
printf("1A2B\n");
l++;
}
else if(e==2&&w==1)
{
printf("2A1B\n");
l++;
}
else
{
printf("false\n");
l++;
}
}
}
else
printf("就这样放弃了?就这?就这?");
}
小白自己写的一个小游戏,欢迎━(`∀´)ノ亻!各位来挑战。
可以在Devc,visual上运行