编程Ruby老虎机游戏
我正在尝试用
Ruby创建一个老虎机游戏,这是我已经得到的.它仍然无法运行,并说最后一行有错误,我不知道是什么或如何解决它.
我需要它有一个类似于这样的输出:
我已经在那里设置了奖金,就像你拿到两个,你赢了两次你的赌注,如果你赢了三个,你赢了三次你的赌注. 但我得到错误:33:语法错误,意外的$end,期待kEND现金=现金奖金 我的代码有什么问题,我该如何解决? def multiplier(s1,s2,s3) if s1 == s2 and s2 == s3: multiplier = 3 elsif s1 == s2 or s2 == s3 or s1 == s3: multiplier = 2 else multiplier = 0; return multiplier def main() slotImageList = ['Cherry','Orange','Plum','Bell','Melon','Bar'] cash = gets puts "How much total money would you like to play with today? " +cash while True: puts("Total cash: $",cash) bet = gets puts "How much would you like to bet? " +bet cash = (cash - bet) slotImage1 = slotImageList.sample slotImage2 = slotImageList.sample slotImage3 = slotImageList.sample puts "slotImage1"," - ","slotImage2","slotImage3" winnings = bet * multiplier(slotImage1,slotImage2,slotImage3) puts "You have won $" +winnings cash = cash + winnings cont = gets puts "Would you like to continue? (yes to continue) " +cont if cont != "yes": puts "You have ended with $" +cash else puts " " end 解决方法
当您看到消息时:
你可以将它翻译成“我到达文件结尾(”$end“),但我没想到,因为我还在等待结束语.”这意味着您忘记键入至少一个配对的末尾,并且您需要检查代码并确保它正确缩进,以便您可以直观地匹配语句. 以下是修复代码正确的结果.在某些地方你似乎使用缩进来关闭一个块(比如Python)而不是正确的语法. def multiplier(s1,s3) if s1==s2 && s2==s3 3 elsif s1==s2 || s2==s3 || s1==s3 2 else 0 end end def run_slots! slotImageList = %w[Cherry Orange Plum Bell Melon Bar] print "How much total money would you like to play with today? " cash = gets.chomp.to_i loop do puts "Total cash: $#{cash}" print "How much would you like to bet? " bet = gets.chomp.to_i cash -= bet slotImage1 = slotImageList.sample slotImage2 = slotImageList.sample slotImage3 = slotImageList.sample puts "#{slotImage1} - #{slotImage2} - #{slotImage3}" winnings = bet * multiplier(slotImage1,slotImage3) puts "You have won $#{winnings}" cash += winnings print "Would you like to continue? (yes to continue) " unless gets.chomp=="yes" puts "You have ended with $#{cash}" break end end end run_slots! if __FILE__==$0 如果我对它采取更多的自由,这就是我可以写它的方式: class SlotGame SLOT_COUNT = 3 TOKENS = %w[Cherry Orange Plum Bell Melon Bar] KEEP_PLAYING_RESPONSES = %w[y yes sure ok go] def initialize(cash=nil) unless cash begin print "How much total money would you like to play with today? " cash = gets.to_i puts "You must have a positive bank account to play!" if cash<=0 end until cash > 0 end @cash = cash end def play_forever begin # Using begin/end ensures one turn will be played # before asking the player if they want to go on play_one_turn end while @cash>0 && keep_playing? puts "You have ended with $#{@cash}; goodbye!" end def play_one_turn puts "Total cash: $#{@cash}" begin print "How much would you like to bet? " bet = gets.to_i puts "You only have $#{@cash}!" if bet > @cash end until bet <= @cash @cash -= bet results = SLOT_COUNT.times.map{ TOKENS.sample } puts results.join(' - ') winnings = bet * multiplier(results) if winnings>0 @cash += winnings puts "You just won $#{winnings}!" else puts "Sorry,you're not a winner." end end def keep_playing? print "Would you like to continue? " KEEP_PLAYING_RESPONSES.include?(gets.chomp.downcase) end private # Don't let anyone outside run our magic formula! def multiplier(*tokens) case tokens.flatten.uniq.length when 1 then 3 when 2 then 2 else 0 end end end SlotGame.new.play_forever if __FILE__==$0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |