#include<iostream>
#include<string>
#include<cstdlib>
#include<ctime>
using namespace std;
void main()
{
int i,j,n=0,m=0,l;
static int a[5],b[5];
char zhiling;
cout<<"猜数字游戏<制作人:泪凝北冰洋>"<<endl<<endl;
cout<<"游戏规则:输入4个不同的数字,范围为1~9;如果你输入的数字与答案中的数字大小相同,但是位置不同,则为B,如果大小和位置都相同,则为A。例如:若答案为1 2 3 4,而你输入2 4 3 5,那么将给出1A2B的提示。即数字3与答案中的3位置相同;2,4包含在答案中,但与答案中位置不同(游戏中不能输入0或非数字内容,否则窗口将被关闭)"<<endl;
cout<<"数字输入:数字间用空格隔开,确认请按回车键"<<endl<<endl;
loop4:cout<<"指令帮助:b=开始;e=退出;a=查看答案"<<endl;
loop1:cout<<"请输入指令信息:";
cin>>zhiling;
if (zhiling=='a')
{ cout<<"答案为:";
for(i=1;i<5;i++)
cout<<a
<<" ";cout<<endl; goto loop4;}
else if (zhiling=='e')
goto loop3;
else if(zhiling=='b')
goto loop5;
else cout<<"你输入的指令不对,请重新输入"<<endl;
goto loop1;
loop5:;
srand(time(NULL));
for(i=1;i<5;i++)
{loop:a=1+rand()%(9);
for(j=1;j<i;j++)
if (a==a[j])
goto loop;
}//产生4个随机数
for(l=1;l<=7;l++)
{loop2:cout<<"现在你还有"<<8-l<<"次机会!"<<endl;
{cout<<"请输入你猜测的四个数字(数字间用空格隔开 帮助:1 1 1 1):"<<endl;
cin>>b[1]>>b[2]>>b[3]>>b[4];//输入四个数
if (b[1]==1&&b[2]==1&&b[3]==1&&b[4]==1) goto loop4;
else if(b[1]==0||b[2]==0||b[3]==0||b[4]==0)
{cout<<"你的输入有误,请重新开始"<<endl<<endl;break;}
else for(i=1;i<5;i++)
{for(j=i+1;j<5;j++)
if(b>9||b<0)
{cout<<"你的输入有误,数字范围为1-9,请重新开始"<<endl<<endl;goto loop2;}
else if(b==b[j])
{cout<<"你的输入有误,不能输入相同的数字,请重新开始"<<endl<<endl;goto loop2;}
}//判断四个数是否符合条件
{for(i=1;i<5;i++)
for(j=1;j<5;j++)
if (b==a[j]&&i==j) m++;
else if(b==a[j]&&i!=j) n++;}
if (m==4)
{cout<<"恭喜!猜数成功!正确答案为:";//猜题成功,显示祝贺消息和正确答案
for(i=1;i<5;i++)
cout<<a<<" ";
cout<<endl<<endl;
goto loop4;
}
else
{cout<<m<<"A"<<n<<"B"<<endl;m=0;n=0;}
}//对四个数与答案进行比较
if(l==7)
{cout<<"很遗憾,正确答案为:";
for(i=1;i<5;i++)
cout<<a<<" ";
cout<<endl<<endl;
goto loop4;
}
}//显示正确答案
loop3: ;
}
很久以前写的,程序代码不太好,用了很多goto,呵呵,不过功能还是完善的~~