卡雷尔机器人:找不到符号

时间:2013-02-18 20:33:01

标签: java robot

在整个迷宫中,我试图让我的机器人放下一个东西(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();
    }

  }   
}

感谢您的帮助和建议!

1 个答案:

答案 0 :(得分:0)

我说要阅读他们的documentation thoroughly.

方法签名是

public boolean isBesideThing(IPredicate kindOfThing)

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