package batNavale; /** Representation d'un joueur abstrait. * @author M. Nebut * @author 05/05, 02/07 */ public abstract class JoueurAbstrait implements Joueur { /** la liste des bateaux de ce joueur. */ // COMPLETER /** Les positions deja tentees par ce joueur */ // COMPLETER /** Construit un joueur sans bateaux */ // COMPLETER public JoueurAbstrait() { // COMPLETER } /** Ajoute a la liste des bateaux de ce joueur le bateau passe en * parametre. * @param b le bateau a ajouter a la liste des bateaux de ce * joueur, qui ne depasse pas de la grille, ne chevauche pas un * bateau existant et est non null. */ // COMPLETER public void ajouterBateau(Bateau b) { // COMPLETER } /** Indique si ce joueur a deja tente cette position. @param p la position a tenter @return vrai si le joueur a deja tente cette position */ // COMPLETER public boolean dejaJoue(Position p) { // COMPLETER return false; } /** Indique si le joueur a perdu : tous ses bateaux sont coules. * @return vrai si le joueur a perdu */ // COMPLETER public boolean aPerdu() { // COMPLETER return false; } /** Indique que le joueur a tente cette position. * @param p la position a ajouter aux positions jouees par le joueur. */ // COMPLETER public void aTentePosition(Position p) { // COMPLETER } /** Evalue le coup de l'adversaire passe en parametre. * @param p la position a evaluer, non null * @throws ToucheException si ce coup n'a que touche un bateau * @throws CouleException si ce coup a coule un bateau */ // COMPLETER public void evaluerCoup(Position p) throws ToucheException, CouleException { // COMPLETER } /** Fait jouer ce joueur contre le joueur passe en parametre. On * suppose qu'un joueur ne rejoue pas une position deja jouee. * @param j le joueur adverse (donc pas this) * @return la position jouee par ce joueur */ // COMPLETER public abstract Position jouer (Joueur j); }