从ruby中的另一个文件调用一个方法

时间:2016-06-15 09:58:35

标签: ruby

您好我是编程新手,我从ruby开始。我正在尝试做我的第一个程序。我在网上找到了生成掷骰子的代码

class Die
  def initialize(sides)
    @sides = sides
  end

  def generate_die_roll
    rand(@sides) + 1
  end

  def roll(number=1)
    roll_array = []
    number.times do
      roll_array << generate_die_roll
    end
    total = 0
    roll_array.each do |roll|
      new_total = total + roll
      total = new_total
    end
   total
  end
end

我希望以他们的方式使用,如果生成的数字低于等于另一个打印的东西,否则别的东西。 这可能很容易,但我正在尝试各种方式,现在我需要一些帮助。 这是我的代码:

require "./newdado.rb"
energia_vitale = 30
puts "Lancia un dado scrivendo (D) da sommare alla tua Energia Vitale iniziale di #{energia_vitale} punti"
scelta = gets.chomp

case scelta
when "D"

SIX_SIDED_DIE = "#{Die.new(6)}"
  values = Array[]
values.push(SIX_SIDED_DIE.roll)
  puts values
if values < 2
  puts "c"
else puts "b"
end
end

当我运行它时,我收到此错误 C:/ Users / fix / workspace / D&amp; D Ruby / energia vitale.rb:11:in <main>': undefined method roll'for“#”:String(NoMethodError)

很抱歉这个初学者问题打扰了社区

1 个答案:

答案 0 :(得分:0)

为什么是字符串?

这一行

SIX_SIDED_DIE = "#{Die.new(6)}"`

应该是

die = Die.new(6)

然后你可以die.roll