/** * Constructor. * * @param currentPosition * */ public Forward(AgentPosition currentPosition) : base(FORWARD_ACTION_NAME) { int x = currentPosition.getX(); int y = currentPosition.getY(); AgentPosition.Orientation orientation = currentPosition.getOrientation(); if (orientation.Equals(AgentPosition.Orientation.FACING_NORTH)) { toPosition = new AgentPosition(x, y + 1, orientation); } else if (orientation.Equals(AgentPosition.Orientation.FACING_SOUTH)) { toPosition = new AgentPosition(x, y - 1, orientation); } else if (orientation.Equals(AgentPosition.Orientation.FACING_EAST)) { toPosition = new AgentPosition(x + 1, y, orientation); } else if (orientation.Equals(AgentPosition.Orientation.FACING_WEST)) { toPosition = new AgentPosition(x - 1, y, orientation); } SetAttribute(ATTRIBUTE_TO_POSITION, toPosition); }
/** * Constructor. * * @param currentOrientation */ public TurnLeft(AgentPosition.Orientation currentOrientation) : base(TURN_LEFT_ACTION_NAME) { if (currentOrientation.Equals(AgentPosition.Orientation.FACING_NORTH)) { toOrientation = AgentPosition.Orientation.FACING_WEST; } else if (currentOrientation.Equals(AgentPosition.Orientation.FACING_SOUTH)) { toOrientation = AgentPosition.Orientation.FACING_EAST; } else if (currentOrientation.Equals(AgentPosition.Orientation.FACING_EAST)) { toOrientation = AgentPosition.Orientation.FACING_NORTH; } else if (currentOrientation.Equals(AgentPosition.Orientation.FACING_WEST)) { toOrientation = AgentPosition.Orientation.FACING_SOUTH; } SetAttribute(ATTRIBUTE_TO_ORIENTATION, toOrientation); }