1
<mxfile host="Electron" modified="2024-06-08T22:58:55.171Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.4.8 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="-H_xyJLhD-lssm_f8h7x" version="24.3.1" type="device" pages="3">
2
<diagram name="Модель0" id="PSo5lxhLaGdxoonGxV5A">
3
<mxGraphModel dx="989" dy="598" 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">
5
<mxCell id="nljYCok0-ooKxELgfdE3-0" />
6
<mxCell id="nljYCok0-ooKxELgfdE3-1" parent="nljYCok0-ooKxELgfdE3-0" />
7
<mxCell id="nljYCok0-ooKxELgfdE3-2" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Combat</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;"></p><p style="margin:0px;margin-left:4px;">+ fight(): void</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" parent="nljYCok0-ooKxELgfdE3-1" vertex="1">
8
<mxGeometry x="120" y="220" width="161" height="80" as="geometry" />
10
<mxCell id="nljYCok0-ooKxELgfdE3-6" value="TurnBasedCombat" style="html=1;whiteSpace=wrap;" parent="nljYCok0-ooKxELgfdE3-1" vertex="1">
11
<mxGeometry x="145.5" y="380" width="110" height="50" as="geometry" />
13
<mxCell id="nljYCok0-ooKxELgfdE3-7" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="nljYCok0-ooKxELgfdE3-1" source="nljYCok0-ooKxELgfdE3-6" target="nljYCok0-ooKxELgfdE3-2" edge="1">
14
<mxGeometry width="160" relative="1" as="geometry">
15
<mxPoint x="510" y="430" as="sourcePoint" />
16
<mxPoint x="510" y="330" as="targetPoint" />
22
<diagram id="1nCWIih4iLnoj9AcKRX4" name="Пошаговый бой">
23
<mxGraphModel dx="1195" dy="723" 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">
26
<mxCell id="1" parent="0" />
27
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-1" value="TurnBasedCombat::fight" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;" parent="1" vertex="1">
28
<mxGeometry x="280" y="40" width="160" height="30" as="geometry" />
30
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-2" value="return" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;whiteSpace=wrap;" parent="1" vertex="1">
31
<mxGeometry x="500" y="340" width="120" height="38" as="geometry" />
33
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-3" value="?" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" parent="1" vertex="1">
34
<mxGeometry x="310" y="210" width="100" height="40" as="geometry" />
36
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-6" value="isDone" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#FFCCCC;" parent="1" vertex="1">
37
<mxGeometry x="300" y="130" width="120" height="50" as="geometry" />
39
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-7" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="MZdGQsdxbVsBHnpd0-Sr-8" target="MZdGQsdxbVsBHnpd0-Sr-1" edge="1">
40
<mxGeometry width="50" height="50" relative="1" as="geometry">
41
<mxPoint x="370" y="350" as="sourcePoint" />
42
<mxPoint x="420" y="300" as="targetPoint" />
45
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-9" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="MZdGQsdxbVsBHnpd0-Sr-6" target="MZdGQsdxbVsBHnpd0-Sr-8" edge="1">
46
<mxGeometry width="50" height="50" relative="1" as="geometry">
47
<mxPoint x="360" y="130" as="sourcePoint" />
48
<mxPoint x="360" y="80" as="targetPoint" />
51
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-8" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" parent="1" vertex="1">
52
<mxGeometry x="350" y="91" width="20" height="20" as="geometry" />
54
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-10" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="MZdGQsdxbVsBHnpd0-Sr-3" target="MZdGQsdxbVsBHnpd0-Sr-6" edge="1">
55
<mxGeometry width="50" height="50" relative="1" as="geometry">
56
<mxPoint x="370" y="350" as="sourcePoint" />
57
<mxPoint x="420" y="300" as="targetPoint" />
60
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-11" value="whoIsWin" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#FFCCCC;" parent="1" vertex="1">
61
<mxGeometry x="500" y="260" width="120" height="50" as="geometry" />
63
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-12" value="да" style="endArrow=none;html=1;rounded=0;" parent="1" source="MZdGQsdxbVsBHnpd0-Sr-11" target="MZdGQsdxbVsBHnpd0-Sr-3" edge="1">
64
<mxGeometry width="50" height="50" relative="1" as="geometry">
65
<mxPoint x="370" y="350" as="sourcePoint" />
66
<mxPoint x="420" y="300" as="targetPoint" />
68
<mxPoint x="560" y="230" />
72
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-14" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="MZdGQsdxbVsBHnpd0-Sr-2" target="MZdGQsdxbVsBHnpd0-Sr-11" edge="1">
73
<mxGeometry width="50" height="50" relative="1" as="geometry">
74
<mxPoint x="370" y="350" as="sourcePoint" />
75
<mxPoint x="420" y="300" as="targetPoint" />
78
<mxCell id="MZdGQsdxbVsBHnpd0-Sr-15" value="<span style="text-align: left;">generateStepQueue</span>" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#FFCCCC;" parent="1" vertex="1">
79
<mxGeometry x="280" y="290" width="160" height="50" as="geometry" />
81
<mxCell id="pnkp0sYTP4hF-t4ka3FU-1" value="нет" style="endArrow=none;html=1;rounded=0;" parent="1" source="MZdGQsdxbVsBHnpd0-Sr-15" target="MZdGQsdxbVsBHnpd0-Sr-3" edge="1">
82
<mxGeometry width="50" height="50" relative="1" as="geometry">
83
<mxPoint x="370" y="220" as="sourcePoint" />
84
<mxPoint x="370" y="190" as="targetPoint" />
87
<mxCell id="pnkp0sYTP4hF-t4ka3FU-3" value="Для каждого элемента очереди ходов" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
88
<mxGeometry x="300" y="370" width="120" height="60" as="geometry" />
90
<mxCell id="pnkp0sYTP4hF-t4ka3FU-4" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="pnkp0sYTP4hF-t4ka3FU-3" target="MZdGQsdxbVsBHnpd0-Sr-15" edge="1">
91
<mxGeometry width="50" height="50" relative="1" as="geometry">
92
<mxPoint x="370" y="350" as="sourcePoint" />
93
<mxPoint x="420" y="300" as="targetPoint" />
96
<mxCell id="pnkp0sYTP4hF-t4ka3FU-5" value="<span style="text-align: left;">produceStep</span>" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#FFCCCC;" parent="1" vertex="1">
97
<mxGeometry x="300" y="460" width="120" height="50" as="geometry" />
99
<mxCell id="RQIT36GuvERs-gLC_Y0F-1" value="" style="endArrow=none;html=1;rounded=0;" parent="1" source="pnkp0sYTP4hF-t4ka3FU-5" target="pnkp0sYTP4hF-t4ka3FU-3" edge="1">
100
<mxGeometry width="50" height="50" relative="1" as="geometry">
101
<mxPoint x="370" y="380" as="sourcePoint" />
102
<mxPoint x="370" y="340" as="targetPoint" />
105
<mxCell id="RQIT36GuvERs-gLC_Y0F-2" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="pnkp0sYTP4hF-t4ka3FU-5" target="pnkp0sYTP4hF-t4ka3FU-3" edge="1">
106
<mxGeometry width="50" height="50" relative="1" as="geometry">
107
<mxPoint x="370" y="340" as="sourcePoint" />
108
<mxPoint x="420" y="290" as="targetPoint" />
110
<mxPoint x="360" y="540" />
111
<mxPoint x="260" y="540" />
112
<mxPoint x="260" y="400" />
116
<mxCell id="RQIT36GuvERs-gLC_Y0F-3" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="pnkp0sYTP4hF-t4ka3FU-3" target="MZdGQsdxbVsBHnpd0-Sr-8" edge="1">
117
<mxGeometry width="50" height="50" relative="1" as="geometry">
118
<mxPoint x="370" y="350" as="sourcePoint" />
119
<mxPoint x="420" y="300" as="targetPoint" />
121
<mxPoint x="460" y="400" />
122
<mxPoint x="460" y="570" />
123
<mxPoint x="230" y="570" />
124
<mxPoint x="230" y="101" />
131
<diagram name="Модель предметной области" id="TC__cJ8iURmWjpv387xy">
132
<mxGraphModel dx="1434" dy="867" 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">
135
<mxCell id="1" parent="0" />
136
<mxCell id="MMInLG1YmEr55SQtVWD0-1" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Combat</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;"></p><p style="margin:0px;margin-left:4px;">+ fight(Rules): void</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" parent="1" vertex="1">
137
<mxGeometry x="120" y="220" width="161" height="80" as="geometry" />
139
<mxCell id="MMInLG1YmEr55SQtVWD0-2" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Rules</b></p><hr size="1" style="border-style:solid;"><p style="margin:0px;margin-left:4px;"></p><p style="margin:0px;margin-left:4px;">+ isDone(): bool</p><p style="margin:0px;margin-left:4px;">+ generateStepQueue(): StepQueue_SW</p><p style="margin:0px;margin-left:4px;">+ produceStep(squad_index, warior_index): void</p><p style="margin:0px;margin-left:4px;">+ whoIsWin(): squad_index</p>" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fillColor=#FFCCCC;" parent="1" vertex="1">
140
<mxGeometry x="400" y="200" width="280" height="120" as="geometry" />
142
<mxCell id="MMInLG1YmEr55SQtVWD0-3" value="SimpleRules" style="html=1;whiteSpace=wrap;" parent="1" vertex="1">
143
<mxGeometry x="485" y="400" width="110" height="50" as="geometry" />
145
<mxCell id="MMInLG1YmEr55SQtVWD0-4" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="1" source="MMInLG1YmEr55SQtVWD0-3" target="MMInLG1YmEr55SQtVWD0-2" edge="1">
146
<mxGeometry width="160" relative="1" as="geometry">
147
<mxPoint x="350" y="370" as="sourcePoint" />
148
<mxPoint x="510" y="370" as="targetPoint" />
151
<mxCell id="MMInLG1YmEr55SQtVWD0-5" value="TurnBasedCombat" style="html=1;whiteSpace=wrap;" parent="1" vertex="1">
152
<mxGeometry x="145.5" y="400" width="110" height="50" as="geometry" />
154
<mxCell id="MMInLG1YmEr55SQtVWD0-6" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="1" source="MMInLG1YmEr55SQtVWD0-5" target="MMInLG1YmEr55SQtVWD0-1" edge="1">
155
<mxGeometry width="160" relative="1" as="geometry">
156
<mxPoint x="510" y="430" as="sourcePoint" />
157
<mxPoint x="510" y="330" as="targetPoint" />
160
<mxCell id="MMInLG1YmEr55SQtVWD0-8" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;" parent="1" source="MMInLG1YmEr55SQtVWD0-1" target="MMInLG1YmEr55SQtVWD0-2" edge="1">
161
<mxGeometry width="160" relative="1" as="geometry">
162
<mxPoint x="350" y="370" as="sourcePoint" />
163
<mxPoint x="510" y="370" as="targetPoint" />