您的位置:首页 > 编程语言 > C语言/C++

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

2011-03-06 12:14 405 查看
由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。
例如:计算机“想”了一个“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++ 游戏 input null