composants.adoc 4.26 KB
Newer Older
Gerson Sunyé's avatar
Gerson Sunyé committed
1
= Conception préliminaire
2

3

4
5
6
7
8
9
== Diagrammes de séquences

[.lead]
*Création d'ue partie*

exemple du prof :
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

.Join game
[plantuml]
....
participant "__one:Player__" as player1
participant "__two:Player__" as player2
participant "__three:Player__" as player3
participant "__four:Player__" as player4
participant "__five:Player__" as player5
participant "__six:Player__" as player6
participant "__game:GameServer__" as game

player1 -> game : id := createGame(6)
par
    player1 -> game : playerId := join(id, one)
    player2 -> game : playerId := join(id, two)
    player3 -> game : playerId := join(id, three)
    player4 -> game : playerId := join(id, four)
    player5 -> game : playerId := join(id, five)
    player6 -> game : playerId := join(id, six)
end
....

.Questions ouveres (à faire)
- Les joeurs ne peuvent pas envcoyer juste une `id`, ils doivent aussi envoyer une adress/port pour que le serveur puisse les contacter
- Le serveur doit prévenir les joueurs du début de la partie.

.L'interface GameServer
[plantuml]
....
interface GameServer {
    createGame(numberOfPlayers : Integer): Integer
    join(gameId : Integer): Integer
}
....


notre conception


50
[.lead]
51
*Diagramme de séquences de la connexion des joueurs à une partie :*
52
53
54
55
56
57
58

[plantuml, diag-seq-connect, png]
....
skinparam monochrome true
skinparam dpi 400

actor Albert
59
actor Caroline
60
actor Stéphanie
61

62
participant ServeurNotAlone
63

64

65
Albert->ServeurNotAlone: id := createGame(3,false)
66

67
Albert->ServeurNotAlone: play(id,"Albert")
68

69
Caroline->ServeurNotAlone: play(id,"Caroline")
70

71
Stéphanie->ServeurNotAlone: play(id,"Stephhanie")
72

73
74
75
76
77
78
79
....

[.lead]
*Diagrammes de séquences de la partie*

Diagramme de séquence pour la phase 1 :

80

81
82
83
84
85
86
87
[plantuml, diag-seq-phase1, png]
....
skinparam monochrome true
skinparam dpi 400

actor Albert

88
89
90
91
92
93
94
95
96
97
98
99
participant ClientWeb
participant ServeurNotAlone
participant Caroline_ClientWeb

actor Caroline

Albert->ClientWeb: resister(nbPions)
ClientWeb->ServeurNotAlone: retirerPion(nbPions)
ClientWeb->ServeurNotAlone: reprendreCarte(nbPions*2)
ServeurNotAlone->Albert: choisirCarte()
Albert-->ServeurNotAlone: CarteLieu

100

101
102
103
104
105
106
107
108
Albert->ClientWeb: jouerCarte(CarteLieu)

Caroline->Caroline_ClientWeb:lacherPrise()
Caroline_ClientWeb->ServeurNotAlone:recupererPion(nbPions)
Caroline_ClientWeb->ServeurNotAlone:reprendreCarte(defausse.size())
Caroline_ClientWeb->ServeurNotAlone:avancerPionAssimilation()

Caroline->Caroline_ClientWeb: jouerCarte(CarteLieu)
109
110
111


....
Anthony ROZEN's avatar
Anthony ROZEN committed
112
113
114
115
116
117
118
119
120
121
122
123

Diagramme de séquence pour la phase 2 :

[plantuml, diag-seq-phase2, png]
....
skinparam monochrome true
skinparam dpi 400

actor Creature

participant ServeurNotAlone

124
125
126
Creature->ServeurNotAlone:poserJetonCreature(CarteLieu)
Creature->ServeurNotAlone:poserJetonCible(CarteLieu)
Creature->ServeurNotAlone:poserJetonArtemia(CarteLieu)
Anthony ROZEN's avatar
Anthony ROZEN committed
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
....

Diagramme de séquence pour la phase 3 :

[plantuml, diag-seq-phase3, png]
....
skinparam monochrome true
skinparam dpi 400

actor Albert

participant ClientWeb
participant ServeurNotAlone
participant Caroline_ClientWeb

actor Caroline

144
145


Anthony ROZEN's avatar
Anthony ROZEN committed
146
147
....

148
149


Anthony ROZEN's avatar
Anthony ROZEN committed
150
151
152
153
154
155
156
Diagramme de séquence pour la phase 4 :

[plantuml, diag-seq-phase4, png]
....
skinparam monochrome true
skinparam dpi 400

157
participant Traqué_ClientWeb
Anthony ROZEN's avatar
Anthony ROZEN committed
158
159
160
161
participant ServeurNotAlone
participant Creature_ClientWeb


162
Traqué_ClientWeb->ServeurNotAlone:defausseCarte(CarteLieu)
Anthony ROZEN's avatar
Anthony ROZEN committed
163
164
165
166
167
Creature_ClientWeb->ServeurNotAlone:recupererJeton()
Creature_ClientWeb->ServeurNotAlone:piocherCarteTraque()

....

168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
=== Diagrammes d'interfaces

Grâce aux diagrammes de séquences précédents, on peut en déduire plusieurs interfaces :

- deux interfaces pour ClientWeb :


[plantuml]
....
interface ClientWebIHM {
    resister(nbPions : Integer)
    lacherPrise()
}
....

[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
    retirerPion(nbPion : Integer)
    reprendreCarte(nbCarte : Integer)
    defausseCarte(card : CarteLieu
    avancerPionAssimilation()
    poserJetonCreature(card : CarteLieu)
    poserJetonCible(card1 : CarteLieu, card2 : CarteLieu)
    poserJetonArtemia(card : CarteLieu)
    recupererJeton()
    piocherCarteTraque()
}
....