public void run() {
   for (int i = 0; i < partie.getTailleShip().length; i++) {
     try {
       joueur.sendCommande("SHIP/" + partie.getTailleShip()[i] + "/");
       joueur.setLastShip(partie.getTailleShip()[i]);
       synchronized (this) {
         this.wait();
       }
       // placement de Ship recu de la part du client
       // on passe au Ship suivant
     } catch (IOException e) {
       // retenter l'envoi de la cmd en cas d'echec
       i--;
       continue;
     } catch (InterruptedException e) {
     }
   }
   // ajout du Joueur dans le tableau de priorite (pour savoir dans quel ordre jouent les joueurs)
   synchronized (partie) {
     partie.getPriorite().add(joueur);
   }
   try {
     joueur.sendCommande(
         "HEYLISTEN/(serveur) Sous-marins en place, en attente des autres joueurs.");
     joueur.sendCommande("ALLYOURBASE/");
   } catch (IOException e) {
   }
   if (partie.getGrille().estInitialisee()) {
     System.out.println(
         "[PLACEMENT J" + joueur.getNumeroClient() + "] Grille initialisee, debut de la partie");
     synchronized (partie) {
       partie.notify();
     }
   }
   System.out.println("[PLACEMENT J" + joueur.getNumeroClient() + "] Fin thread " + getName());
 }
 public ShipPlacement(ThreadClient j, Partie p) {
   partie = p;
   joueur = j;
   setName(
       "ShipPlacement du Joueur no " + joueur.getNumeroClient() + " : " + joueur.getNomClient());
 }