0

在整个迷宫中,我试图让我的机器人在每个人不在的十字路口放下一个东西(putThing)。RobotSE 有一个布尔方法 isBesideThing(),我正在尝试使用它。但是,我不断收到编译错误:

MazeIDudItz.java:24: cannot find symbol
symbol  : method isBesideThing()
location: class MazeBot
        if(!this.isBesideThing())

我已经尝试了所有我知道该怎么做的事情。我将其更改为包含返回值的公共布尔方法,但无济于事。这是我的 RobotSE 类扩展器。这是我的第一堂编程课,所以如果我不清楚或者我说的不完全有道理,我提前道歉。我知道当我收到那个错误时,我拼错了一些东西,忘记了一些东西,或者没有导入一些东西。我应该只需要导入 becker.robots.*;因为 RobotSE 是一个子类。

class MazeBot extends RobotSE
{

  public MazeBot(City theCity, int str, int ave, Direction dir, int numThings)
  {
    super(theCity, str, ave, dir, numThings);
  }   

  private boolean isAtEndSpot()
  {
    return (this.getAvenue() == 9 && this.getStreet() == 10);   
  }

  public void dontPickThatUp()
  {
    while(!this.isBesideThing())
    {  
      this.putThing();
    }    
  }   

  public void moveCheck()
  {
    if(this.frontIsClear())
    {  
      this.move();
    }
    else
    {   
      this.turnAround();
    }
  }                   

  public void checkRight()
  {
    this.turnRight();
    if (this.frontIsClear())
    {   
      this.moveCheck();
    }
    else
    {  
      this.turnLeft();    
      this.moveCheck();
    }
  }

  public void NavigateMaze()
  {
    while (!this.isAtEndSpot())
    {
      this.checkRight();
    }

  }   
}

感谢您的帮助和建议!

4

1 回答 1

0

我会说要彻底阅读他们的文档。

方法签名是

public boolean isBesideThing(IPredicate kindOfThing)

所以你必须匹配签名并传递一个IPredicate.

于 2013-02-18T20:37:09.717 回答