Ruby Warrior等级8 - 我的解决方案不起作用?

时间:2013-08-11 06:18:11

标签: ruby

我无法确定为什么这不起作用。我把它扔进了irb,它运行正常..如果你看到问题,请告诉我

我的代码:

class Player
  def play_turn(warrior)
    @warrior = warrior
    @turn ||= 0

    puts @warrior.look

    if @warrior.look.include?("Wizard")
      @warrior.shoot!

输出数组是:

nothing
Captive
Wizard

由于某种原因它不会拍摄,这个if语句返回false ..谢谢!

1 个答案:

答案 0 :(得分:5)

@warrior.look会返回 Space个对象的数组,而不是string s 。只有puts会将其转换为string,这就是您.include?("Wizard")无效的原因。

因此,您可以在Space之前将.include?("Wizard")个对象转换为字符串,或者您需要一个适用于Space对象的条件,例如使用Space#enemy?或{{1}方法:

Space#unit