designreport.md

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值