Муравей Лэнгстона (метод мутатора) - PullRequest
0 голосов
/ 18 мая 2011
class Ant {

// An ant is represented by the coordinates of its location,
// and the direction it is facing.
Integer x;
Integer y;
Direction direction;

// Represent direction as an enumeration
enum Direction { X, Y, NegX, NegY };

//Represent turn choice as an enumeration
enum Turn { Pos, Neg };

// Ant constructor
Ant(Integer x, Integer y, Direction direction) {
    this.x = x;
    this.y = y;
    this.direction = direction;
}

// Change this ant's direction
private void turn(Turn turn) {

}

// Mave this ant forward one step in the direction it is facing.
// Sadly, Java's "%" is called "mod" but it is remainder.
// That may explain the "+ width" and "+ height".
private void forward(Integer width, Integer height) {
    switch (direction) {
    case X    : x = (x + 1 + width) % width;   break;
    case Y    : y = (y + 1 + height) % height; break;
    case NegX : x = (x - 1 + width) % width;   break;
    case NegY : y = (y - 1 + height) % height; break;
    }
}

// This ant turns then steps forward.
void advance(State state, Integer width, Integer height) {
  Ant State.On = new Ant(Direction.X,Y.Turn.Pos)
  Ant State.Off = new Ant(Direction.NegX,NegY;Turn.Neg}
    // Your code here:
    // 1) Turn this ant based on state parameter
    // 2) Step forward
}

}

  1. Завершите класс Ant. Этот класс содержит типы данных для представления муравьев и методы, которые ими управляют.Муравей определяется его местоположением и направлением.Его местоположение - просто декартова координата, заданная полями x и y класса.Вместо севера, юга, востока и запада мы используем систему координат для указания направлений, поэтому X означает вдоль оси x, NegX - вдоль оси x в отрицательном направлении и так далее.Значения типа Turn arePos (положительные) и Neg (отрицательные).В классе Ant мы предоставили все методы, кроме двух.Вы должны предоставить их реализации.

void turn (Turn turn) Этот метод мутатора соответствует функции поворота в Задании 1. Его эффект - изменить направление муравья, повернув его в положительное положение.или отрицательное направление.Параметром функции поворота является значение типа Turn, то есть это либо Turn.Pos, либо Turn.Neg.

void advance (состояние, ширина целого, высота целого).в состояние в этой точке сетки.Затем муравей делает шаг вперед в этом направлении.Если состояние State.On, муравей поворачивается в направлении Turn.Pos.если состояние State.Off, муравей поворачивается в направлении Turn.Neg.У вас уже есть методы поворота и пересылки для выполнения этих двух действий по отдельности, так что продвижение будет определяться в терминах этих двух методов.

Хорошо, я отредактировал всю вещь ... со всей полной информацией сейчас.Я бы предпочел объяснение, и я постараюсь написать полный сам.спасибо.

...