46 lines
928 B
Java
46 lines
928 B
Java
import java.awt.Point;
|
|
|
|
/**
|
|
* State = 0 -> verso su
|
|
* State = 1 -> verso destra
|
|
* State = 2 -> verso il basso
|
|
* State = 3 -> verso sinistra
|
|
*/
|
|
public class Robot {
|
|
private int state;
|
|
private Point pos;
|
|
|
|
public Robot() {
|
|
state = 0;
|
|
pos = new Point();
|
|
}
|
|
|
|
public void turnLeft() {
|
|
if(state == 0) state = 3;
|
|
else state--;
|
|
}
|
|
|
|
public void turnRight() {
|
|
if(state == 3) state = 0;
|
|
else state++;
|
|
}
|
|
|
|
public void move() {
|
|
if(state == 0) pos.translate(0, 1);
|
|
else if(state == 1) pos.translate(1, 0);
|
|
else if(state == 2) pos.translate(0, -1);
|
|
else pos.translate(-1, 0);
|
|
}
|
|
|
|
public Point getLocation() {
|
|
return pos;
|
|
}
|
|
|
|
public String getDirection() {
|
|
if(state == 0) return "N";
|
|
else if(state == 1) return "E";
|
|
else if(state == 2) return "S";
|
|
else return "W";
|
|
}
|
|
}
|