0

これが機能しない理由を特定できません。私はそれをirbに投げ込み、正常に動作します..問題が発生した場合はお知らせください

私のコード:

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

    puts @warrior.look

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

配列である puts の出力:

nothing
Captive
Wizard

何らかの理由で撮影が行われません。この if ステートメントは false を返します。ありがとうございます。

4

1 に答える 1

5

@warrior.looksではなく、オブジェクトの配列をSpacestring返します。putsそれらをそれに変換するだけstringで、あなた.include?("Wizard")が働いていないのです。

したがって、またはメソッドを使用するようなオブジェクトで機能する条件が必要になるSpace前に、オブジェクトを文字列に 変換できます。.include?("Wizard")SpaceSpace#enemy?Space#unit

if @warrior.look.any? { |space| space.enemy? }
      @warrior.shoot!
于 2013-08-11T06:42:49.267 に答える