public class Prologin
{
  // Fonction appelée au début de la partie.
  public void partie_init()
  {
	  System.out.println("Player "+API.moi()+": Begin");
	  API.init();
  }

  
  public void printMap()
  {
	  Position p = new Position();
	  System.out.println("Printing");
	  for(int y = 0 ; y < 39 ; y++)
	  {
		  for(int x = 0 ; x < 39 ; x++)
		  {
			  p.x = x;
			  p.y = y;
			  System.err.print(" "+(API.est_libre(p)?1:0));
		  }
		  System.err.println();
	  }
  }

  public Position position(int x, int y)
  {
	  Position p = new Position();
	  p.x = x;
	  p.y = y;
	  return p;
  }
  
  // Fonction appelée à chaque tour.
  public void jouer_tour()
  {
	  if(API.moi() == 1)
		  return;
	  if(API.tour_actuel() == 100)
	  {
		  printMap();
	  }
	  
	  int max = -1;
	  Position maxP = null;
	  for(Position p : API.ma_base())
	  {
		  if(p.y == 18 || p.y == 19 || p.y == 20)
			  return;
		  if(Interface.puissance_aspiration(p) > max)
		  {
			  max = Interface.puissance_aspiration(p);
			  maxP = p;
		  }
	  }
	  Position dest = position(0, 19);
	  if(Interface.puissance_aspiration(dest) == Interface.LIMITE_ASPIRATION)
		  dest.y += 1;
	  Interface.deplacer_aspiration(maxP, dest);
	  
	  
	  int action = 5;
	  Position p = new Position();
	  for(int y = 0 ; y < 39 ; y++)
	  {
		  for(int x = 0 ; x < 39 ; x++)
		  {
			  p.x = x;
			  p.y = y;
			  if(API.est_debris(p))
			  {
				  API.deblayer(p);
				  API.construire(p);
				  action -= 3;
			  }
		  }
	  }
	/*  if(API.tour_actuel()/2 >= 25 && API.tour_actuel() <= 30)
	  {
		  Position max;
		  for(Position base : API.ma_base())
		  {
			  
		  }
	  }*/
	  p.x = API.ma_base()[0].x+(API.tour_actuel()-2)+1;
	  p.y = 19;
	  //System.out.println(p.x+" "+p.y);
	  while(action > 0 && p.x < 40)
	  {
		  API.construire(p);
		  p.y += 1;
		  API.construire(p);
		  p.y -= 1;
		  p.x += 1;
		  action-=2;
	  }
  }


  // Fonction appelée à la fin de la partie.
  public void partie_fin()
  {
    // Place ton code ici
  }
}
