这是一个课堂作业。我们创建了一个石头剪刀布Spock Lizard(RPSSL)游戏。用户与计算机。第一个赢得5倍大奖的人是grand_winner。
我在执行代码时遇到麻烦,询问用户是否想再次播放,否则,请退出该程序。当它只是一个游戏时,这很容易实现。
提示或技巧要比确定的答案更有价值。
我尝试定义一个方法,将代码置于条件中以检查是否有grand_winner,但是我确实遇到了麻烦。我知道我可能需要回去或者只是慢下来,因为答案就在那里。
这是github的链接:
https://github.com/emilianolowe/RB101_lesson_two/blob/master/rpssl.rb
我希望程序会询问用户是否要玩另一轮游戏。如果用户不想再玩一轮,请退出程序。
答案 0 :(得分:0)
loop do
loop do
# do stuff here
break if grand_winner
end
print "continue? "
break if gets.strip.downcase == 'no'
end
(请注意,我只是将puts
链接到我的条件中,因为它总是返回nil,所以or
的右侧将被评估)
答案 1 :(得分:0)
您可以基于grand_winner函数返回的内容创建if语句。我对其进行了一些修改,因此它只会返回true或false。
def grand_winner
if WINS[:user] == 5
prompt(MESSAGES['user_grand_winner'])
return true #returns true if user is grand winner
elsif WINS[:computer] == 5
prompt(MESSAGES['computer_grand_winner'])
return false #returns false if COM is grand winner
end
end
现在您可以执行以下操作:
if grand_winner == true #so if the grand winner was the player
prompt("Would you like to play again? (Y/N)")
play_again = gets().chomp
break unless play_again.downcase.start_with?('y')
else
#whatever happens if they were not the grand winner
end