Package ocean
Class Ocean
java.lang.Object
ocean.Ocean
Encode la structure de l'océan
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionadd
(OceanReporter reporter) Rajoute le rapporteur passé en argument dans la listeLe tableau de toutes les directions disponiblesboolean
Désactive tous les rapporteurs, mais leur donne une chance de bloquer cette actionboolean
Active tous les rapporteurs, mais leur donne une chance de bloquer cette actionboolean
exploreUsing
(Traversal traversal) Exploration de l'océanLa marque dansc
boolean
Est-ce quec
comporte une marque quelconque ?boolean
Est-ce que Marin se trouve dansc
?boolean
Est-ce que Nemo se trouve dansc
?boolean
Est-ce qu'il y a un requin dansc
?boolean
Est-ce quec
est une case valide?boolean
isWall
(Coordinate c) Est-ce quec
est un mur ?Initialise la liste de rapporteurs avec un seul élément — celui passé en argumentPose la marque par défaut (defaultMark
) et notifie lerapporteur
setMark
(Coordinate c, int mark) Pose une marque de valeurmark
et notifie lerapporteur
setMark
(Coordinate c, Mark mark) Pose la marquemark
et notifie lerapporteur
int
size()
toString()
Crée une chaîne de caractères avec la carte de l'océanunMark
(Coordinate c) Enlève la marque et notifie lerapporteur
-
Field Details
-
noMark
Valeur représentant l'absence d'une marque -
defaultMark
Valeur par défaut pour une marqueÀ utiliser lorsqu'il n'y a pas besoin de stocker d'autre information que la présence d'une marque
-
name
Le nom de la carte de l'océan (c'est-à-dire, du fichier la contenant)
-
-
Constructor Details
-
Ocean
Récupère la carte de l'océan dans un fichier, laissant rapporteur à null- Parameters:
name
- le nom de l'océan à créerfileName
- le nom du fichier à liredirections
- le tableau de toutes les directions possibles- Throws:
FileNotFoundException
- si le fichier n'est pas accessible
-
Ocean
Récupère la carte de l'océan dans un fichier, laissant rapporteur à null- Parameters:
name
- le nom de l'océan à créerfileName
- le nom du fichier à lire- Throws:
FileNotFoundException
- si le fichier n'est pas accessible
-
-
Method Details
-
reporters
Initialise la liste de rapporteurs avec un seul élément — celui passé en argument- Returns:
- la référence de l'océan afin de pourvoir enchaîner des ajouts de
rapporteurs (voir
add(OceanReporter)
)
-
add
Rajoute le rapporteur passé en argument dans la liste- Parameters:
reporter
- la référence vers le rapporteur- Returns:
- la référence de l'océan afin de pourvoir enchaîner des ajouts de
rapporteurs (voir
add(OceanReporter)
)
-
directions
Le tableau de toutes les directions disponibles- Returns:
- une copie du tableau de toutes les directions
-
exploreUsing
Exploration de l'océan- Parameters:
traversal
- algorithme d'exploration (Traversal
est une classe abstraite qui représente un algorithme de parcours de l'océan. On peut implémenter autant qu'on veut de tels algorithmes en définissant des classes dérivées deTraversal
.)- Returns:
true
si Nemo a été retrouvé,false
sinon
-
size
public int size()- Returns:
- la taille de l'océan
-
isValid
Est-ce quec
est une case valide?- Parameters:
c
- la cellule à tester- Returns:
true
si les coordonnéesc.x
etc.y
sont toutes les deux comprises entre0
(inclu) etsize
(exclu),false
sinon
-
isWall
Est-ce quec
est un mur ?- Parameters:
c
- la cellule à tester- Returns:
true
sic
est un mur,false
sinon- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
isThereASharkAt
Est-ce qu'il y a un requin dansc
?- Parameters:
c
- la cellule à tester- Returns:
true
sic
contient un requin,false
sinon- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
isNemoAt
Est-ce que Nemo se trouve dansc
?- Parameters:
c
- la cellule à tester- Returns:
true
si Nemo se trouve dansc
,false
sinon- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
isMarlinAt
Est-ce que Marin se trouve dansc
?- Parameters:
c
- la cellule à tester- Returns:
true
si Marin se trouve dansc
,false
sinon- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
isMarked
Est-ce quec
comporte une marque quelconque ?- Parameters:
c
- la cellule à tester- Returns:
true
sic
comporte une marque,false
sinon- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
getMark
La marque dansc
- Parameters:
c
- la cellule dont on souhaite récupérer la marque- Returns:
- la marque qui se trouve dans
c
- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
disableReports
public boolean disableReports()Désactive tous les rapporteurs, mais leur donne une chance de bloquer cette action- Returns:
true
si les rapporteurs sont bien désactivés
-
enableReports
public boolean enableReports()Active tous les rapporteurs, mais leur donne une chance de bloquer cette action- Returns:
true
si les rapporteurs sont bien activés
-
setMark
Pose la marquemark
et notifie lerapporteur
- Parameters:
c
- la cellule où la marque doit être poséemark
- la marque à poser- Returns:
- la marque précédente qui se trouvait dans
c
auparavant - Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
setMark
Pose une marque de valeurmark
et notifie lerapporteur
- Parameters:
c
- la cellule où la marque doit être poséemark
- la marque à poser- Returns:
- la marque précédente qui se trouvait dans
c
auparavant - Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
setMark
Pose la marque par défaut (defaultMark
) et notifie lerapporteur
- Parameters:
c
- la cellule où la marque doit être posée- Returns:
- la marque précédente qui se trouvait dans
c
auparavant - Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
unMark
Enlève la marque et notifie lerapporteur
- Parameters:
c
- la cellule où la marque doit être posée- Returns:
- la marque enlevée
- Throws:
Error
- sic
n'est pas valide (voirisValid(Coordinate)
)
-
toString
Crée une chaîne de caractères avec la carte de l'océan
-