Ruby Warrior
ruby
et effacez le niveauRogue
et est écrit par ryanb
. Publié il y a environ 10 ans
--Il semble que Bloc a créé le [jeu Web] original (https://www.bloc.io/ruby-warrior#/). ** Bon travail! **def play_turn (warrior) ... end
du code est d'un tour, et écrivez le code iciwarrior.action!
Qu'une fois par tour (vous ne pouvez pas traiter les boucles dans le tour) [^ 1]
--Skill warrior.action!
Augmente à mesure que le niveau progresse
--Il y a le mode débutant et le mode intermédiaire (je l'ai essayé en mode débutant cette fois)[^ 1]: ʻUne seule action peut être effectuée par tour .`
Level 1
You see before yourself a long hallway with stairs at the end. There is nothing in the way.
class Player
def play_turn(warrior)
# cool code goes here
warrior.walk!
end
end
Level 2
It is too dark to see anything, but you smell sludge nearby.
class Player
def play_turn(warrior)
if warrior.feel.empty?
warrior.walk!
else
warrior.attack!
end
end
end
warrior.attack!
Level 3
The air feels thicker than before. There must be a horde of sludge.
class Player
def play_turn(warrior)
if warrior.feel.empty?
if warrior.health < 15
warrior.rest!
else
warrior.walk!
end
else
warrior.attack!
end
end
end
Level 4
You can hear bow strings being stretched.
class Player
def play_turn(warrior)
@health = warrior.health unless @health
if warrior.feel.empty?
if @health <= warrior.health && warrior.health < 12
warrior.rest!
else
warrior.walk!
end
else
warrior.attack!
end
@health = warrior.health
end
end
--Obtenir warrior.health
Level 5
You hear cries for help. Captives must need rescuing.
class Player
def play_turn(warrior)
@health = warrior.health unless @health
if warrior.feel.captive?
warrior.rescue!
elsif warrior.feel.empty?
if @health <= warrior.health && warrior.health < 13
warrior.rest!
else
warrior.walk!
end
else
warrior.attack!
end
@health = warrior.health
end
end
Level 6
The wall behind you feels a bit further away in this room. And you hear more cries for help.
class Player
def initialize()
@captive = true
end
def play_turn(warrior)
@health = warrior.health unless @health
if @captive
if warrior.feel(:backward).captive?
warrior.rescue!(:backward)
@captive = false
else
warrior.walk!(:backward)
end
else
if warrior.feel.empty?
if @health > warrior.health && warrior.health < 10
warrior.walk!(:backward)
elsif @health <= warrior.health && warrior.health < 20
warrior.rest!
else
warrior.walk!
end
else
warrior.attack!
end
@health = warrior.health
end
end
end
J'ai essayé de changer le processus en signalant s'il y avait captive
et cela ne fonctionnait pas, mais finalement je l'ai écrit dans ʻinitialize ()` et cela a fonctionné.
Level 7
You feel a wall right in front of you and an opening behind you.
class Player
def play_turn(warrior)
@health = warrior.health unless @health
if warrior.feel.wall?
warrior.pivot!
else
if warrior.feel.empty?
if @health > warrior.health && warrior.health < 10
warrior.walk!(:backward)
elsif @health <= warrior.health && warrior.health < 20
warrior.rest!
else
warrior.walk!
end
else
warrior.attack!
end
end
@health = warrior.health
end
end
warrior.pivot!
Level 8
You hear the mumbling of wizards. Beware of their deadly wands! Good thing you found a bow.
class Player
def initialize()
@captive = true
end
def play_turn(warrior)
@health = warrior.health unless @health
if @captive
if warrior.feel.captive?
warrior.rescue!
@captive = false
else
warrior.walk!
end
else
if warrior.look.any?{|s| s.enemy?}
warrior.shoot!
else
warrior.walk!
end
end
end
end
warrior.look
et warrior.shoot!
――La chose semblable à un sorcier coupe la vie d'environ 11
avec un seul coup de loin, vous mourrez donc si vous frappez deux coups ... Mais la portée est étonnamment courte
«Je pense que c'était rafraîchissant grâce à« any? »Level 9
Time to hone your skills and apply all of the abilities that you have learned.
class Player
def initialize()
@left_captive = true
end
def play_turn(warrior)
if @left_captive
if warrior.look(:backward).any?{|s| s.enemy?}
warrior.shoot!(:backward)
elsif warrior.feel(:backward).captive?
warrior.rescue!(:backward)
@left_captive = false
else
warrior.walk!(:backward)
end
else
if warrior.look.any?{|s| s.enemy?}
warrior.shoot!
elsif warrior.feel.captive?
warrior.rescue!
elsif warrior.feel.wall?
warrior.pivot!
else
warrior.walk!
end
end
end
end
――Comment gagner en ne comptant que sur l'arc! Un tireur qui tire une flèche vers l'arrière et jamais "warrior.rest!". Je n'utilise pas ce que j'ai appris. Est-ce que ça va?
Veuillez me faire savoir si vous avez un meilleur code!