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

Ruby二十一点游戏输入stick无输出问题求助

Ruby二十一点游戏"stick"无输出问题修复

你的代码核心问题是调用run_game方法时没有打印它的返回值。当输入"stick"时,run_game确实生成了结算字符串,但这个字符串只是作为方法返回值存在,没有被输出到控制台,所以程序看起来直接终止了。

修复步骤

在代码的最后添加一行,打印run_game的返回结果:

puts run_game

这样当你输入"stick"时,方法返回的结算信息就会被输出到控制台。

额外优化建议

你的score方法用嵌套循环查找牌面分值,效率较低,可以改成直接映射的方式,代码更简洁高效:

def score(cards)
  card_values = {
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
    "six" => 6,
    "seven" => 7,
    "eight" => 8,
    "nine" => 9,
    "ten" => 10,
    "jack" => 10,
    "queen" => 10,
    "king" => 10,
    "ace" => 11
  }
  cards.sum { |card| card_values[card] }
end

另外提一句:标准二十一点里A可以根据情况算1或11,当前代码只固定算11,如果要完善规则,后续可以添加处理A分值的逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:01:15