public boolean jouerCase(Joueur joueurCourant, Joueur joueurAdverse, Case c) {

        if (c != null) {

            // Le joueur physique joueur
            if (joueurCourant.jouerCase(c)) {

                // Le joueur a touche un bateau
                this.afficherMessage("Vous avez touché votre adversaire !", true);

            } else {

                // Le joueur tire dans le vide
                this.afficherMessage("Votre tir a échoué !", true);

            }

        } else {

            // La machine joue
            if (joueurCourant.jouerCase(this.getCaseForIA(joueurAdverse))) {

                // La machine a touche un bateau
                this.afficherMessage("Votre adversaire vous a touché !", false);
                Iterator iterator = casesBateaux.keySet().iterator();
                while(iterator.hasNext()){
                    Case cb = casesBateaux.get((String)iterator.next());
                    if(c!=null){
                        if(cb.getBateau().getNom().equals(c.getBateau().getNom())){
                            cb.setBateau(c.getBateau());
                            casesBateaux.put(cb.getBateau().getNom(), cb);
                        }
                    }
                }
                
            } else {

                // La machine tire dans le vide
                this.afficherMessage("Le tir de votre adversaire a échoué !", false);

            }

        }
        setChanged();
        notifyObservers("tir");

        return this.testVictoire(joueurAdverse);

    } // jouerCase(Joueur joueurCourant, Joueur joueurAdverse, Case c)