public class API {
	public static final int LIMITE_ASPIRATION = Interface.LIMITE_ASPIRATION;
	public static boolean aGauche;
	public static void init()
	{
		aGauche = Interface.ma_base()[0].x==0;
	}
	public static int moi()
	{
		return Interface.moi();
	}
	
	public static Position inv(Position p)
	{
		Position p2 = new Position();
		p2.y = p.x;
		p2.x = p.y;
		return p2;
	}
	
	public static void invRef(Position p)
	{
		int tmp = p.y;
		p.y = p.x;
		p.x = tmp;
	}

	public static boolean est_libre(Position p) {
		if(!aGauche)
			return Interface.est_libre(inv(p));
		else
			return Interface.est_libre(p);
	}

	public static Position[] ma_base() {
		Position[] mabaz = Interface.ma_base();
		if(!aGauche)
			for(int i = 0 ; i < mabaz.length ; i++)
				invRef(mabaz[i]);
		
		return mabaz;
	}

	public static boolean est_debris(Position p) {
		if(!aGauche)
			return Interface.est_debris(inv(p));
		else
			return Interface.est_debris(p);
	}

	public static Erreur deblayer(Position p) {
		if(!aGauche)
			return Interface.deblayer(inv(p));
		else
			return Interface.deblayer(p);
		
	}

	public static Erreur construire(Position p) {
		if(!aGauche)
			return Interface.construire(inv(p));
		else
			return Interface.construire(p);
		
	}

	public static int tour_actuel() {
		return Interface.tour_actuel();
	}
	public static int puissance_aspiration(Position p) {
		if(!aGauche)
			return Interface.puissance_aspiration(inv(p));
		else
			return Interface.puissance_aspiration(p);
	}
	public static void deplacer_aspiration(Position src, Position dest) {
		if(!aGauche)
			return Interface.deplacer_aspiration(inv());
		else
			return Interface.deplacer_aspiration(p);
		
	}
	
	
}	
