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()); }