Inception: clarify the details of the problem:
a. What will a jumper do if the location in front of it is empty, but the location two cells in front contains a flower or a rock?
Answer:
If the location two cells in front contains a flower then the jumper will jump.
If the location two cells in front contains a rock then the jumper won’t jump but chang its direction.
source code:
// @file: Part3/Jumper.java
// @line: 55~65 108~124
public void act()
{
if(canJump())
{
jump();
}
else
{
turn();
}
}
public boolean canJump()
{
Grid<Actor> gr = getGrid();
if(gr == null)
{
return false;
}
Location loc = getLocation();
Location next = loc.getAdjacentLocation(getDirection()).getAdjacentLocation(getDirection());
if(!gr.isValid(next))
{
return false;
}
Actor actor = gr.get(next);
return (actor == null) || (actor instanceof Flower);
}
b. What will a jumper do if the location two cells in front of the jumper is out of the grid?
Answer: The jumper won’t jump but chang its direction.
source code:
// @file: Part3/Jumper.java
// @line:57~64 117~120
if(canJump())
{
jump();
}
else
{
turn();
}
if(!gr.isValid(next))
{
return false;
}
c. What will a jumper do if it is facing an edge of the grid?
Answer: The jumper won’t jump but chang its direction, like rotate 90 degrees clockwise
source code:
// @file: Part3/Jumper.java
// @line: 70~73
public void turn()
{
setDirection(getDirection() + Location.RIGHT);
}
d. What will a jumper do if another actor (not a flower or a rock) is in the cell that is two cells in front of the jumper?
Answer: The jumper(both of them) won’t jump but chang its direction.
Source code:
// @file: Part3/Jumper.java
// @line: 122
return (targetDes == null) || (targetDes instanceof Flower);
e. What will a jumper do if it encounters another jumper in its path?
Answer: The jumper(both of them) won’t jump but chang its direction.
Source code:
// @file: Part3/Jumper.java
// @line: 122
return (targetDes == null) || (targetDes instanceof Flower)
f. Are there any other tests the jumper needs to make?
Answer: When all the alternative next location are occupied by rocks what will the Jumper do.