- No llenes simplemente el método
playTurn
con un montón de código, organiza tu código con clases y métodos. Por ejemplo:
class Player {
playTurn(warrior) {
if (this.isInjured(warrior)) {
warrior.rest();
}
}
isInjured(warrior) {
return warrior.health() < 20;
}
}
- Si quieres que cierto código se ejecute al principio de cada nivel, define un constructor en la clase
Player
, como sigue:
class Player {
constructor() {
this.health = 20;
}
}
- Puedes llamar métodos de la API del Espacio directamente tras un sentido. Por ejemplo, el sentido "feel" en la torre "Baby Steps" devuelve un espacio. Puedes llamar
isEmpty()
sobre él para determinar si el espacio esta despejado antes de caminar allí:
class Player {
playTurn(warrior) {
if (warrior.feel().isEmpty()) {
warrior.walk();
}
}
}
- Algunos sentidos (como "look" y "listen" en la torre "Baby Steps") devuelven una lista de espacios, por lo que puedes encontrar muchos de los métodos de Array realmente útiles. Aquí hay un ejemplo del método Array.prototype.find:
class Player {
isEnemyInSight(warrior) {
const spaceWithUnit = warrior.look().find(space => space.isUnit());
return spaceWithUnit && spaceWithUnit.getUnit().isEnemy();
}
}