- Non riempire il metodo
playTurn
con un sacco di codice, ma organizza il tuo codice con metodi e classi. Ad esempio:
class Player {
playTurn(warrior) {
if (this.isInjured(warrior)) {
warrior.rest();
}
}
isInjured(warrior) {
return warrior.health() < 20;
}
}
- Se desideri che una parte di codice venga eseguita all'inizio di ogni livello, definisci un costruttore all'interno della classe
Player
, come nell'esempio seguente:
class Player {
constructor() {
this.health = 20;
}
}
- È possibile richiamare i metodi delle API dello spazio direttamente dopo una percezione. Ad esempio il senso "percepire" nella torre "Baby Steps" restituisce uno spazio. Puoi richiamare
isEmpty()
su questo per determinare se lo spazio è libero prima di andarci:
class Player {
playTurn(warrior) {
if (warrior.feel().isEmpty()) {
warrior.walk();
}
}
}
- Alcune percezioni sensoriali (come "guardare" e "ascoltare" nella torre "Baby Steps"), invece, restituiscono una lista di spazi, quindi potresti trovare molto utili molti dei prototipi dei metodi degli array. Ecco qui un esempio del metodo Array.prototype.find:
class Player {
isEnemyInSight(warrior) {
const spaceWithUnit = warrior.look().find(space => space.isUnit());
return spaceWithUnit && spaceWithUnit.getUnit().isEnemy();
}
}