C++经典实用趣味编程百例(91)-人机猜数游戏

由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。
例如:计算机“想”了一个“1234”请人猜,可能的提示如下:
人猜的整数 计算机判断有几个数字正确(A) 有几个位置正确(B)
1122                         2             A               1            B
3344                         2             A               1            B 
3312                         3             A               0            B  
4123                         4             A               0            B 
1243                         4             A               2            B
1234                         4             A               4            B 
游戏结束
请编程实现该游戏。游戏结束时,显示人猜一个数用了几次。

 

#include <iostream> #include<time.h> using namespace std; char Rand[5],in[5]; int X; int main() { char x='Y'; int A=0; int B=0; int count=0; while(x!='N'&&x!='n') { srand(time(NULL)); X=1000+rand()%9000; itoa(X, Rand, 10); cout<<X; while(cout<<"Please input the number you guess:"&&cin>>in) { for(int i=0;i<4;i++) { if(in[i]==Rand[i]) { A++; B++; } else { for(int j=0;j<4;j++) { if(Rand[i]==in[j]&&Rand[j]!=in[j]) { A++; break; } } } } cout<<A<<"A"<<B<<"B"<<endl; count++; if(A==4&&B==4) { cout<<"You guess it!"<<endl; cout<<"You have guessed "<<count<<" times.!"<<endl; break; } A=0;B=0; } cout<<endl<<"Do you continue(y/n)?"; cin>>x; if(x=='y'||x=='Y') count=0; } return 0; }

你可能感兴趣的:(游戏,编程,C++,null,input)