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

ocl

parent b0d4b2e6
......@@ -33,6 +33,7 @@ class CarteSurvie {
}
class CarteTraque {
symbole : Jeton
}
Carte <|-- CarteLieu : \t\t
......@@ -116,9 +117,34 @@ CarteLieu --> CarteLieu10 : \t\t
*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.
_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 :*
......@@ -139,12 +165,14 @@ class Joueur {
}
class Creature {
jetonTraque : Jeton
jetonCreature : Jeton
jetonCible : Jeton
jetonArtemia : Jeton
carteTraque : ArrayList<Carte>
}
class Traque {
jetonVolonte : Jeton
pionVolonte : Integer
carteLieu : ArrayList<Carte>
carteSurvie : ArrayList<Carte>
}
......
:source-highlighter: rouge
= Conception détaillée
//:source-highlighter: rouge
......@@ -151,7 +153,7 @@ note right of Game : Uncompleted!
.Create Game
[source,OCL]
----
ServeurNotAloneController::createGame(numberOfPlayers : Integer): Integer
context : ServeurNotAloneController::createGame(numberOfPlayers : Integer): Integer
pre:
numberOfPlayers > 1 and numberOfPlayers <= 7
......@@ -163,7 +165,7 @@ post:
.Play Game
[source,OCL]
----
ServeurNotAloneController::play(id : Integer, name : String)
context : ServeurNotAloneController::play(id : Integer, name : String)
pre:
self.games -> exists(each | each.id = gameId)
post:
......@@ -172,18 +174,20 @@ post:
----
.Retirer Pion
//TODO
[source,OCL]
//TODO est ce que le contexte est bien ServeurNotAloneController
----
ServeurNotAloneController::retirerPion(nbPion : Integer)
context : ServeurNotAloneController::retirerPion(nbPion : Integer)
pre:
nbPion > 0 and nbPion <= 3
post:
self.pionVolonte = self.pionVolonte@pre - nbPion
----
. Reprendre Carte
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::reprendreCarte(nbCarte : Integer)
context : ServeurNotAloneController::reprendreCarte(nbCarte : Integer)
pre:
nbCarte == 2 || nbCarte == 4 || nbCarte == self.defausse.size
post:
......@@ -191,62 +195,62 @@ post:
----
. Defausse Carte
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::defausseCarte(card : CarteLieu)
context : ServeurNotAloneController::defausseCarte(card : CarteLieu)
pre:
card "appartient pas" defausse
defausse->exists( each : CarteLieu | each.noms != card.noms)
post:
card "appartient" defausse
defausse->exists( each : CarteLieu | each.noms = card.noms)
----
. Avancer Pion Assimilation
//TODO
[source,OCL]
//TODO est ce que le contexte est bien ServeurNotAloneController
----
ServeurNotAloneController::avancerPionAssimilation()
context : ServeurNotAloneController::avancerPionAssimilation()
pre:
self.pionAssimilation > 0
post:
self.pionAssimilation == pionAssimilation@pre - 1
self.pionAssimilation == self.pionAssimilation@pre - 1
----
. Poser Jeton Creature
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::poserJetonCreature(card : CarteLieu)
context : ServeurNotAloneController::poserJetonCreature(card : CarteLieu)
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:
self.carteLieu != null
self.position->exists( each : CarteLieu | each.noms = card.noms)
----
. Poser Jeton Cible
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::poserJetonCible(card1 : CarteLieu, card2 : CarteLieu)
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:
self.carteLieu != null
self.position->exists( each : CarteLieu | each = card1) and self.position->exists( each : CarteLieu | each = card2)
----
. Poser Jeton Artemia
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::poserJetonArtemia(card : CarteLieu)
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:
self.carteLieu != null
self.position->exists( each : CarteLieu | each.noms = card.noms)
----
. Recuperer Jeton
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::recupererJeton()
......@@ -257,16 +261,16 @@ post:
----
. Piocher Carte Traque
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
ServeurNotAloneController::piocherCarteTraque()
post:
self.carteTraque.size -> 3
self.carteTraque.size = 3
----
. Effet
//TODO
//TODO est ce que le contexte est bien ServeurNotAloneController
[source,OCL]
----
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