//石头剪刀布 #include <iostream> #include <cstdlib> #include <ctime> #include <string> using namespace std; string getChoiceName(int choice) { switch(choice) { case 1: return "石头"; case 2: return "剪刀"; case 3: return "布"; default: return ""; } } int getComputerChoice() { srand(time(0)); return rand() % 3 + 1; } int determineWinner(int p1, int p2) { if (p1 == p2) return 0; if ((p1 == 1 && p2 == 2) || (p1 == 2 && p2 == 3) || (p1 == 3 && p2 == 1)) { return 1; } return 2; } int main() { int gameMode; int player1Choice, player2Choice; int p1Score = 0, p2Score = 0; char playAgain; cout << "===== 石头剪刀布游戏 =====\n"; cout << "请选择游戏模式:\n"; cout << "1. 双人对战\n"; cout << "2. 人机对战\n"; cout << "输入选择(1/2):"; cin >> gameMode; while (gameMode != 1 && gameMode != 2) { cout << "无效选择,请重新输入(1/2):"; cin >> gameMode; } do { cout << "\n===== 新一局 =====\n"; cout << "选择规则:1=石头,2=剪刀,3=布\n"; cout << "玩家1,请输入你的选择(1-3):"; cin >> player1Choice; while (player1Choice < 1 || player1Choice > 3) { cout << "无效选择,请输入1-3之间的数字:"; cin >> player1Choice; } if (gameMode == 1) { cout << "玩家2,请输入你的选择(1-3):"; cin >> player2Choice; while (player2Choice < 1 || player2Choice > 3) { cout << "无效选择,请输入1-3之间的数字:"; cin >> player2Choice; } cout << "玩家2选择了:" << getChoiceName(player2Choice) << "\n"; } else { player2Choice = getComputerChoice(); cout << "电脑选择了:" << getChoiceName(player2Choice) << "\n"; } cout << "玩家1选择了:" << getChoiceName(player1Choice) << "\n"; int result = determineWinner(player1Choice, player2Choice); if (result == 0) { cout << "本局平局!\n"; } else if (result == 1) { cout << "玩家1获胜!\n"; p1Score++; } else { if (gameMode == 1) { cout << "玩家2获胜!\n"; } else { cout << "电脑获胜!\n"; } p2Score++; } cout << "\n当前比分:\n"; cout << "玩家1:" << p1Score << " 分\n"; if (gameMode == 1) { cout << "玩家2:" << p2Score << " 分\n"; } else { cout << "电脑:" << p2Score << " 分\n"; } cout << "\n是否继续游戏?(y/n):"; cin >> playAgain; while (playAgain != 'y' && playAgain != 'Y' && playAgain != 'n' && playAgain != 'N') { cout << "无效输入,请输入y/n:"; cin >> playAgain; } } while (playAgain == 'y' || playAgain == 'Y'); cout << "\n===== 游戏结束 =====\n"; cout << "最终比分:\n"; cout << "玩家1:" << p1Score << " 分\n"; if (gameMode == 1) { cout << "玩家2:" << p2Score << " 分\n"; } else { cout << "电脑:" << p2Score << " 分\n"; } if (p1Score > p2Score) { cout << "恭喜玩家1获得最终胜利!\n"; } else if (p2Score > p1Score) { if (gameMode == 1) { cout << "恭喜玩家2获得最终胜利!\n"; } else { cout << "电脑获得最终胜利!\n"; } } else { cout << "最终平局!\n"; } return 0; }
Note.ms
/dzwa