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

Blackjack(二十一点)作业如何实现用户可多次选择是否要牌的循环逻辑

二十一点(Blackjack)要牌循环逻辑实现方案

核心修改要点

  • 新增while循环控制要牌流程,支持用户任意次数选择要牌,触发终止条件(用户选N/总点数≥21)时自动退出循环
  • 修正原代码的牌值生成逻辑:玩家单次要牌仅生成1张1~11点的牌,原首次要牌生成2张牌的逻辑不符合规则
  • 补充用户输入转布尔值的逻辑,正确匹配Y/N输入的判断,同时兼容大小写输入
  • 新增爆牌提前终止逻辑,玩家总点数超过21时直接结束要牌流程,无需额外询问

完整可运行代码

let card = 0;
let total = 0;
let hitMe = true;
let dealer = 0;

// 玩家要牌循环逻辑
while (hitMe && total < 21) {
    // 弹出询问框获取用户输入
    let userInput = prompt(`当前总点数:${total},是否要牌?Y/N`, "Y");
    // 转换用户输入为布尔值,忽略大小写
    hitMe = userInput.toUpperCase() === "Y";
    if (hitMe) {
        // 生成1张1~11点的随机牌
        card = Math.ceil(11 * Math.random());
        total += card;
    }
}

// 庄家固定发2张牌
dealer = Math.ceil(11 * Math.random()) + Math.ceil(11 * Math.random());
// 输出最终结果
alert(`你的总点数是${total},庄家总点数是${dealer}。`);

循环逻辑说明

  1. 循环启动前置校验:只有当前玩家总点数小于21,且上一轮用户选择了要牌,才会发起新一轮要牌询问
  2. 输入容错处理:用户输入y/Y都会判定为要牌,输入其他内容统一判定为停止要牌
  3. 爆牌自动终止:玩家要牌后总点数≥21时,会直接跳出循环进入最终结算环节

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:27:01