理解C++程序的控制结构; 熟练使用条件判断; 熟练使用各种循环结构;

1.现有两人玩猜拳游戏,每人可用拳头表示3种物体(石头、剪刀、布)中的一种,两人同时出拳,游戏胜负规则如下:
(1)石头vs剪刀:石头胜利。
(2)剪刀vs布:剪刀胜利。
(3)布vs石头:石头胜利。

  1. 如果游戏规定比赛连续进行3次,赢2次及以上者获胜,如何改写程序?
#include <iostream>
#include <ctime> // 用于生成随机数
using namespace std;

int main() {
    int win_count[2] = {0, 0}; // 记录两个玩家的胜利次数

    // 进行3局比赛
    for (int i = 0; i < 3; i++) {
        cout << "第" << i + 1 << "局比赛:" << endl;
        // 每个玩家出拳一次
        for (int j = 0; j < 2; j++) {
            int choice;
            do {
                cout << "请玩家" << j + 1 << "输入拳头(1表示石头,2表示剪刀,3表示布):";
                cin >> choice;
            } while (choice < 1 || choice > 3); // 输入错误处理
            cout << "玩家" << j + 1 << "出了";
            switch (choice) {
                case 1:
                    cout << "石头" << endl;
                    break;
                case 2:
                    cout << "剪刀" << endl;
                    break;
                case 3:
                    cout << "布" << endl;
                    break;
            }
            // 记录玩家出拳情况
            if (j == 0) {
                choice_num[i] = choice;
            } else {
                choice_num[i + 3] = choice;
            }
        }
        // 判断本局胜负
        if ((choice_num[i] == 1 && choice_num[i + 3] == 2) ||
            (choice_num[i] == 2 && choice_num[i + 3] == 3) ||
            (choice_num[i] == 3 && choice_num[i + 3] == 1)) {
            cout << "玩家1获胜" << endl;
            win_count[0]++;
        } else if ((choice_num[i + 3] == 1 && choice_num[i] == 2) ||
                   (choice_num[i + 3] == 2 && choice_num[i] == 3) ||
                   (choice_num[i + 3] == 3 && choice_num[i] == 1)) {
            cout << "玩家2获胜" << endl;
            win_count[1]++;
        } else {
            cout << "本局平局" << endl;
        }
    }

    // 判断比赛结果
    if (win_count[0] > win_count[1]) {
        cout << "玩家1获得最终胜利" << endl;
    } else if (win_count[0] < win_count[1]) {
        cout << "玩家2获得最终胜利" << endl;
    } else {
        cout << "比赛结束,双方打平" << endl;
    }

    return 0;
}