这篇文章主要讲解了“怎么使用C语言实现珠玑妙算Mastermind小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用C语言实现珠玑妙算Mastermind小游戏”吧!
代码
这里其实原理与代码十分简单,是通过几个条件进行的逻辑判定。
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
main()
{
int a,b,c,d,x,y,z,w,flag1=0,i=0,j=0,l=0,m=0;
srand(time(NULL));//用机器时间设置随机种子
x=rand()%6+1;//生成6个随机数字
do
{y=rand()%6+1;}
while(y==x);
do
{z=rand()%6+1;}
while(z==x || z==y);
do
{w=rand()%6+1;}
while(w==z || w==x || w==y);//设置的6个随机数互不相同
while(flag1==0)
{
printf("请依次输入4个数字(1-6中),谢谢,这是第 %d 次尝试
-
",m+1);
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a==x)
i++;
if(b==y)
i++;
if(c==z)
i++;
if(d==w)
i++; //确定正确位置个数
if(a!=x && (x==b || x==c || x==d))
j++;
if(b!=y && (y==a || y==c || y==d))
j++;
if(c!=z && (z==a || z==b || z==d))
j++;
if(d!=w && (w==a || w==b || w==c))
j++; //确定错误位置、正确数值个数
printf("
正确位置及数值有 %d 个,正确数值错误位置有 %d 个
",i,j);
if(i==4)//完全推出情况返回答案,反馈推理次数,跳出循环
{
m++;
printf("
恭喜你答对了,你用了 %d 次,答案是: %d %d %d %d
",m,x,y,z,w);
flag1++;
}
m++;//次数加一
i=0;
j=0;//判断正确位置个数及确定错误位置、正确数值个数清零
}
}运行尝试