#include <iostream>
#include<stdio.h>
#include <stdlib.h>
#include<time.h>//时间头文件
#include<ctime>
using namespace std;
int main()
{
cout<<"欢迎来到MASTERMIND"<<endl;
cout <<"游戏规则:首先系统会随机生成四位不同的个位数,这时,你可以输入你心里想的四位数,系统会计算并回答你,几a几b,a代表位置和数字都猜对了,而b代表只是数字猜中但位置还需要调整。例如:正确答案为8954,你输入的是8349,那么系统会回复你1a2b,因为你的8猜中位置,4和9没猜中位置。其次就是ab不会重复"<<endl;
cout <<"那么从现在开始游戏开始"<<endl;
int a,b,c,d,x,y,z,w,flag1=0,i=0,j=0,l=0,m=0;
srand(time(NULL));//随机数种子
x=rand()%9+1;//生成随机数字 1-9
do
{y=rand()%9+1;}
while(y==x);
do
{z=rand()%9+1;}
while(z==x || z==y);
do
{w=rand()%9+1;}
while(w==z || w==x || w==y);//随机数互不相同
while(flag1==0)
{
printf("请依次输入4个不重复数字(1-9中)请用空格将数字隔开再回车谢谢,这是第 %d 次尝试\n-\n ",m+1);
scanf("%d %d %d %d",&a,&b,&c,&d);//输入4个数
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("\n系统回复%da%db\n",i,j);//同规则
if(i==4)//完全推出情况返回答案,反馈推理次数,跳出循环
{
m++;
printf("\n恭喜你获胜了,你用了 %d 次,答案是: %d %d %d %d\n",m,x,y,z,w);
flag1++;
}
m++;//次数加一
i=0;
j=0;//判断正确位置个数及确定错误位置、正确数值个数清零
}
}
运行结果
本文含有隐藏内容,请 开通VIP 后查看