#include<bits/stdc++.h>
#define random(a,b) (rand()%(b-a)+a)
using namespace std;
int main()
{
int a,b=0,ni,ying=0,shu=0;
int c=0;
cout<<"此游戏声明,系统出什么是随机的,在你输入前就已确定好本次出什么,游戏公平公正,请玩家放心使用。"<<endl;
cout<<"当然,作者的技术尚未成熟,程序在运行时如果有差错(很少),请诸位玩家见谅!"<<endl;
cout<<"1.石头 2.剪刀 3.布 4.结束游戏"<<endl<<"请输入编号"<<endl;
for(int i=0;i<100;i++)
{
a=random(0,4);
cin>>ni;
if(ni==4)
{
cout<<"游戏结束";
return 0;
}
if(ni!=1&&ni!=2&&ni!=3)
{
cout<<"1.石头 2.剪刀 3.布"<<endl<<"请输入编号"<<endl;
cin>>ni;
if(ni!=1&&ni!=2&&ni!=3)
{
for(;ni!=1||ni!=2||ni!=3;)
{
cout<<"1.石头 2.剪刀 3.布"<<endl<<"请输入编号"<<endl;
cin>>ni;
if(ni==4)
{
cout<<"游戏结束";
return 0;
}
if(ni==a)
{
cout<<"平局"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=3;
}
if(ni==1)
{
if(a==3)
{
shu++;
cout<<"你输了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=0;
}
if(a==2)
{
ying++;
cout<<"你赢了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=1;
}
}
if(ni==2)
{
if(a==1)
{
shu++;
cout<<"你输了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=0;
}
if(a==3)
{
ying++;
cout<<"你赢了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=1;
}
}
if(ni==3)
{
if(a==1)
{
ying++;
cout<<"你赢了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=1;
}
if(a==2)
{
shu++;
cout<<"你输了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=0;
}
}
}
}
}
if(0<a&&a<4)
{
cout<<a<<" "<<endl;
b++;
if(ni==a)
{
cout<<"平局"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=3;
}
if(ni==1)
{
if(a==3)
{
shu++;
cout<<"你输了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=0;
}
if(a==2)
{
ying++;
cout<<"你赢了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=1;
}
}
if(ni==2)
{
if(a==1)
{
shu++;
cout<<"你输了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=0;
}
if(a==3)
{
ying++;
cout<<"你赢了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=1;
}
}
if(ni==3)
{
if(a==1)
{
ying++;
cout<<"你赢了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=1;
}
if(a==2)
{
shu++;
cout<<"你输了"<<" "<<"赢:"<<ying<<"输:"<<shu<<endl;
c=0;
}
}
}
}
return 0;
}
这个程序我自己运行后发现只有前三次输入是正常的,从第四次开始就需要重复输入两遍才行,不知道为什么会这样。希望路过的大佬们能够前来赐教,对代码进行改进纠正,谢谢!~