Ruby Warrior
>|ruby|
class Player
def play_turn(warrior)
@walk_flag = warrior.feel.empty?
@health = warrior.health
@captive_flag =warrior.feel.captive?
@Bcaptive_flag = warrior.feel(:backward).captive?
@back_flag = warrior.feel(:backward).empty?
@wall_flag = warrior.feel.wall?
@enemy_flag = warrior.feel.enemy?
@look = warrior.look
@lookback = warrior.look:backward
#back_flag
if @back_flag == true
if @walltouch_flag == false
@back_flag =false
elsif @Brescued_flag == true
@back_flag = false
else
@walk_flag =false
end
end
#shootback_flag
@lookback.each {|space|
if space.enemy?
@shootback_flag = true
else
@shootback_flag = false
end
}
#shoot_flag
@look.each {|space|
if space.enemy?
@shoot_flag = true
else
@shoot_flag = false
end
}
#lookcaptive_flag
@look.each {|space|
if space.captive?
@shoot_flag = false
end
}
#attack_flag
if @enemy_flag == true
@back_flag = false
end
#restflag
if @walk_flag == true
if @health < 20
@rest_flag = true
@walk_flag = false
else
@rest_flag = false
end
end
#ashe_flag
if @rest_flag == true
if @health < @resthealth
@rest_flag =false
@walk_flag = true
end
end
#rescue_flag
if @walk_flag == false
if @captive_flag == true
@rescue_flag = true
else
@rescue_flag = false
end
end
#Brescue_flag
if @back_flag == false
if @Bcaptive_flag == true
@Brescue_flag = true
@walk_flag = false
else
@Brescue_flag = false
end
end
if @shootback_flag == true
warrior.shoot!:backward
elsif @shoot_flag == true
warrior.shoot!
elsif @walk_flag == true
warrior.walk!
elsif @wall_flag == true
warrior.pivot!
elsif @rescue_flag == true
warrior.rescue!
elsif @Brescue_flag == true
warrior.rescue!:backward
@Brescued_flag = true
elsif @back_flag == true
warrior.walk!:backward
@walltouch_flag = warrior.feel(:backward).wall?
elsif @rest_flag == true
warrior.rest!
else
warrior.attack!
end
@resthealth = warrior.health
end
end
||<