Как сделать код RandomBug

Понятия не имею, как исправить этот код. Нужно сделать бегуна и основной класс. Программа должна быть в состоянии случайным образом генерировать повороты ошибки.

Это то, что у меня есть для моего класса RandomBug до сих пор:

import info.gridworld.actor.Bug;
import java.awt.Color;
public class RandomBug extends Bug
{
  public RandomBug()
  {
    setColor(Color.YELLOW);
  }

  public RandomBug(Color bugColor)
  {
    setColor(bugColor);
  }

  public void turn(int angle)
  {
      turn(); turn(); turn(); turn();
  }

  public void turnAround() {
      turn();
} 
  public int turnAngle() {
    int angle = 45 * (int) (Math.random() * 8);
    int x = angle;
    return x;
  }
  public void act()
  {

    if (canMove())
        move();
    else
        turnAround();    
  }  
}

И это мой RandomBugRunner.java:

import java.awt.Color;

import info.gridworld.actor.ActorWorld;
import info.gridworld.actor.Bug;
import info.gridworld.actor.Rock;
import info.gridworld.grid.Location;

public class RandomBugRunner
{
    public static void main(String[] args)
    {
        ActorWorld world = new ActorWorld();
        RandomBug bug1 = new RandomBug();
        bug1.setColor(Color.blue);
        world.add(bug1);
        bug1.act();
        bug1.turn(bug1.turnAngle());
        bug1.turnAround();
        world.show();
    }
}

1 ответ

Глядя на ваш act функция, это вызывает turnAround который тогда просто вызывает turn, никогда не вызывая turnAngle() вообще. К тому же, turn(int angle) кажется, полностью игнорирует угол. Поскольку это явно домашнее задание, я не хочу просто дать вам ответ, но я надеюсь, что это поставит вас на правильный путь:)

Другие вопросы по тегам