Commit 5a3a1d9b authored by Anthony ROZEN's avatar Anthony ROZEN Committed by Antoine Guérin
Browse files

Analyse du domaine

parent 75649e8f
......@@ -2,7 +2,7 @@
[plantuml, exemple-mind-map, png]
[plantuml, exemple-mind-map, png]
....
@startmindmap
* Debian
......@@ -20,32 +20,116 @@
@endmindmap
....
Composante Carte :
La composante Carte, définit tout simplement une carte dans le jeu. Il y a 3 types de cartes, les cartes Lieu, Traque et Survie.
Une carte est composée d'un nom et d'un pouvoir peut importe son type.
Chaques types de cartes possèdent des attributs différents.
Les cartes Lieu possèdent, en plus d'un nom et d'un pouvoir, un numéro de 1 à 10. La planète est composée de 10 cartes Lieu différentes.
Les cartes Traque possèdent une phase et un symbole.
Les cartes Survie ne possèdent rien d'autre qu'un nom et un pouvoir.
[plantuml, class-diagram-example, png]
La classe Carte :
[plantuml, Composante-Carte, png]
....
hide circle
skinparam monochrome true
class Joueur
class Carte {
nom : String
pouvoir : ...
}
class Partie
class CarteLieu {
numero : Integer
}
Partie -> "creature [1]" Joueur : \t\t
class CarteSurvie {
phase : Integer
symbole : String
}
Partie -> "traques [1-6]" Joueur : \t\t
class CarteTraque {
}
Carte <|-- CarteLieu : \t\t
Carte <|-- CarteSurvie : \t\t
Carte <|-- CarteTraque : \t\t
....
Composante Carte :
les différentes Carte Lieu :
La composante Carte, définit tout simplement une carte dans le jeu. Il y a 3 types de cartes, les cartes Lieu, Traque et Survie.
Une carte est composée d'un nom et d'un pouvoir peut importe son type.
Chaques types de cartes possèdent des attributs différents.
Les cartes Lieu possèdent, en plus d'un nom et d'un pouvoir, un numéro de 1 à 10. La planète est composée de 10 cartes Lieu différentes.
Les cartes Traque possèdent une phase et un symbole.
Les cartes Survie ne possèdent rien d'autre qu'un nom et un pouvoir.
[plantuml, CarteLieu, png]
....
hide circle
skinparam monochrome true
class CarteLieu {
}
class CarteLieu1 {
nom = "L'ANTRE"
numero = 1
}
class CarteLieu2 {
nom = "LA JUNGLE"
numero = 2
}
class CarteLieu3 {
nom = "LA RIVIERE"
numero = 3
}
class CarteLieu4 {
nom = "LA PLAGE"
numero = 4
}
class CarteLieu5 {
nom = "LE ROVER"
numero = 5
}
class CarteLieu6 {
nom = "LE MARAIS"
numero = 6
}
class CarteLieu7 {
nom = "L'ABRI"
numero = 7
}
class CarteLieu8 {
nom = "L'EPAVE"
numero = 8
}
class CarteLieu9 {
nom = "LA SOURCE"
numero = 9
}
class CarteLieu10 {
nom = "L'ARTEFACT"
numero = 10
}
CarteLieu --> CarteLieu1 : \t\t
CarteLieu --> CarteLieu2 : \t\t
CarteLieu --> CarteLieu3 : \t\t
CarteLieu --> CarteLieu4 : \t\t
CarteLieu --> CarteLieu5 : \t\t
CarteLieu --> CarteLieu6 : \t\t
CarteLieu --> CarteLieu7 : \t\t
CarteLieu --> CarteLieu8 : \t\t
CarteLieu --> CarteLieu9 : \t\t
CarteLieu --> CarteLieu10 : \t\t
....
Composante Jeton :
......@@ -53,6 +137,7 @@ La composante Jeton, définit les jetons Traque.
Un jeton possède un nom et un état. L'état indique si le jeton est présent sur une carte.
Composante Joueur :
La composante Joueur, définit un joueur dans le jeu.
......@@ -61,14 +146,56 @@ Chaque joueur possède un nom.
Le joueur Créature a en plus les 3 jetons Traque et des carte Traque.
Le joueur Traque a lui 5 cartes Lieu et 3 pions Volonté.
La classe Joueur :
[plantuml, Composante-Joueur, png]
....
hide circle
skinparam monochrome true
class Joueur {
nom : String
}
class Creature {
jetonTraque : Jeton
carteTraque : ArrayList<Carte>
}
class Traque {
jetonVolonte : Jeton
carteLieu : ArrayList<Carte>
}
Joueur <|-- Creature : \t\t
Joueur <|-- Traque : \t\t
....
Composante Pion :
La composante Pion, définit un pion dans le jeu.
Il y a plusieurs type de pion, Secours, Assimilation, Balise, Volonté.
La classe Pion :
[plantuml, Composante-Pion, png]
....
hide circle
skinparam monochrome true
class Pion {
position : Integer
}
class PionSecour {
}
class PionAssimilation {
}
Pion <|-- PionSecour : \t\t
Pion <|-- PionAssimilation : \t\t
....
Composante Plateau :
......@@ -77,7 +204,18 @@ La composante Plateau, définit le plateau du jeu.
Le plateau possède un pions secours et un pions Assimilation.
Ces pions vont se déplacer dans un tableau, et si un pion arrive à la fin du tableau alors cela marque la fin du jeu.
La classe Plateau :
[plantuml, Composante-Plateau, png]
....
hide circle
skinparam monochrome true
class Plateau {
pionSecour : PionAssimilation
pionAssimilation : PionAssimilation
}
....
Définir les actions :
......@@ -85,7 +223,221 @@ Définir les actions :
resister() : Résister fait perdre au Traqué 1 ou 2 pions Volonté pour reprendre en main respectivement 2 ou 4 carte Lieu au choix de sa défausse.
Si par cette action un Traqué perd son troisième pion Volonté, il doit lacherPrise.
exemple :
avant éxécution
[plantuml, exemple-avant-resister, png]
....
hide circle
skinparam monochrome true
class Traque {
nom = "Trinity"
pions = 2
}
class CarteLieu1 {
nom = "LA PLAGE"
numero = 4
}
class CarteLieu2 {
nom = "LA JUNGLE"
numero = 2
}
class CarteLieu3 {
nom = "LA RIVIERE"
numero = 3
}
class CarteLieu4 {
nom = "L'ANTRE"
numero = 1
}
Traque -> "main " CarteLieu1 : \t\t
Traque --> "deffausse " CarteLieu2 : \t\t
Traque --> "deffausse " CarteLieu3 : \t\t
Traque --> "deffausse " CarteLieu4 : \t\t
....
après éxécution
[plantuml, exemple-apres-resister, png]
....
hide circle
skinparam monochrome true
class Traque {
nom = "Trinity"
pions = 1
}
class CarteLieu1 {
nom = "LA PLAGE"
numero = 4
}
class CarteLieu2 {
nom = "LA JUNGLE"
numero = 2
}
class CarteLieu3 {
nom = "LA RIVIERE"
numero = 3
}
class CarteLieu4 {
nom = "L'ANTRE"
numero = 1
}
Traque -> "main " CarteLieu1 : \t\t
Traque --> "deffausse " CarteLieu2 : \t\t
Traque --> "main " CarteLieu3 : \t\t
Traque --> "main " CarteLieu4 : \t\t
....
Donc on peut en déduire un lien entre la classe Traque et CarteLieu,
[plantuml, diagramme-Traque-CarteLieu, png]
....
hide circle
skinparam monochrome true
class Traque {
nom : String
pions : Integer
}
class CarteLieu {
nom : String
numero : Integer
}
Traque - "main [0-10]" CarteLieu : \t\t
Traque - "defausse [0-10]" CarteLieu : \t\t
....
lacherPrise() : Le traqué récupère ses pions Volonté et reprends en main toutes ses cartes Lieu défaussées.
Mais cet abandon de soi accélère l'assimilation.
exemple :
avant éxécution
[plantuml, exemple-avant-lacherPrise, png]
....
hide circle
skinparam monochrome true
class Plateau {
assimilation = 4
}
class Traque {
nom = "Trinity"
pions = 1
}
class CarteLieu1 {
nom = "LA PLAGE"
numero = 4
}
class CarteLieu2 {
nom = "LA JUNGLE"
numero = 2
}
class CarteLieu3 {
nom = "LA RIVIERE"
numero = 3
}
class CarteLieu4 {
nom = "L'ANTRE"
numero = 1
}
Traque -> "main " CarteLieu1 : \t\t
Traque --> "deffausse " CarteLieu2 : \t\t
Traque --> "deffausse " CarteLieu3 : \t\t
Traque --> "deffausse " CarteLieu4 : \t\t
....
après éxécution
[plantuml, exemple-apres-lacherPrise, png]
....
hide circle
skinparam monochrome true
class Plateau {
assimilation = 5
}
class Traque {
nom = "Trinity"
pions = 3
}
class CarteLieu1 {
nom = "LA PLAGE"
numero = 4
}
class CarteLieu2 {
nom = "LA JUNGLE"
numero = 2
}
class CarteLieu3 {
nom = "LA RIVIERE"
numero = 3
}
class CarteLieu4 {
nom = "L'ANTRE"
numero = 1
}
Traque -> "main " CarteLieu1 : \t\t
Traque --> "main " CarteLieu2 : \t\t
Traque --> "main " CarteLieu3 : \t\t
Traque --> "main " CarteLieu4 : \t\t
....
Le diagramme global :
[plantuml, diagramme-global, png]
....
hide circle
skinparam monochrome true
class Plateau
class Partie
class Joueur
class Traque
class Creature
class Carte
class CarteLieu
class CarteSurvie
class CarteTraque
class Pion
class PionSecour
class PionAssimilation
class Jeton
class JetonCreature
class JetonCible
class JetonArtemia
....
include::./use-cases/use-cases.adoc[]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment