Ruby-warrior

Hoy os traigo la frikada máxima: ruby-warrior!!

La intención de ruby-warrior es aprender ruby y algo de inteligencia artificial. Básicamente se trata de un rogue-like con varios niveles en el que hay que ir programando un algoritmo que controle las acciones posibles del personaje para ir sobreviviendo,  sofisticandolo cada vez más.  Nos dan una clase warrior con varios metodos (attack, walk, rest) y vamos testeando nuestro código contra los niveles. Por ejemplo, para el nivel 2 mi algoritmo sería como sigue después del salto:

class Player
  def play_turn(warrior)
    # add your code here
    warrior.feel.enemy? ? warrior.attack! : warrior.walk!
  end
end

Que básicamente viene a decir que si hay un enemigo al lado le pega, y si no sigue caminando. Y al ejecutar el nivel, pues efectivamente:

Starting Level 2

  • turn 1 –

——–
|@   s  >|
——–
Darum walks forward

  • turn 2 –

——–
| @  s  >|
——–
Darum walks forward

  • turn 3 –

——–
|  @ s  >|
——–
Darum walks forward

  • turn 4 –

——–
|   @s  >|
——–
Darum attacks Sludge
Sludge takes 5 damage, 7 health power left
Sludge attacks Darum
Darum takes 3 damage, 17 health power left

  • turn 5 –

——–
|   @s  >|
——–
Darum attacks Sludge
Sludge takes 5 damage, 2 health power left
Sludge attacks Darum
Darum takes 3 damage, 14 health power left

  • turn 6 –

——–
|   @s  >|
——–
Darum attacks Sludge
Sludge takes 5 damage, -3 health power left
Sludge dies
Darum earns 12 points

  • turn 7 –

——–
|   @   >|
——–
Darum walks forward

  • turn 8 –

——–
|    @  >|
——–
Darum walks forward

  • turn 9 –

——–
|     @ >|
——–
Darum walks forward

  • turn 10 –

——–
|      @>|
——–
Darum walks forward
Success! You have found the stairs.
Level Score: 12
Time Bonus: 10
Clear Bonus: 4
Total Score: 36
Would you like to continue on to the next level? [yn] y
See the ruby-warrior directory for the next level.

xDDDDDDDDDDD En fin, si a alguien le pica el gusanillo (eso sí, despues de examenes), que me avise y le ayudo a empezar 😛

Anuncios