参数数错误(1 表示 0) 没有任何意义的红宝石战士中间错误



我正在中级上执行ruby战士的第二级,每次运行时我都会收到这个错误,尽管我似乎不应该这样做。我对ruby很陌生,所以如果有人能告诉我为什么会发生这种情况,我会很感激,尽管我正在经过战士的视线,并且视线有一个插槽用于的变量

这是错误:

 wrong number of arguments (1 for 0)
    Player.rb:24:in `glance'
    Player.rb:6:in `play_turn' 

这是我的代码:

class Player
  def play_turn(warrior)
    @warrior = warrior
    glance(warrior)
    actions
  end
  def actions
    @warrior = warrior
    glance(warrior)
    if rightempty
      warrior.walk!(:right)
    elsif forwardenemy && rightempty == false
      warrior.fight!
    else
      warrior.walk!(warrior.direction_of_stairs)
    end
  end
  def glance(warrior)
    @wariror = warrior 
    forwardempty = warrior.feel.empty?(:forward) 
    leftempty = warrior.feel.empty?(:left) 
    rightempty = warrior.feel.empty?(:right) 
    backwardempty = warrior.feel.empty?(:backward)
    forwardenemy = warrior.feel.enemy?(:forward) 
    leftenemy = warrior.feel.enemy?(:left) 
    rightenemy = warrior.feel.enemy?(:right)
    backwardenemy = warrior.feel.enemy?(:backward)
    forwardcaptive = warrior.feel.captive?(:forward)
    leftcaptive = warrior.feel.captive?(:left)
    rightcaptive = warrior.feel.captive?(:right)
    backwardenemy = warrior.feel.captive?(:backward)
  end
end

问题不在于传递给glance的参数数量,而在于该方法中发生的事情。

您用一个参数调用empty?,例如:forward,但它不需要任何参数-因此出现错误"1 for 0"

相关内容

最新更新