- 分享
写了一坨
- @ 2026-10-5 13:56:37
写的和一坨一样还发
#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;
}