石头剪子布游戏
电脑出牌我应对,0 1 2分别代表石头剪子布。三局两胜,平局不计数,显示获胜者
#include<iostream>
#include<stdlib.h>
#include<ctime>
#include<iostream>
using namespace std;
class win
{
public:
win(int r,int h) //构造函数:将r h传入类的对象
{
i=r;
j=h;
}
char result(int i,int j); //判断胜负关系
void print(); //根据胜负关系输出信息
private: //成员变量
int i,j;
char a,ch;
};
char win::result(int i, int j)
{
if((i==0 && j==1)||(i==1 && j==2)||(i==2 && j==0))
//return R;
ch='R';
else if((i==0 && j==2)||(i==1 && j==0)||(i==2 && j==1))
//return P;
ch='P';
else if((i==0 && j==0)||(i==1 && j==1)||(i==2 && j==2))
//return N;
ch='N';
return ch;
};
void win::print()
{
char a=result(i,j);
switch(a)
{
case'R': cout<<"you win!"<<endl;
break;
case'P': cout<<"sorry,I win!"<<endl;
break;
case'N': cout<<"we are ok!"<<endl;
break;
}
}
int main()
{
int o;int p;
char cha;
int m=1;
while(m==1)
{
cout<<"石头=0 剪刀=1 布=2 \n"<<endl;
cout<<"please input a number"<<endl;
cin>>o;
while(o>2)
{
cout<<"please input a number again"<<endl;
cin>>o;
}
srand((unsigned)time(0));
p=rand()%3; //p取得一个0~2之间的随机数
cout<<p<<endl;
win sjb(o,p); //sjb是win类的一个对象
sjb.result(o,p); //判断胜负关系
sjb.print(); //根据胜负关系输出信息
cout<<"Do you want to try again?"<<endl;
cin>>cha;
if(cha=='y'){m=1;}
else if(cha=='n')
{m=0;cout<<"game over"<<endl;}
}
return 0;
}
石头剪子布游戏,CSDN上就有很多,可以搜一下,有很多讲的也比较详细,自己看看思路敲一下,重点是学会如何自己去实现这个小游戏。
希望对题主有所帮助,可以的话,帮忙点个采纳!