写的和一坨一样还发

#include <bits/stdc++.h>
#include <unistd.h> 
#include <cstdlib> 
using namespace std;
string s[4]={" ","剪刀","石头","布"};
bool killed(int kill){
	cin >> kill;
	if(kill<0||kill>1){
		cout << "输入给我输入好的啊,0或1\n";
		while(cin >> kill){
			if(kill>1||kill<0){
				cout << "输入给我输入好的啊,0或1\n";
			}else{	
				break;
			}
		}
	}
	if(kill==0){
		return 1;
	}else if(kill==1){
		return 0;
	}
}
int main(){
	srand(time(0));
	while(1){
		system("cls");
		cout << "石头剪刀布:\n";
		cout << "石头>剪刀;剪刀>布;布>石头\n";
		cout << "请选择是人机对战还是真人对战:\n";
		cout << "1为人机对战 2为真人对战\n";
		int mod;
		cin >> mod;
		if(mod<0||mod>2){
			cout << "输入给我输入好的啊,0或1或2\n";
			while(cin >> mod){
				if(mod>2||mod<0){
					cout << "输入给我输入好的啊,0或1或2\n";
				}else{	
					break;
				}
			}
		}
		if(mod==1){
			string username;
			cout << "人机局\n";
			cout << "请输入名字:\n";
			cin >> username; 
			int user,wingame=0,losegame=0,okgame=0,sumgame=0;
			while(1){
				int robot=rand()%3+1;
				int kill; 
				cout << "请输入您想要出的动作:1.剪刀 2.石头 3.布\n0为结束游戏(输入数字)";
				cin >> user;
				if(user==0){
					break;
				}
				if(user>3||user<0){
					cout << "输入给我输入好的啊,1或2或3\n";
					while(cin >> user){
						if(user>3||user<0){
							cout << "输入给我输入好的啊,1或2或3\n";
						}else{
							break;
						} 
					}
				}
				if(user==robot){
					cout << "您出的" << s[user] << " 人机出的" << s[robot] << '\n';		
					cout << "平局\n输入1继续 0结束\n";
					okgame++;
					if(killed(kill))break;
				}else if((robot-1)==user){
					cout << "您出的" << s[user] << " 人机出的" << s[robot] << '\n';
					cout << "失败\n输入1继续 0结束\n";
					losegame++;
					if(killed(kill))break;
				}else if((user-1)==robot){
					cout << "您出的" << s[user] << " 人机出的" << s[robot] << '\n';
					cout << "胜利\n输入1继续 0结束\n";
					wingame++;
					if(killed(kill))break;
				}else if(user==3&&robot==1){
					cout << "您出的" << s[user] << " 人机出的" << s[robot] << '\n';
					cout << "失败\n输入1继续 0结束\n";
					losegame++;
					if(killed(kill))break;
				}else if(user==1&&robot==3){
					cout << "您出的" << s[user] << " 人机出的" << s[robot] << '\n';
					cout << "胜利\n输入1继续 0结束\n";
					wingame++;
					if(killed(kill))break;
				}
			}
			sumgame=wingame+losegame+okgame;
			cout << "您的战绩:\n";
			cout << "赢局:" << wingame << '\n'; 
			cout << "输局:" << losegame << '\n'; 
			cout << "平局:" << okgame << '\n'; 
			cout << "总场次:" << sumgame << '\n'; 
			cout << "是否再来一局?\n0结束,1继续";
			int kill;
			if(killed(kill))break;
		
	}else if(mod==2){
		cout << "真人局\n";
			int user1,user2;
			string username1,username2;
			int wingame=0,losegame=0,okgame=0,sumgame=0;
			cout << "请输入名字\n";
			cout << "玩家1:";
			cin >> username1;
			cout << '\n';
			cout << "玩家2:";
			cin >> username2;
			while(1){
				int kill; 
				cout << "请输入" << username1 << "想要出的动作:1.剪刀 2.石头 3.布\n0为结束游戏(输入数字)";
				cin >> user1;
				if(user1==0){
					break;
				}
				if(user1>3||user1<0){
					cout << "输入给我输入好的啊,1或2或3\n";
					while(cin >> user1){
						if(user1>3||user1<0){
							cout << "输入给我输入好的啊,1或2或3\n";
						}else{
							break;
						} 
					}
				}
				system("cls");
				cout << "请输入" << username2 << "想要出的动作:1.剪刀 2.石头 3.布\n0为结束游戏(输入数字)";
				cin >> user2;
				if(user2==0){
					break;
				}
				if(user2>3||user2<0){
					cout << "输入给我输入好的啊,1或2或3\n";
					while(cin >> user2){
						if(user2>3||user2<0){
							cout << "输入给我输入好的啊,1或2或3\n";
						}else{
							break;
						} 
					}
				}
				if(user1==user2){
					cout << username1 << "出的" << s[user1] << username2 << " 出的" << s[user2] << '\n';		
					cout << "平局\n输入1继续 0结束\n";
					okgame++;
					if(killed(kill))break;
				}else if((user1-1)==user2){
					cout << username1 << "出的" << s[user1] << username2 << " 出的" << s[user2] << '\n';
					cout << username2 << "失败,"<< username1 << "胜利\n输入1继续 0结束\n";
					losegame++;
					cin >> kill;
					if(killed(kill))break;
				}else if((user2-1)==user1){
					cout << username1 << "出的" << s[user1] << username2 << " 出的" << s[user2] << '\n';
					cout << username1 << "失败,"<< username2 << "胜利\n输入1继续 0结束\n";
					wingame++;
					if(killed(kill))break;
				}else if(user2==3&&user1==1){
					cout << username1 << "出的" << s[user1] << username2 << " 出的" << s[user2] << '\n';
					cout << username2 << "失败,"<< username1 << "胜利\n输入1继续 0结束\n";
					losegame++;
					if(killed(kill))break;
				}else if(user2==1&&user1==3){
					cout << username1 << "出的" << s[user1] << username2 << " 出的" << s[user2] << '\n';
					cout << username1 << "失败,"<< username2 << "胜利\n输入1继续 0结束\n";
					wingame++;
					if(killed(kill))break;
				}
			}
			sumgame=wingame+losegame+okgame;
			cout << username1 << "的战绩:\n";
			cout << "赢局:" << losegame << '\n'; 
			cout << "输局:" << wingame << '\n'; 
			cout << "平局:" << okgame << '\n'; 
			cout << "总场次:" << sumgame << '\n'; 
			cout << username2 <<"的战绩:\n";
			cout << "赢局:" << wingame << '\n'; 
			cout << "输局:" << losegame << '\n'; 
			cout << "平局:" << okgame << '\n'; 
			cout << "总场次:" << sumgame << '\n'; 
			cout << "是否再来一局?\n0结束,1继续";
			int kill;
			if(killed(kill))break;
		}
	}
	return 0;
}

1 条评论

  • 1