这篇文章主要讲解了“怎么使用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;//判断正确位置个数及确定错误位置、正确数值个数清零 } }
运行尝试