-
Notifications
You must be signed in to change notification settings - Fork 0
/
UML_diagram.drawio
237 lines (237 loc) · 28.5 KB
/
UML_diagram.drawio
1
2
3
4
5
6
7
8
9
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
<mxfile host="Electron" modified="2024-03-16T00:02:49.448Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.1.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="6xXXrKr7LK4VqHrNqa0L" version="23.1.5" type="device">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1928" dy="1003" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-18" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Enum&gt;&gt;</i><br><b>Game</b><b style="background-color: initial;">State</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ you lose<br>+ Win</p><p style="margin:0px;margin-left:4px;">+ playing</p><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="780" y="390" width="190" height="100" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-19" value="Main" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="510" y="230" width="160" height="86" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-20" value="+ field: type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-19" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-21" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-19" vertex="1">
<mxGeometry y="52" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-22" value="+ method(type): type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-19" vertex="1">
<mxGeometry y="60" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-23" value="Cel" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="780" y="664" width="240" height="320" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-42" value="-neighbourMineNr<span style="background-color: initial;">: int</span>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="26" width="240" height="28" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-57" value="-xCoordinate: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="54" width="240" height="28" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-59" value="-yCoordinate: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="82" width="240" height="28" as="geometry" />
</mxCell>
<mxCell id="2Rxrx2gtLzDjUHHl7P1H-8" value="-cellState: CellState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="110" width="240" height="36" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-58" value="-myPlayingField: PlayingField" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="146" width="240" height="36" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-25" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="182" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-6" value="+getters()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-23" vertex="1">
<mxGeometry y="190" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-11" value="+setters()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-23">
<mxGeometry y="216" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-10" value="+getNeighbourMines(): ArrayList&lt;Cell&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-23">
<mxGeometry y="242" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-16" value="+CalculateNeighbourMines: void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-23">
<mxGeometry y="268" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-12" value="+open(): boolean" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-23">
<mxGeometry y="294" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-27" value="PlayingField" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="455" y="730" width="270" height="254" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-1" value="- Xdimension: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="26" width="270" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-2" value="- Ydimension: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="52" width="270" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-3" value="- NrMines: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="78" width="270" height="22" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-40" value="-FieldArray: ArrayList&lt;ArrayList&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="100" width="270" height="30" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-29" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="130" width="270" height="8" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-30" value="+RandomMines: void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="138" width="270" height="26" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-4" value="+openCell(int xCord, int yCord): boolean" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="164" width="270" height="30" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-5" value="+flag(int xCord, int yCord): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-27" vertex="1">
<mxGeometry y="194" width="270" height="30" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-8" value="+getNeighbourCells(Cell cell): ArrayList&lt;Cell&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-27">
<mxGeometry y="224" width="270" height="30" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-35" value="&nbsp;Visualizer" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="200" y="420" width="200" height="272" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-0" value="-myGameController: GameController" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-35" vertex="1">
<mxGeometry y="26" width="200" height="44" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-37" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-35" vertex="1">
<mxGeometry y="70" width="200" height="8" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-38" value="+DrawPlayingField(PlayingField): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-35" vertex="1">
<mxGeometry y="78" width="200" height="38" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-71" value="+getInput: String<div><br/></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-35" vertex="1">
<mxGeometry y="116" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-1" value="+getGameMode(): GameMode" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-35">
<mxGeometry y="142" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-2" value="+getCustom(): int[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-35">
<mxGeometry y="168" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-3" value="+printHelp(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-35">
<mxGeometry y="194" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-4" value="+printTitle(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-35">
<mxGeometry y="220" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-5" value="+askForCustom(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-35">
<mxGeometry y="246" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-48" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-27" target="NFtFXTmuyEwcGe3_4Hr9-23" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="635" y="644.5" as="sourcePoint" />
<mxPoint x="775" y="644.5" as="targetPoint" />
<Array as="points">
<mxPoint x="750" y="767" />
<mxPoint x="750" y="767" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-49" value="Model.EmptyCell" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1130" y="870" width="210" height="80" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-51" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-49" vertex="1">
<mxGeometry y="26" width="210" height="8" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-13" value="@override<br>+open(): boolean" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-49">
<mxGeometry y="34" width="210" height="46" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-53" value="Model.Bomb" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1130" y="780" width="160" height="34" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-55" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-53" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-60" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-23" target="NFtFXTmuyEwcGe3_4Hr9-27" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="880" y="820" as="sourcePoint" />
<mxPoint x="590.0222222222224" y="846" as="targetPoint" />
<Array as="points">
<mxPoint x="830" y="860" />
<mxPoint x="830" y="860" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-61" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-23" target="NFtFXTmuyEwcGe3_4Hr9-49" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="560" y="854" as="sourcePoint" />
<mxPoint x="720" y="854" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-62" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-23" target="NFtFXTmuyEwcGe3_4Hr9-53" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="560" y="854" as="sourcePoint" />
<mxPoint x="720" y="854" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-68" value="GameController" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="470" y="390" width="240" height="242" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-69" value="-gameState: GameState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-7" value="-myVisualizer" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-8" value="-myPlayingField" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="78" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-70" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="104" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-9" value="+getPlayingField" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="112" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-2" value="+buildPlayingField(<span style="background-color: initial;">): void</span>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="138" width="240" height="24" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-10" value="+nextStep():void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="162" width="240" height="20" as="geometry" />
</mxCell>
<mxCell id="iSGJ1RGGotwM2k6XSL8e-3" value="+judge(): GameState" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="NFtFXTmuyEwcGe3_4Hr9-68" vertex="1">
<mxGeometry y="182" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-14" value="+showAllMine(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="NFtFXTmuyEwcGe3_4Hr9-68">
<mxGeometry y="212" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-72" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-68" target="NFtFXTmuyEwcGe3_4Hr9-27" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="520" y="664" as="sourcePoint" />
<mxPoint x="680" y="664" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-76" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-68" target="NFtFXTmuyEwcGe3_4Hr9-35" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="380" y="610" as="sourcePoint" />
<mxPoint x="540" y="610" as="targetPoint" />
<Array as="points">
<mxPoint x="430" y="440" />
<mxPoint x="430" y="440" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-77" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-35" target="NFtFXTmuyEwcGe3_4Hr9-68" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="380" y="610" as="sourcePoint" />
<mxPoint x="540" y="610" as="targetPoint" />
<Array as="points">
<mxPoint x="430" y="470" />
<mxPoint x="430" y="470" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NFtFXTmuyEwcGe3_4Hr9-78" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="NFtFXTmuyEwcGe3_4Hr9-19" target="NFtFXTmuyEwcGe3_4Hr9-68" edge="1">
<mxGeometry x="-0.3514" y="-20" relative="1" as="geometry">
<mxPoint x="440" y="380" as="sourcePoint" />
<mxPoint x="600" y="380" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="2Rxrx2gtLzDjUHHl7P1H-0" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Enum&gt;&gt;</i><br><b style="background-color: initial;">CellState</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ Coverd<br>+ Revealed</p><p style="margin:0px;margin-left:4px;">+ Flaged</p><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="890" y="506" width="190" height="100" as="geometry" />
</mxCell>
<mxCell id="YhLjEzLNA6tBgtqfG-O4-0" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Enum&gt;&gt;</i><br><b style="background-color: initial;">GameMode</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;">+ Beginner<br>+ Intermidiate</p><p style="margin:0px;margin-left:4px;">+ Custom</p><p style="margin:0px;margin-left:4px;"><br></p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1000" y="390" width="190" height="100" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>