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

avancements de la conception

parent 28c8a787
......@@ -145,7 +145,7 @@ ServeurNotAlone-->Albert:"message pour savoir ce qui c'est passé"
....
Dans la phase 3, on regarde si la carte lieu choisie par le traqué possede un jeton,
et en fonctions du jeton si il y en a un ou pas, le traque chosie si il veut recuperer une carte
et en fonction du jeton si il y en a un ou pas, le traqué choisie si il veut récuperer une carte
de sa defausse, utilisé l'effet de la carte lieu ou est obligé de faire quelque chose ou pas suivant
le jeton.
Et le ServeurNotAlone renvoie un message pour informer au traqué ce qui c'est passé.
......@@ -170,9 +170,7 @@ Creature_ClientWeb->ServeurNotAlone:piocherCarteTraque()
=== Diagrammes d'interfaces
Grâce aux diagrammes de séquences précédents, on peut en déduire plusieurs interfaces :
- deux interfaces pour ClientWeb :
Grâce aux diagrammes de séquences précédents, on peut en déduire une interface pour ClientWeb :
[plantuml]
......@@ -183,30 +181,24 @@ interface ClientWebIHM {
}
....
[plantuml]
....
interface ClientWebNotAlone {
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
}
....
- une interface pour le Serveur Not Alone :
[plantuml]
....
interface ServeurNotAlone {
play(id : Interger, name : String)
createGame(nbPlayer : Interger, extension : Boolean) : Integer
play(id : Integer, name : String)
createGame(nbPlayer : Integer, extension : Boolean) : Integer
retirerPion(nbPion : Integer)
reprendreCarte(nbCarte : Integer)
defausseCarte(card : CarteLieu
defausseCarte(card : CarteLieu)
avancerPionAssimilation()
poserJetonCreature(card : CarteLieu)
poserJetonCible(card1 : CarteLieu, card2 : CarteLieu)
poserJetonArtemia(card : CarteLieu)
recupererJeton()
piocherCarteTraque()
effet(CarteLieu)
effet(CarteLieu) : String
}
....
\ No newline at end of file
......@@ -96,20 +96,30 @@ partition Game::run() {
}
----
== Game Server
== ServeurNotAlone
.GameSever
.ServeurNotAlone
[plantuml]
....
interface GameServer {
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
interface ServeurNotAlone {
play(id : Integer, name : String)
createGame(nbPlayer : Integer, extension : Boolean) : Integer
retirerPion(nbPion : Integer)
reprendreCarte(nbCarte : Integer)
defausseCarte(card : CarteLieu)
avancerPionAssimilation()
poserJetonCreature(card : CarteLieu)
poserJetonCible(card1 : CarteLieu, card2 : CarteLieu)
poserJetonArtemia(card : CarteLieu)
recupererJeton()
piocherCarteTraque()
effet(CarteLieu) : String
}
package game {
class "GameServerController" as controller {
class "ServeurNotAloneController" as controller {
createGame(numberOfPlayers : Integer): Integer
join(gameId : Integer): Integer
play(id : Integer, name : String)
}
class "Game \n[Thread]" as game {
id : Integer {id}
......@@ -118,7 +128,7 @@ package game {
class "Player" as player {
id : Integer {id}
}
GameServer <|-- controller
ServeurNotAlone <|-- controller
controller *- "[*] games" game : \t\t\t
game *-- "[0..7] players" player
}
......@@ -136,12 +146,12 @@ state Game {
note right of Game : Uncompleted!
....
=== Opérations du GameServerController
=== Opérations du ServeurNotAloneController
.Create Game
[source,OCL]
----
GameServerController::createGame(numberOfPlayers : Integer): Integer
ServeurNotAloneController::createGame(numberOfPlayers : Integer): Integer
pre:
numberOfPlayers > 1 and numberOfPlayers <= 7
......@@ -150,10 +160,10 @@ post:
game.oclinState(Created)
----
.Join Game
.Play Game
[source,OCL]
----
GameServerController::join(gameId : Integer): Integer
ServeurNotAloneController::play(id : Integer, name : String)
pre:
self.games -> exists(each | each.id = gameId)
post:
......@@ -161,6 +171,111 @@ post:
game.players->exists(each| each.isOclNew())
----
.Retirer Pion
//TODO
[source,OCL]
----
ServeurNotAloneController::retirerPion(nbPion : Integer)
pre:
nbPion > 0 and nbPion <= 3
----
. Reprendre Carte
//TODO
[source,OCL]
----
ServeurNotAloneController::reprendreCarte(nbCarte : Integer)
pre:
nbCarte == 2 || nbCarte == 4 || nbCarte == self.defausse.size
post:
self.defausse.size -> defausse@pre.size - nbCarte
----
. Defausse Carte
//TODO
[source,OCL]
----
ServeurNotAloneController::defausseCarte(card : CarteLieu)
pre:
card "appartient pas" defausse
post:
card "appartient" defausse
----
. Avancer Pion Assimilation
//TODO
[source,OCL]
----
ServeurNotAloneController::avancerPionAssimilation()
pre:
self.pionAssimilation > 0
post:
self.pionAssimilation == pionAssimilation@pre - 1
----
. Poser Jeton Creature
//TODO
[source,OCL]
----
ServeurNotAloneController::poserJetonCreature(card : CarteLieu)
pre:
self.carteLieu == null --regarde dans si le jeton creature n'est pas deja sur une carte lieu
post:
self.carteLieu != null
----
. Poser Jeton Cible
//TODO
[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
post:
self.carteLieu != null
----
. Poser Jeton Artemia
//TODO
[source,OCL]
----
ServeurNotAloneController::poserJetonArtemia(card : CarteLieu)
pre:
self.carteLieu == null --regarde dans si le jeton creature n'est pas deja sur une carte lieu
post:
self.carteLieu != null
----
. Recuperer Jeton
//TODO
[source,OCL]
----
ServeurNotAloneController::recupererJeton()
post:
sefl.carteLieu == null --regarde dans si le jeton creature n'est pas sur une carte lieu
sefl.carteLieu == null --regarde dans si le jeton cible n'est pas sur une carte lieu
sefl.carteLieu == null --regarde dans si le jeton atemia n'est pas sur une carte lieu
----
. Piocher Carte Traque
//TODO
[source,OCL]
----
ServeurNotAloneController::piocherCarteTraque()
post:
self.carteTraque.size -> 3
----
. Effet
//TODO
[source,OCL]
----
ServeurNotAloneController::effet(Carte) : String
pre:
post:
--l'effet voulue a été effectué
----
.Start Game
[plantuml]
----
......
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