Implémentation de Javaquarium
JavaQuarium est une implémentation de l'exercice de POO Javaquarium en Java. Certaines fonctionnalités ont été améliorées ou modifiées par rapport à l'exercice de base.
JavaQuarium est écrit en Java 17 et utilise la preview du pattern matching.
Pour installer le projet :
git clone https://github.com/Benco11-developement/JavaQuarium.git
Pour compiler le projet :
cd JavaQuarium
./gradlew build
Il est possible de rajouter des arguments à l'exécution du programme de cette manière :
java --enable-preview -jar JavaQuarium-1.0.jar -ARGUMENT_ID ARGUMENT_VALUE
Les différents arguments disponibles sont :
ID de l'argument | Valeur et type attendue |
---|---|
-i | Fichier aquarium d'entrée (chemin) |
-o | Fichier aquarium de sortie (chemin) |
-r | Nombre de rounds à simuler (entier) |
-oR | Round où l'aquarium sera enregistré (entier) |
Exemple: Simuler pendant 30 tours l'aquarium de aquarium.txt puis sauvegarder
java --enable-preview -jar JavaQuarium-1.0.jar -i aquarium.txt -o "aquarium 2.txt" -r 30
Les fichiers d'entrée et de sortie doivent avoir la forme suivante :
// Ceci est un commentaire
// Algues
// Format : [Nombre d'algues] algue(s) [âge] an(s) (= tours)
3 algues 2 ans
1 algue 9 ans
// Poissons
// Format : [nom], [race], [sexe], [âge]? ans (= tours), [pv]? pvs
// L'ordre est important !
Criquette, Mérou, MALE, 10 ans
pieutez, Bar, FEMALE, 3 ans, 12 pvs
// Spécifie des ajouts à ce tour précisément
===== Tour 10 =====
// Seront ajoutés à ce tour :
1 algue 4 ans
Baton, Mérou, MALE, 2 ans
===== Tour 17 =====
// Seront ajoutés à ce tour :
10 algues 8 ans
Halo, Carpe, FEMALE
Magnifique, Thon, FEMALE, 1 pv
Carotte, Poisson-Clown, MALE, 11 ans
===== Tour 20 =====
// Supprime au tour 20 :
// Algues : -[x]? algue(s) [x]? an(s)
// Toutes les algues de 11 ans
-algues 11 ans
// 10 algues de 1 an
-10 algues 1 an
// 1 algue
-1 algue
// Poissons : -poisson [n:x]?, [sp:x]?, [sx:x]?, [a:x]?
// (n: nom, sp: sexe, sx: sexe, a: âge)
// Toutes les carpes (Halo)
-poisson sp:Carpe
// Tous les poissons avec pour nom "Magnifique"
-poisson n:Magnifique
// Tous les poissons de 14 ans (Carotte)
-poisson a:14 ans
// Tous les mâles bars
-poisson sx:MALE, sp:Bar
// Toutes les carpes de 12 ans
-poisson sp:Carpe, a:12
===== Tour 22 =====
// Retire toutes les femêles (Baton)
-poisson sx:FEMALE
Instruction | Description, Arguments |
---|---|
-poisson | Retire des poissons selon certains filtres : n:[x] -> Nom du poisson sp:[x] -> Espèce du poisson sx:[x] -> Sexe du poisson a:[x] -> Âge du poisson |
-algue | Retire des algues selon certains filtres : -[x]? algue(s) [x]? an(s) |
algue | Ajoute des algues : [x] algue(s) [x] an(s) |
poisson | Ajoute un poisson : [nom], [espèce], [sexe], [age]?, [pv]? |
Liste des modifications par rapport à l'énoncé original :
- Le sexe et le nombre de pvs sont spécifiés dans les fichiers aquarium
- Le nom des nouveaux-nés est sélectionné à partir du nom du parent qui est allé se reproduire dans le dictionnaire français
- Le nombre de poissons est affiché à la fin de chaque tour
- À la fin de chaque tour, pour chaque poisson, le nom, l'âge, le sexe, la race et le nombre de pvs sont affichés
- Il est possible de supprimer des êtres vivants selon certains critères
- La syntaxe des fichiers est plus souple
Une JavaDoc est à votre disposition.