@Override
    public void launchGame() throws IOException {
        //Tant que la partie n'est pas finie, que l'on peut encore jouer
        //et que le nombre de joueur est égal à 2
    	sendToAllPlayers(":NAMELIST");
    	for(int i = 0 ; i < players.length; i++)  {
    		sendToAllPlayers(":" + players[i].getId() + ":" + players[i].getName() );
    	}
    	sendToAllPlayers(":ENDLIST");
        while(!win() && canPlay() && playersCount == 2) {
            String msg = "";
            try {
            	sendToPlayer(":START");
                msg = receiveFromPlayer();
            } catch (SocketTimeoutException e) {
                playersCount--;
                break;
            } catch (IOException e) {
                e.printStackTrace();
            }
            if(processMessage(msg) == 1) {
                sendToAllPlayers(":" + msg);
                changePlayer();
            }
            else {
                sendToPlayer(":ERROR");
            }
            System.out.println(this.toString());
        }
        
        //Envoi du gagnant
        if(playersCount == 2) {
        	changePlayer();
            sendToAllPlayers(":WIN:" + players[player].getId());
        }
        else {
        	sendToAllPlayers(":CANCEL");
        }
    }