猜数字游戏

程序:

#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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值