-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmatrix.pu
More file actions
89 lines (78 loc) · 1.52 KB
/
matrix.pu
File metadata and controls
89 lines (78 loc) · 1.52 KB
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
@startuml
class Creature {
+void moveTo(int xPos, int yPos)
}
interface Sorter {
+void load(T[][] elements)
+void sort()
+String getPlan()
}
class SelectSorter {
-T[][] a
+void load(T[][] elements)
+void swap(int i, int j, int x, int y)
+void sort()
+String getPlan()
}
class Monster {
-int rank
+int compareTo(Monster obj)
+void swap(Monster another)
+int getrank()
}
class Thing {
-World world
-Tile<? extends Thing> tile;
-Color color
-char glyph
+int getX()
+int getY()
+void setTile(Tile<? extends Thing> tile)
+Color getColor() {
+char getGlyph()
}
class Tile{
-T thing;
-int xPos
-int yPos;
+T getThing()
+void setThing(T thing)
+int getxPos()
+void setxPos(int xPos)
+int getyPos()
+void setyPos(int yPos)
}
class Wall{
}
class Floor{
}
class World{
-Tile<Thing>[][] tiles
+Thing get(int x, int y)
+void put(Thing t, int x, int y)
}
interface Screen{
+void displayOutput(AsciiPanel terminal)
+Screen respondToUserInput(KeyEvent key)
}
class WorldScreen{
-World world
-Monster[][] monsMatrix
-String[] sortSteps
+void shufle(Monster[][] mat)
+String[] parsePlan(String plan)
+Monster getMonsByRank(Monster[][] mat, int rank)
+void displayOutput(AsciiPanel terminal)
+Screen respondToUserInput(KeyEvent key)
}
SelectSorter ..|> Sorter
Monster ..|> Creature
Creature ..|> Thing
Wall ..|> Thing
Floor ..|> Thing
Thing -->Tile:附属
WorldScreen ..|>Screen
Tile --> World: 被包含
World --> WorldScreen :被包含
Sorter --> WorldScreen :被调用
@enduml