我如何检查bug类前面的两个空格是否是一个没有任何内容的清晰点并且也没有越过边界?现在这就是我所拥有的
public void act()
{
if(canMove())
{
Location loc = getLocation();
Location nextLocation = loc.getAdjacentLocation(getDirection());
nextLocation = nextLocation.getAdjacentLocation(getDirection());
if (nextLocation == null)
{
move();
move();
}
}
}
这似乎不起作用,因为bug什么都不做。
答案 0 :(得分:0)
你可能意味着if(nextLocation != null)
。我们不希望错误从板上跳到(null
空间)。这是我记得的GridWorld
;我手边没有这个程序。
答案 1 :(得分:0)
你所遇到的问题有两个。
尝试将代码更改为:
public void act()
{
if(canMove())
{
Location loc = getLocation();
Location nextLocation = loc.getAdjacentLocation(getDirection());
nextLocation = nextLocation.getAdjacentLocation(getDirection());
Grid<Actor> gr = getGrid();
if (gr.isValid(nextLocation))
{
moveTo(nextLocation);
}
else
move(); //This could be move() so you only move forward one
//space or turn() to turn
}
}