-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConceptClassDiagram.puml
93 lines (79 loc) · 1.31 KB
/
ConceptClassDiagram.puml
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
@startuml
class Node {
+ Neighbours : List<Node>
+ Base : int
- Occupant : Pawn
}
class Pawn {
+ Player : int
}
class Agent {
+ Pawns : List<Pawn>
+ Id : int
+ Color : Color
+ startBase : int
+ endBase : int
+ notify()
+ move()
}
class Player {
+ Owner : User
}
class User {
+ Ipadress : String
+ Id : int
+ listenerLoop : Thread
}
class Server {
+ users : List<User>
+ Broadcast(Message)
+ Send(User, Message)
+ Read(User) : Message
}
class GameManager {
+ board : Board
+ agents : List<Agent>
+ startGame()
+ notify()
+ move()
}
class ServerMain {
+ main()
+ gameManager : GameManager
+ server : Server
}
class Client {
+ connect(String, int)
+ send(Message)
+ read() : Message
}
class Message {
+ messageType : MessageType
}
enum MessageType {
+ STRING
+ COMMAND
}
class Board {
+ getNeighbours(Node) : List<Node>
+ isValid(Move) : bool
}
class ClassicBoard {
+ nodes : List<List<Node>>
}
ClassicBoard --|> Board
Player --|> Agent
Node -- Pawn
Player --> User
Agent --> Pawn
Agent --> Node
Server --> User
GameManager --> Board
GameManager --> Agent
Board --> Node
Message o-- MessageType
ServerMain --> GameManager
ServerMain --> Server
Client -- Message
Message -- Server
@enduml