- Hello Explorer
- Walls
- Walls 2
- The Maze
-
Enemies - 16 Enemies
- Archers!
-
Seek out the Enemy - Attack and Retreat
Explorer API
Note: walk
, getSpace
, look
and poke
can each take in a direction parameter:
- Direction.RIGHT
- Direction.LEFT
- Direction.DOWN
- Direction.UP
If no Direction is passed in, they will default to Direction.RIGHT.
Mutators / ActionsExplorer can do one action per turn.
walk()
- Moves the explorer forward (to the right) one Space.poke()
- Pokes the next space, causing damage to any Enemy there.recharge()
- Adds 9 to health.
Accessors:
look()
- Returns an Array of 3 Spaces in the designated Direction.getSpace()
- Returns the next Space on the board.getHealth()
- returns the value ofhealth
.
Space methods
isEnemy()
- returns true if the Space contains an Enemy, and false otherwise.isKnight()
- returns true if the Space contains a Knight, and false otherwise.isArcher()
- returns true if the Space contains an Archer, and false otherwise.isWall()
- returns true if the Space contains a Wall, and false otherwise.
Archers!
Watch out for Archers, who can shoot from far...
You can check if a Space contains an Archer with Space's isArcher
method.
Archers will attack the explorer
3 squares away in any direction.
Range of attack of single archer (marked with x
):
▥▥▥▥▥▥▥▥▥▥ ▥♖...x...▥ ▥....x...▥ ▥....x...▥ ▥.xxx↢xxx▥ ▥....x...▥ ▥....x...▥ ▥....x...▥ ▥.......☆▥ ▥▥▥▥▥▥▥▥▥▥
You can store an instance variable for health to see if your current health value (from getHealth()
) is less than before. Don't recharge while being attacked, since you'll just die slowly!
Don't take more than 75 moves to reach the goal.
As your code gets more complicated, it will help to create additional methods instead of keeping everything in nested if-then blocks.
Challenge
Walk, attack and recharge to reach the goal!
Please sign in or sign up to submit answers.
Alternatively, you can try out Learneroo before signing up.