You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用bool或if语句终止21根火柴游戏程序(不使用exit()等)

21根火柴双人游戏代码修复

游戏规则

  • 初始21根火柴,双人轮流取火柴
  • 每次只能取1-3根,取0或超过3根判定作弊,直接落败
  • 当剩余火柴≤1时,当前操作的玩家落败

原代码问题

  1. 变量名不一致:出现Lucifers(应为Matches)
  2. 作弊或胜负判定后,未终止后续流程,循环仍会继续执行
  3. 胜负提示文本存在语言混合(荷兰语+英语)

修复后代码

#include <iostream>
using namespace std;

int main() {
    int Matches = 21;
    int Matches1, Matches2;
    bool gameRunning = true; // 控制游戏运行的标志

    while (Matches > 1 && gameRunning) {
        // 玩家1回合
        if (gameRunning) {
            cout << "玩家1选择取1-3根火柴。" << endl;
            cout << "输入取的火柴数量(1-3):";
            cin >> Matches1;

            if (Matches1 < 1 || Matches1 > 3) {
                cout << "玩家1作弊!玩家2获胜。" << endl;
                gameRunning = false;
            } else {
                Matches -= Matches1;
                cout << endl << "剩余火柴:" << Matches << "根。" << endl << endl;

                if (Matches <= 1) {
                    cout << "玩家1落败!" << endl;
                    gameRunning = false;
                }
            }
        }

        // 玩家2回合
        if (gameRunning) {
            cout << "玩家2选择取1-3根火柴。" << endl;
            cout << "输入取的火柴数量(1-3):";
            cin >> Matches2;

            if (Matches2 < 1 || Matches2 > 3) {
                cout << "玩家2作弊!玩家1获胜。" << endl;
                gameRunning = false;
            } else {
                Matches -= Matches2;
                cout << endl << "剩余火柴:" << Matches << "根。" << endl << endl;

                if (Matches <= 1) {
                    cout << "玩家2落败!" << endl;
                    gameRunning = false;
                }
            }
        }
    }
    return 0;
}

修复说明

  • 新增gameRunning布尔变量,作为循环的额外判定条件,当作弊或胜负产生时将其设为false,循环会在下一次判断时终止
  • 每个回合开始前检查gameRunning状态,避免游戏结束后仍执行后续输入逻辑
  • 统一提示文本为中文,修正变量名错误
  • 调整逻辑顺序:先判断作弊,再处理火柴数量减少和胜负判定,确保流程正确

内容的提问来源于stack exchange,提问作者Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:43:35