› Ruby 勉強会 › ruby warrior
ruby warrior
2013年10月30日
今日の成果~w
https://www.bloc.io/ruby-warrior
class Player
def play_turn(warrior)
@dist ||= :backward # initialize
@health ||= 20 # initialize
if warrior.feel(@dist).empty?
if warrior.health < @health && warrior.health <= 10
@tmp = :forward if @dist==:backward
@tmp = :backward if @dist==:forward
warrior.walk! @tmp
elsif warrior.health >= @health and warrior.health <20
warrior.rest!
else
warrior.walk! @dist
end
else
if warrior.feel(@dist).captive?
warrior.rescue! @dist
elsif warrior.feel(@dist).wall?
@dist = :forward
warrior.walk! @dist
else
warrior.attack! @dist
end
end
@health = warrior.health
end
end
追記:
class Player
def play_turn(warrior)
@health ||= 20
@dir ||= :backward
if warrior.feel(@dir).empty?
if warrior.health < @health
if warrior.health < 10
@backdir = :backward if @dir==:forward
@backdir = :forward if @dir==:backward
warrior.walk!(@backdir)
else
warrior.walk!(@dir)
end
elsif warrior.health < 20
warrior.rest!
else
warrior.walk!(@dir)
end
elsif warrior.feel(@dir).captive?
warrior.rescue!(@dir)
elsif warrior.feel(@dir).wall?
@dir = :backward if @dir==:forward
@dir = :forward if @dir==:backward
else
warrior.attack!(@dir)
end
@health = warrior.health
end
end
Posted by kanedayo at 01:47│Comments(1)