Please help me check again is there any minor error.
#include <iostream>
#include <ctime>
using namespace std;
void line(){
cout<<"--------------------------------------------"<<endl;
}
void check(int a,int b){
cout<<" ";
for(int i=0;i<a;i++)
cout<<" O";
for(int i=0;i<b;i++)
cout<<" #";
cout<<endl;
}
void ran(int &ran1,int &ran2, int &ran3, int &ran4)
{
ran1=rand()%6+1;
ran2=rand()%6+1;
ran3=rand()%6+1;
ran4=rand()%6+1;
while(ran2==ran1)
ran2=rand()%6+1;
while(ran3==ran1 || ran3==ran2)
ran3=rand()%6+1;
while(ran4==ran1||ran4==ran2||ran4==ran3)
ran4=rand()%6+1;
}
int main() {
srand(time(NULL));
//define start
int round=1;
int ran1,ran2,ran3,ran4;
int ans[5];
int check1=0,check2=0;
bool checkdig1=false,checkdig2=false,checkdig3=false,checkdig4=false;
//define end
ran(ran1,ran2,ran3,ran4);
cout<<"MasterMind"<<endl<<endl;
cout<<"Answer: "<<ran1<<ran2<<ran3<<ran4<<endl;
cout<<"Enter four digits (1-6) separated by a space"<<endl;
while(true){
line();
cout<<"Round"<<round<<":"<<endl;
cout<<"Enter Guess: ";
for(int i=0;i<4;i++)
cin>>ans[i];
if(ans[0]==ran1){
check1++;checkdig1=true;
}
if(ans[1]==ran2){
check1++;checkdig2=true;
}
if(ans[2]==ran3){
check1++;checkdig3=true;
}
if(ans[3]==ran4){
check1++;checkdig4=true;
}
if(checkdig1==false&&(ans[0]==ran2||ans[0]==ran3||ans[0]==ran4))
check2++;
if(checkdig2==false&&(ans[1]==ran1||ans[1]==ran3||ans[1]==ran4))
check2++;
if(checkdig3==false&&(ans[2]==ran1||ans[2]==ran2||ans[2]==ran4))
check2++;
if(checkdig4==false&&(ans[3]==ran1||ans[3]==ran2||ans[3]==ran3))
check2++;
if(check1==4){
line();
cout<<"Congratulations! You win the game in "<<round<<" steps"<<endl;
break;
}
check(check1,check2);
round++;
checkdig1=false;checkdig2=false;checkdig3=false;checkdig4=false;
check1=0;check2=0;
}
return 0;
}
댓글을 달아 주세요