@Override
  protected synchronized void resetRound() { // réinitialisation locale
    super.resetRound();

    // on attend d'avoir récupèré l'aire de jeu (attente passive)
    if (!newRoundReceived) {
      try {
        wait();
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
    // on force le moteur physique à utiliser l'aire de jeu reçue du serveur
    physicsEngine.setBoard(round.board);

    // on indique au serveur qu'on est prêt
    clientCom.sendAcknowledgment();
  }
  @Override
  protected synchronized void init() { // aspects réseau
    clientCom = mainWindow.clientCom;
    clientCom.setGameHandler(this);

    // initialisation standard
    super.init();

    // on récupère le numéro du seul joueur local, une fois pour toutes
    localPlayerId = -1;
    int i = 0;
    while (localPlayerId < 0 && i < round.players.length) {
      Player player = round.players[i];
      if (player.local) localPlayerId = i;
      i++;
    }

    // on récupère l'aire de jeu et on prévient le serveur qu'on est prêt
    resetRound();
  }