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
相关产品推荐
相关产品推荐

