加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

编程Ruby老虎机游戏

发布时间:2020-12-17 02:17:45 所属栏目:百科 来源:网络整理
导读:我正在尝试用 Ruby创建一个老虎机游戏,这是我已经得到的.它仍然无法运行,并说最后一行有错误,我不知道是什么或如何解决它. 我需要它有一个类似于这样的输出: How much total money would you like to play with today? 25 Total cash: $25 How much would y
我正在尝试用 Ruby创建一个老虎机游戏,这是我已经得到的.它仍然无法运行,并说最后一行有错误,我不知道是什么或如何解决它.

我需要它有一个类似于这样的输出:

How much total money would you like to play with today? 25
Total cash: $25
How much would you like to bet? 10
Cherry – Orange – Orange
You have won $20
Would you like to continue? (yes to continue) yes
Total cash: $35
How much would you like to bet?
etc…

我已经在那里设置了奖金,就像你拿到两个,你赢了两次你的赌注,如果你赢了三个,你赢了三次你的赌注.

但我得到错误: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

解决方法

当您看到消息时:

unexpected $end,expecting kEND

你可以将它翻译成“我到达文件结尾(”$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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读