designreport.md

这篇博客详细解析了游戏中的跳跃者(Jumper)角色的行为逻辑。当跳跃者面前两格有花时,它会跳跃;若为岩石,则改变方向。如果两格前方超出地图边界,同样会改变方向。遇到边缘,跳跃者会按顺时针旋转90度。如果有其他非花或岩石的演员在前方,两者都会改变方向。此外,文章还探讨了在所有相邻位置都被岩石占据时,跳跃者的可能行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值