Commit bda658c3 authored by Antoine Guérin's avatar Antoine Guérin
Browse files

ocl

parent b0d4b2e6
...@@ -33,6 +33,7 @@ class CarteSurvie { ...@@ -33,6 +33,7 @@ class CarteSurvie {
} }
class CarteTraque { class CarteTraque {
symbole : Jeton
} }
Carte <|-- CarteLieu : \t\t Carte <|-- CarteLieu : \t\t
...@@ -116,9 +117,34 @@ CarteLieu --> CarteLieu10 : \t\t ...@@ -116,9 +117,34 @@ CarteLieu --> CarteLieu10 : \t\t
*Composante Jeton :* *Composante Jeton :*
La composante Jeton, définit les jetons Traque. La composante Jeton définit les jetons Traque. Il y a 3 types de jetons dans le jeu : le jeton Créature, le jeton Cible et le jeton Artemia
Un jeton possède un nom et un état. L'état indique si le jeton est présent sur une carte. Un jeton possède un nom et un état. L'état indique si le jeton est présent sur une carte.
_La classe Jeton_
[plantuml, Composante-Jeton, png]
....
hide circle
skinparam monochrome true
class Jeton {
ArrayList<CarteLieu> position;
}
class JetonCible {
}
class JetonArtemia {
}
class JetonCreature {
}
Jeton <|-- JetonCreature : \t\t
Jeton <|-- JetonCible : \t\t
Jeton <|-- JetonAtemia : \t\t
....
*Composante Joueur :* *Composante Joueur :*
...@@ -139,12 +165,14 @@ class Joueur { ...@@ -139,12 +165,14 @@ class Joueur {
} }
class Creature { class Creature {
jetonTraque : Jeton jetonCreature : Jeton
jetonCible : Jeton
jetonArtemia : Jeton
carteTraque : ArrayList<Carte> carteTraque : ArrayList<Carte>
} }
class Traque { class Traque {
jetonVolonte : Jeton pionVolonte : Integer
carteLieu : ArrayList<Carte> carteLieu : ArrayList<Carte>
carteSurvie : ArrayList<Carte> carteSurvie : ArrayList<Carte>
} }
......
:source-highlighter: rouge
= Conception détaillée = Conception détaillée
//:source-highlighter: rouge //:source-highlighter: rouge
...@@ -151,7 +153,7 @@ note right of Game : Uncompleted! ...@@ -151,7 +153,7 @@ note right of Game : Uncompleted!
.Create Game .Create Game
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::createGame(numberOfPlayers : Integer): Integer context : ServeurNotAloneController::createGame(numberOfPlayers : Integer): Integer
pre: pre:
numberOfPlayers > 1 and numberOfPlayers <= 7 numberOfPlayers > 1 and numberOfPlayers <= 7
...@@ -163,7 +165,7 @@ post: ...@@ -163,7 +165,7 @@ post:
.Play Game .Play Game
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::play(id : Integer, name : String) context : ServeurNotAloneController::play(id : Integer, name : String)
pre: pre:
self.games -> exists(each | each.id = gameId) self.games -> exists(each | each.id = gameId)
post: post:
...@@ -172,18 +174,20 @@ post: ...@@ -172,18 +174,20 @@ post:
---- ----
.Retirer Pion .Retirer Pion
//TODO
[source,OCL] [source,OCL]
//TODO est ce que le contexte est bien ServeurNotAloneController
---- ----
ServeurNotAloneController::retirerPion(nbPion : Integer) context : ServeurNotAloneController::retirerPion(nbPion : Integer)
pre: pre:
nbPion > 0 and nbPion <= 3 nbPion > 0 and nbPion <= 3
post:
self.pionVolonte = self.pionVolonte@pre - nbPion
---- ----
. Reprendre Carte . Reprendre Carte
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::reprendreCarte(nbCarte : Integer) context : ServeurNotAloneController::reprendreCarte(nbCarte : Integer)
pre: pre:
nbCarte == 2 || nbCarte == 4 || nbCarte == self.defausse.size nbCarte == 2 || nbCarte == 4 || nbCarte == self.defausse.size
post: post:
...@@ -191,62 +195,62 @@ post: ...@@ -191,62 +195,62 @@ post:
---- ----
. Defausse Carte . Defausse Carte
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::defausseCarte(card : CarteLieu) context : ServeurNotAloneController::defausseCarte(card : CarteLieu)
pre: pre:
card "appartient pas" defausse defausse->exists( each : CarteLieu | each.noms != card.noms)
post: post:
card "appartient" defausse defausse->exists( each : CarteLieu | each.noms = card.noms)
---- ----
. Avancer Pion Assimilation . Avancer Pion Assimilation
//TODO
[source,OCL] [source,OCL]
//TODO est ce que le contexte est bien ServeurNotAloneController
---- ----
ServeurNotAloneController::avancerPionAssimilation() context : ServeurNotAloneController::avancerPionAssimilation()
pre: pre:
self.pionAssimilation > 0 self.pionAssimilation > 0
post: post:
self.pionAssimilation == pionAssimilation@pre - 1 self.pionAssimilation == self.pionAssimilation@pre - 1
---- ----
. Poser Jeton Creature . Poser Jeton Creature
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::poserJetonCreature(card : CarteLieu) context : ServeurNotAloneController::poserJetonCreature(card : CarteLieu)
pre: pre:
self.carteLieu == null --regarde dans si le jeton creature n'est pas deja sur une carte lieu self.position == null --regarde dans si le jeton creature n'est pas deja sur une carte lieu
post: post:
self.carteLieu != null self.position->exists( each : CarteLieu | each.noms = card.noms)
---- ----
. Poser Jeton Cible . Poser Jeton Cible
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::poserJetonCible(card1 : CarteLieu, card2 : CarteLieu) ServeurNotAloneController::poserJetonCible(card1 : CarteLieu, card2 : CarteLieu)
pre: pre:
self.carteLieu == null --regarde dans si le jeton creature n'est pas deja sur une carte lieu self.position == null --regarde dans si le jeton cible n'est pas deja sur une carte lieu
post: post:
self.carteLieu != null self.position->exists( each : CarteLieu | each = card1) and self.position->exists( each : CarteLieu | each = card2)
---- ----
. Poser Jeton Artemia . Poser Jeton Artemia
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::poserJetonArtemia(card : CarteLieu) ServeurNotAloneController::poserJetonArtemia(card : CarteLieu)
pre: pre:
self.carteLieu == null --regarde dans si le jeton creature n'est pas deja sur une carte lieu self.position == null --regarde dans si le jeton artemia n'est pas deja sur une carte lieu
post: post:
self.carteLieu != null self.position->exists( each : CarteLieu | each.noms = card.noms)
---- ----
. Recuperer Jeton . Recuperer Jeton
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::recupererJeton() ServeurNotAloneController::recupererJeton()
...@@ -257,16 +261,16 @@ post: ...@@ -257,16 +261,16 @@ post:
---- ----
. Piocher Carte Traque . Piocher Carte Traque
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::piocherCarteTraque() ServeurNotAloneController::piocherCarteTraque()
post: post:
self.carteTraque.size -> 3 self.carteTraque.size = 3
---- ----
. Effet . Effet
//TODO //TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL] [source,OCL]
---- ----
ServeurNotAloneController::effet(Carte) : String ServeurNotAloneController::effet(Carte) : String
......
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