public void move(Environment environment, Agent.Action action) { var position = new Environment.Position(); switch (action) { case Agent.Action.MOVE_UP: position.y--; environment.updateRobotAction(Agent.Action.MOVE_UP, position); break; case Agent.Action.MOVE_RIGHT: position.x++; environment.updateRobotAction(Agent.Action.MOVE_RIGHT, position); break; case Agent.Action.MOVE_DOWN: position.y++; environment.updateRobotAction(Agent.Action.MOVE_DOWN, position); break; case Agent.Action.MOVE_LEFT: position.x--; environment.updateRobotAction(Agent.Action.MOVE_LEFT, position); break; case Agent.Action.CLEAN: break; case Agent.Action.PICKUP: break; case Agent.Action.STAY: break; default: throw new ArgumentOutOfRangeException(nameof(action), action, null); } }
public static int getDistance(Environment.Position p1, Environment.Position p2) { return(Math.Abs(p1.x - p2.x) + Math.Abs(p1.y - p2.y)); }
public Cell(int x = 0, int y = 0, State state = State.EMPTY) { position = new Environment.Position(x, y); this.state = state; }
public Cell(Environment.Position position, State state = State.EMPTY) { this.position = position; this.state = state; }