package rabbitescape.engine;
import rabbitescape.engine.util.Position;
public class RabbitStates
{
public static Position whereBridging( StateAndPosition change )
{
switch( change.state )
{
case RABBIT_BRIDGING_DOWN_UP_RIGHT_1:
case RABBIT_BRIDGING_DOWN_UP_RIGHT_2:
case RABBIT_BRIDGING_DOWN_UP_RIGHT_3:
case RABBIT_BRIDGING_RIGHT_1:
case RABBIT_BRIDGING_RIGHT_2:
case RABBIT_BRIDGING_RIGHT_3:
return new Position( change.x + 1, change.y );
case RABBIT_BRIDGING_DOWN_UP_LEFT_1:
case RABBIT_BRIDGING_DOWN_UP_LEFT_2:
case RABBIT_BRIDGING_DOWN_UP_LEFT_3:
case RABBIT_BRIDGING_LEFT_1:
case RABBIT_BRIDGING_LEFT_2:
case RABBIT_BRIDGING_LEFT_3:
return new Position( change.x - 1, change.y );
case RABBIT_BRIDGING_UP_RIGHT_1:
case RABBIT_BRIDGING_UP_RIGHT_2:
case RABBIT_BRIDGING_UP_RIGHT_3:
return new Position( change.x + 1, change.y - 1 );
case RABBIT_BRIDGING_UP_LEFT_1:
case RABBIT_BRIDGING_UP_LEFT_2:
case RABBIT_BRIDGING_UP_LEFT_3:
return new Position( change.x - 1, change.y - 1 );
case RABBIT_BRIDGING_IN_CORNER_LEFT_1:
case RABBIT_BRIDGING_IN_CORNER_LEFT_2:
case RABBIT_BRIDGING_IN_CORNER_LEFT_3:
case RABBIT_BRIDGING_IN_CORNER_RIGHT_1:
case RABBIT_BRIDGING_IN_CORNER_RIGHT_2:
case RABBIT_BRIDGING_IN_CORNER_RIGHT_3:
return new Position( change.x, change.y );
case RABBIT_BRIDGING_IN_CORNER_UP_LEFT_1:
case RABBIT_BRIDGING_IN_CORNER_UP_LEFT_2:
case RABBIT_BRIDGING_IN_CORNER_UP_LEFT_3:
case RABBIT_BRIDGING_IN_CORNER_UP_RIGHT_1:
case RABBIT_BRIDGING_IN_CORNER_UP_RIGHT_2:
case RABBIT_BRIDGING_IN_CORNER_UP_RIGHT_3:
return new Position( change.x, change.y - 1 );
default:
return null;
}
}
public static char bridgingStage( ChangeDescription.State state )
{
switch ( state )
{
case RABBIT_BRIDGING_RIGHT_1:
case RABBIT_BRIDGING_DOWN_UP_RIGHT_1:
case RABBIT_BRIDGING_UP_RIGHT_1:
case RABBIT_BRIDGING_IN_CORNER_RIGHT_1:
case RABBIT_BRIDGING_IN_CORNER_UP_RIGHT_1:
return 'B';
case RABBIT_BRIDGING_LEFT_1:
case RABBIT_BRIDGING_DOWN_UP_LEFT_1:
case RABBIT_BRIDGING_UP_LEFT_1:
case RABBIT_BRIDGING_IN_CORNER_LEFT_1:
case RABBIT_BRIDGING_IN_CORNER_UP_LEFT_1:
return 'E';
case RABBIT_BRIDGING_RIGHT_2:
case RABBIT_BRIDGING_DOWN_UP_RIGHT_2:
case RABBIT_BRIDGING_UP_RIGHT_2:
case RABBIT_BRIDGING_IN_CORNER_RIGHT_2:
case RABBIT_BRIDGING_IN_CORNER_UP_RIGHT_2:
return '[';
case RABBIT_BRIDGING_LEFT_2:
case RABBIT_BRIDGING_DOWN_UP_LEFT_2:
case RABBIT_BRIDGING_UP_LEFT_2:
case RABBIT_BRIDGING_IN_CORNER_LEFT_2:
case RABBIT_BRIDGING_IN_CORNER_UP_LEFT_2:
return ']';
case RABBIT_BRIDGING_RIGHT_3:
case RABBIT_BRIDGING_DOWN_UP_RIGHT_3:
case RABBIT_BRIDGING_UP_RIGHT_3:
case RABBIT_BRIDGING_IN_CORNER_RIGHT_3:
case RABBIT_BRIDGING_IN_CORNER_UP_RIGHT_3:
return '{';
case RABBIT_BRIDGING_LEFT_3:
case RABBIT_BRIDGING_DOWN_UP_LEFT_3:
case RABBIT_BRIDGING_UP_LEFT_3:
case RABBIT_BRIDGING_IN_CORNER_LEFT_3:
case RABBIT_BRIDGING_IN_CORNER_UP_LEFT_3:
return '}';
default:
return ' ';
}
}
}