程序:
#include<iostream>
#include<ctime>
#include<vector>
using namespace std;
class ser_num
{
private:
vector<int> dat;
public:
ser_num();
~ser_num(){}
int operator==(const ser_num&)const;
friend ostream& operator<<(ostream&,const ser_num&);
friend istream& operator>>(istream&,ser_num&);
friend class vector<int>;
friend class ran_num;
};
class ran_num:public ser_num
{
public:
ran_num();
};
int main()
{
ran_num ran;
ser_num tem;
bool win=false;
int sim=0;
for(int i=0;i<16;i++)
{
cout<<"guess"<<endl;
cin>>tem;
sim=(tem==ran);
if(sim==4)
{
win=true;
break;
}
else cout<<tem<<' '<<sim<<endl;
}
if(win)cout<<"win";
else cout<<"lose";
return 0;
}
int ser_num::operator==(const ser_num& ope)const
{
int tag=0;
for(int i=0;i<4;i++)
{
if(dat[i]==ope.dat[i])tag++;
}
return tag;
}
ostream& operator<<(ostream& os,const ser_num& aim)
{
for(int i=0;i<4;i++)
{
os<<aim.dat[i];
}
os<<endl;
return os;
}
istream& operator>>(istream& is,ser_num& aim)
{
for(int i=0;i<4;i++)
{
cout<<"the "<<i<<" num";
is>>aim.dat[i];
}
return is;
}
ran_num::ran_num():ser_num()
{
srand(time(NULL));
for(int i=0;i<4;i++)
{
dat[i]=int(rand() % 10);
}
}
ser_num::ser_num()
{
for(int i=0;i<4;i++)dat.push_back(0);
}