first commit
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
env/
|
BIN
contrib/cast 1.jpg
Normal file
After Width: | Height: | Size: 14 MiB |
BIN
contrib/cast 2.jpg
Normal file
After Width: | Height: | Size: 14 MiB |
BIN
contrib/cast 3.jpg
Normal file
After Width: | Height: | Size: 14 MiB |
BIN
contrib/cast 4.jpg
Normal file
After Width: | Height: | Size: 14 MiB |
468
contrib/connections.txt
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
108 115 water
|
||||||
|
115 157 water
|
||||||
|
157 194 water
|
||||||
|
1 46 underground
|
||||||
|
13 46 underground
|
||||||
|
13 67 underground
|
||||||
|
13 89 underground
|
||||||
|
46 74 underground
|
||||||
|
46 79 underground
|
||||||
|
67 79 underground
|
||||||
|
67 89 underground
|
||||||
|
67 111 underground
|
||||||
|
79 93 underground
|
||||||
|
79 111 underground
|
||||||
|
89 128 underground
|
||||||
|
89 140 underground
|
||||||
|
111 153 underground
|
||||||
|
111 163 underground
|
||||||
|
128 140 underground
|
||||||
|
128 185 underground
|
||||||
|
140 153 underground
|
||||||
|
153 163 underground
|
||||||
|
153 185 underground
|
||||||
|
1 46 bus
|
||||||
|
1 58 bus
|
||||||
|
3 22 bus
|
||||||
|
3 23 bus
|
||||||
|
7 42 bus
|
||||||
|
13 14 bus
|
||||||
|
13 23 bus
|
||||||
|
13 52 bus
|
||||||
|
14 15 bus
|
||||||
|
15 29 bus
|
||||||
|
15 41 bus
|
||||||
|
22 23 bus
|
||||||
|
22 34 bus
|
||||||
|
22 65 bus
|
||||||
|
23 67 bus
|
||||||
|
29 41 bus
|
||||||
|
29 42 bus
|
||||||
|
29 55 bus
|
||||||
|
34 46 bus
|
||||||
|
34 63 bus
|
||||||
|
41 52 bus
|
||||||
|
41 87 bus
|
||||||
|
42 72 bus
|
||||||
|
46 58 bus
|
||||||
|
46 78 bus
|
||||||
|
52 67 bus
|
||||||
|
52 86 bus
|
||||||
|
55 89 bus
|
||||||
|
58 74 bus
|
||||||
|
58 77 bus
|
||||||
|
63 65 bus
|
||||||
|
63 79 bus
|
||||||
|
63 100 bus
|
||||||
|
65 67 bus
|
||||||
|
65 82 bus
|
||||||
|
67 82 bus
|
||||||
|
67 102 bus
|
||||||
|
72 105 bus
|
||||||
|
72 107 bus
|
||||||
|
74 94 bus
|
||||||
|
77 78 bus
|
||||||
|
77 94 bus
|
||||||
|
77 124 bus
|
||||||
|
78 79 bus
|
||||||
|
82 100 bus
|
||||||
|
82 140 bus
|
||||||
|
86 87 bus
|
||||||
|
86 102 bus
|
||||||
|
86 116 bus
|
||||||
|
87 105 bus
|
||||||
|
89 105 bus
|
||||||
|
93 94 bus
|
||||||
|
100 111 bus
|
||||||
|
102 127 bus
|
||||||
|
105 107 bus
|
||||||
|
105 108 bus
|
||||||
|
107 161 bus
|
||||||
|
108 116 bus
|
||||||
|
108 135 bus
|
||||||
|
111 124 bus
|
||||||
|
116 127 bus
|
||||||
|
116 142 bus
|
||||||
|
122 123 bus
|
||||||
|
122 144 bus
|
||||||
|
123 124 bus
|
||||||
|
123 144 bus
|
||||||
|
123 165 bus
|
||||||
|
124 153 bus
|
||||||
|
127 133 bus
|
||||||
|
128 135 bus
|
||||||
|
128 142 bus
|
||||||
|
128 161 bus
|
||||||
|
128 187 bus
|
||||||
|
128 199 bus
|
||||||
|
133 140 bus
|
||||||
|
133 157 bus
|
||||||
|
135 161 bus
|
||||||
|
140 154 bus
|
||||||
|
140 156 bus
|
||||||
|
142 157 bus
|
||||||
|
144 163 bus
|
||||||
|
153 154 bus
|
||||||
|
153 180 bus
|
||||||
|
153 184 bus
|
||||||
|
154 156 bus
|
||||||
|
156 157 bus
|
||||||
|
156 184 bus
|
||||||
|
157 185 bus
|
||||||
|
161 199 bus
|
||||||
|
163 176 bus
|
||||||
|
163 191 bus
|
||||||
|
165 180 bus
|
||||||
|
165 191 bus
|
||||||
|
176 190 bus
|
||||||
|
180 184 bus
|
||||||
|
180 190 bus
|
||||||
|
184 185 bus
|
||||||
|
185 187 bus
|
||||||
|
190 191 bus
|
||||||
|
1 8 taxi
|
||||||
|
1 9 taxi
|
||||||
|
2 10 taxi
|
||||||
|
2 20 taxi
|
||||||
|
3 4 taxi
|
||||||
|
3 11 taxi
|
||||||
|
3 12 taxi
|
||||||
|
4 13 taxi
|
||||||
|
5 15 taxi
|
||||||
|
5 16 taxi
|
||||||
|
6 7 taxi
|
||||||
|
6 29 taxi
|
||||||
|
7 17 taxi
|
||||||
|
8 18 taxi
|
||||||
|
8 19 taxi
|
||||||
|
9 19 taxi
|
||||||
|
9 20 taxi
|
||||||
|
10 11 taxi
|
||||||
|
10 21 taxi
|
||||||
|
10 34 taxi
|
||||||
|
11 22 taxi
|
||||||
|
12 23 taxi
|
||||||
|
13 14 taxi
|
||||||
|
13 23 taxi
|
||||||
|
13 24 taxi
|
||||||
|
14 15 taxi
|
||||||
|
14 25 taxi
|
||||||
|
15 16 taxi
|
||||||
|
15 26 taxi
|
||||||
|
15 28 taxi
|
||||||
|
16 28 taxi
|
||||||
|
16 29 taxi
|
||||||
|
17 29 taxi
|
||||||
|
17 30 taxi
|
||||||
|
18 31 taxi
|
||||||
|
18 43 taxi
|
||||||
|
19 32 taxi
|
||||||
|
20 33 taxi
|
||||||
|
21 33 taxi
|
||||||
|
22 23 taxi
|
||||||
|
22 34 taxi
|
||||||
|
22 35 taxi
|
||||||
|
23 37 taxi
|
||||||
|
24 37 taxi
|
||||||
|
24 38 taxi
|
||||||
|
25 38 taxi
|
||||||
|
25 39 taxi
|
||||||
|
26 27 taxi
|
||||||
|
26 39 taxi
|
||||||
|
27 28 taxi
|
||||||
|
27 40 taxi
|
||||||
|
28 41 taxi
|
||||||
|
29 41 taxi
|
||||||
|
29 42 taxi
|
||||||
|
30 42 taxi
|
||||||
|
31 43 taxi
|
||||||
|
31 44 taxi
|
||||||
|
32 33 taxi
|
||||||
|
32 44 taxi
|
||||||
|
32 45 taxi
|
||||||
|
33 46 taxi
|
||||||
|
34 47 taxi
|
||||||
|
34 48 taxi
|
||||||
|
35 36 taxi
|
||||||
|
35 48 taxi
|
||||||
|
35 65 taxi
|
||||||
|
36 37 taxi
|
||||||
|
36 49 taxi
|
||||||
|
37 50 taxi
|
||||||
|
38 50 taxi
|
||||||
|
38 51 taxi
|
||||||
|
39 51 taxi
|
||||||
|
39 52 taxi
|
||||||
|
40 41 taxi
|
||||||
|
40 52 taxi
|
||||||
|
40 53 taxi
|
||||||
|
41 54 taxi
|
||||||
|
42 56 taxi
|
||||||
|
42 72 taxi
|
||||||
|
43 57 taxi
|
||||||
|
44 58 taxi
|
||||||
|
45 46 taxi
|
||||||
|
45 58 taxi
|
||||||
|
45 59 taxi
|
||||||
|
45 60 taxi
|
||||||
|
46 47 taxi
|
||||||
|
46 61 taxi
|
||||||
|
47 62 taxi
|
||||||
|
48 62 taxi
|
||||||
|
48 63 taxi
|
||||||
|
49 50 taxi
|
||||||
|
49 66 taxi
|
||||||
|
51 52 taxi
|
||||||
|
51 67 taxi
|
||||||
|
51 68 taxi
|
||||||
|
52 69 taxi
|
||||||
|
53 54 taxi
|
||||||
|
53 69 taxi
|
||||||
|
54 55 taxi
|
||||||
|
54 70 taxi
|
||||||
|
55 71 taxi
|
||||||
|
56 91 taxi
|
||||||
|
57 58 taxi
|
||||||
|
57 73 taxi
|
||||||
|
58 59 taxi
|
||||||
|
58 74 taxi
|
||||||
|
58 75 taxi
|
||||||
|
59 75 taxi
|
||||||
|
59 76 taxi
|
||||||
|
60 61 taxi
|
||||||
|
60 76 taxi
|
||||||
|
61 62 taxi
|
||||||
|
61 76 taxi
|
||||||
|
61 78 taxi
|
||||||
|
62 79 taxi
|
||||||
|
63 64 taxi
|
||||||
|
63 79 taxi
|
||||||
|
63 80 taxi
|
||||||
|
64 65 taxi
|
||||||
|
64 81 taxi
|
||||||
|
65 66 taxi
|
||||||
|
65 82 taxi
|
||||||
|
66 67 taxi
|
||||||
|
66 82 taxi
|
||||||
|
67 68 taxi
|
||||||
|
67 84 taxi
|
||||||
|
68 69 taxi
|
||||||
|
68 85 taxi
|
||||||
|
69 86 taxi
|
||||||
|
70 71 taxi
|
||||||
|
70 87 taxi
|
||||||
|
71 72 taxi
|
||||||
|
71 89 taxi
|
||||||
|
72 90 taxi
|
||||||
|
72 91 taxi
|
||||||
|
73 74 taxi
|
||||||
|
73 92 taxi
|
||||||
|
74 75 taxi
|
||||||
|
74 92 taxi
|
||||||
|
75 94 taxi
|
||||||
|
76 77 taxi
|
||||||
|
77 78 taxi
|
||||||
|
77 95 taxi
|
||||||
|
77 96 taxi
|
||||||
|
78 79 taxi
|
||||||
|
78 97 taxi
|
||||||
|
79 98 taxi
|
||||||
|
80 99 taxi
|
||||||
|
80 100 taxi
|
||||||
|
81 82 taxi
|
||||||
|
81 100 taxi
|
||||||
|
82 101 taxi
|
||||||
|
83 101 taxi
|
||||||
|
83 102 taxi
|
||||||
|
84 85 taxi
|
||||||
|
85 103 taxi
|
||||||
|
86 103 taxi
|
||||||
|
86 104 taxi
|
||||||
|
87 88 taxi
|
||||||
|
88 89 taxi
|
||||||
|
88 117 taxi
|
||||||
|
89 105 taxi
|
||||||
|
90 91 taxi
|
||||||
|
90 105 taxi
|
||||||
|
91 105 taxi
|
||||||
|
91 107 taxi
|
||||||
|
92 93 taxi
|
||||||
|
93 94 taxi
|
||||||
|
94 95 taxi
|
||||||
|
95 122 taxi
|
||||||
|
96 97 taxi
|
||||||
|
96 109 taxi
|
||||||
|
97 98 taxi
|
||||||
|
97 109 taxi
|
||||||
|
98 99 taxi
|
||||||
|
98 110 taxi
|
||||||
|
99 110 taxi
|
||||||
|
99 112 taxi
|
||||||
|
100 101 taxi
|
||||||
|
100 112 taxi
|
||||||
|
100 113 taxi
|
||||||
|
101 114 taxi
|
||||||
|
102 103 taxi
|
||||||
|
102 115 taxi
|
||||||
|
104 116 taxi
|
||||||
|
105 106 taxi
|
||||||
|
105 108 taxi
|
||||||
|
106 107 taxi
|
||||||
|
107 119 taxi
|
||||||
|
108 117 taxi
|
||||||
|
108 119 taxi
|
||||||
|
109 110 taxi
|
||||||
|
109 124 taxi
|
||||||
|
110 111 taxi
|
||||||
|
111 112 taxi
|
||||||
|
111 124 taxi
|
||||||
|
112 125 taxi
|
||||||
|
113 114 taxi
|
||||||
|
113 125 taxi
|
||||||
|
114 115 taxi
|
||||||
|
114 126 taxi
|
||||||
|
114 131 taxi
|
||||||
|
114 132 taxi
|
||||||
|
115 126 taxi
|
||||||
|
115 127 taxi
|
||||||
|
116 117 taxi
|
||||||
|
116 118 taxi
|
||||||
|
116 127 taxi
|
||||||
|
117 129 taxi
|
||||||
|
118 129 taxi
|
||||||
|
118 134 taxi
|
||||||
|
118 142 taxi
|
||||||
|
119 136 taxi
|
||||||
|
120 121 taxi
|
||||||
|
120 144 taxi
|
||||||
|
121 122 taxi
|
||||||
|
121 145 taxi
|
||||||
|
122 123 taxi
|
||||||
|
122 146 taxi
|
||||||
|
123 124 taxi
|
||||||
|
123 137 taxi
|
||||||
|
123 148 taxi
|
||||||
|
123 149 taxi
|
||||||
|
124 130 taxi
|
||||||
|
124 138 taxi
|
||||||
|
125 131 taxi
|
||||||
|
126 127 taxi
|
||||||
|
126 140 taxi
|
||||||
|
127 133 taxi
|
||||||
|
127 134 taxi
|
||||||
|
128 142 taxi
|
||||||
|
128 143 taxi
|
||||||
|
128 160 taxi
|
||||||
|
128 172 taxi
|
||||||
|
128 188 taxi
|
||||||
|
129 135 taxi
|
||||||
|
129 142 taxi
|
||||||
|
129 143 taxi
|
||||||
|
130 131 taxi
|
||||||
|
130 139 taxi
|
||||||
|
132 140 taxi
|
||||||
|
133 140 taxi
|
||||||
|
133 141 taxi
|
||||||
|
134 141 taxi
|
||||||
|
134 142 taxi
|
||||||
|
135 136 taxi
|
||||||
|
135 143 taxi
|
||||||
|
135 161 taxi
|
||||||
|
136 162 taxi
|
||||||
|
137 147 taxi
|
||||||
|
138 150 taxi
|
||||||
|
138 152 taxi
|
||||||
|
139 140 taxi
|
||||||
|
139 153 taxi
|
||||||
|
139 154 taxi
|
||||||
|
140 154 taxi
|
||||||
|
140 156 taxi
|
||||||
|
141 142 taxi
|
||||||
|
141 158 taxi
|
||||||
|
142 143 taxi
|
||||||
|
142 158 taxi
|
||||||
|
143 160 taxi
|
||||||
|
144 145 taxi
|
||||||
|
144 177 taxi
|
||||||
|
145 146 taxi
|
||||||
|
146 147 taxi
|
||||||
|
146 163 taxi
|
||||||
|
147 164 taxi
|
||||||
|
148 149 taxi
|
||||||
|
148 164 taxi
|
||||||
|
149 150 taxi
|
||||||
|
149 165 taxi
|
||||||
|
150 151 taxi
|
||||||
|
151 152 taxi
|
||||||
|
151 165 taxi
|
||||||
|
151 166 taxi
|
||||||
|
152 153 taxi
|
||||||
|
153 154 taxi
|
||||||
|
153 166 taxi
|
||||||
|
153 167 taxi
|
||||||
|
154 155 taxi
|
||||||
|
155 156 taxi
|
||||||
|
155 167 taxi
|
||||||
|
155 168 taxi
|
||||||
|
156 157 taxi
|
||||||
|
156 169 taxi
|
||||||
|
157 158 taxi
|
||||||
|
157 170 taxi
|
||||||
|
158 159 taxi
|
||||||
|
159 170 taxi
|
||||||
|
159 172 taxi
|
||||||
|
159 186 taxi
|
||||||
|
159 198 taxi
|
||||||
|
160 161 taxi
|
||||||
|
160 173 taxi
|
||||||
|
161 174 taxi
|
||||||
|
162 175 taxi
|
||||||
|
163 177 taxi
|
||||||
|
164 178 taxi
|
||||||
|
164 179 taxi
|
||||||
|
165 179 taxi
|
||||||
|
165 180 taxi
|
||||||
|
166 181 taxi
|
||||||
|
166 183 taxi
|
||||||
|
167 168 taxi
|
||||||
|
167 183 taxi
|
||||||
|
168 184 taxi
|
||||||
|
169 184 taxi
|
||||||
|
170 185 taxi
|
||||||
|
171 173 taxi
|
||||||
|
171 175 taxi
|
||||||
|
171 199 taxi
|
||||||
|
172 187 taxi
|
||||||
|
173 174 taxi
|
||||||
|
173 188 taxi
|
||||||
|
174 175 taxi
|
||||||
|
176 177 taxi
|
||||||
|
176 189 taxi
|
||||||
|
178 189 taxi
|
||||||
|
178 191 taxi
|
||||||
|
179 191 taxi
|
||||||
|
180 181 taxi
|
||||||
|
180 193 taxi
|
||||||
|
181 182 taxi
|
||||||
|
181 193 taxi
|
||||||
|
182 183 taxi
|
||||||
|
182 195 taxi
|
||||||
|
183 196 taxi
|
||||||
|
184 185 taxi
|
||||||
|
184 196 taxi
|
||||||
|
184 197 taxi
|
||||||
|
185 186 taxi
|
||||||
|
186 198 taxi
|
||||||
|
187 188 taxi
|
||||||
|
187 198 taxi
|
||||||
|
188 199 taxi
|
||||||
|
189 190 taxi
|
||||||
|
190 191 taxi
|
||||||
|
190 192 taxi
|
||||||
|
191 192 taxi
|
||||||
|
192 194 taxi
|
||||||
|
193 194 taxi
|
||||||
|
194 195 taxi
|
||||||
|
195 197 taxi
|
||||||
|
196 197 taxi
|
||||||
|
198 199 taxi
|
49
contrib/convert2json.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
def read_file(filename):
|
||||||
|
with open(filename, 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
yield line.strip()
|
||||||
|
|
||||||
|
class json_encoder(json.JSONEncoder):
|
||||||
|
def default(self, obj):
|
||||||
|
if isinstance(obj, set):
|
||||||
|
return list(obj)
|
||||||
|
return json.JSONEncoder.default(self, obj)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
graph = dict()
|
||||||
|
|
||||||
|
for line in read_file("connections.txt"):
|
||||||
|
tokens = line.split(" ")
|
||||||
|
tokens[0] = int(tokens[0])
|
||||||
|
tokens[1] = int(tokens[1])
|
||||||
|
|
||||||
|
# add vertex 1
|
||||||
|
if tokens[0] not in graph:
|
||||||
|
graph[tokens[0]] = {
|
||||||
|
'siblings': [],
|
||||||
|
'transport': set()
|
||||||
|
}
|
||||||
|
graph[tokens[0]]['siblings'].append({
|
||||||
|
'vertex': tokens[1],
|
||||||
|
'edge': tokens[2]
|
||||||
|
})
|
||||||
|
graph[tokens[0]]['transport'].add(tokens[2])
|
||||||
|
# add vertex 2
|
||||||
|
if tokens[1] not in graph:
|
||||||
|
graph[tokens[1]] = {
|
||||||
|
'siblings': [],
|
||||||
|
'transport': set()
|
||||||
|
}
|
||||||
|
graph[tokens[1]]['siblings'].append({
|
||||||
|
'vertex': tokens[0],
|
||||||
|
'edge': tokens[2]
|
||||||
|
})
|
||||||
|
graph[tokens[1]]['transport'].add(tokens[2])
|
||||||
|
|
||||||
|
print(json.dumps(graph, sort_keys=True, indent=2, cls=json_encoder))
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
7
contrib/example.svg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
width="60" height="60" viewBox="-30.0 -30.0 60 60">
|
||||||
|
<defs>
|
||||||
|
</defs>
|
||||||
|
<circle cx="0" cy="0" r="30" fill="yellow" stroke-width="2" stroke="black" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 278 B |
41
contrib/generate_images.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
def read_file(filename):
|
||||||
|
with open(filename, 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
yield line.strip()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
graph = dict()
|
||||||
|
|
||||||
|
for line in read_file("connections.txt"):
|
||||||
|
tokens = line.split(" ")
|
||||||
|
tokens[0] = int(tokens[0])
|
||||||
|
tokens[1] = int(tokens[1])
|
||||||
|
|
||||||
|
# add vertex 1
|
||||||
|
if tokens[0] not in graph:
|
||||||
|
graph[tokens[0]] = set()
|
||||||
|
graph[tokens[0]].add(tokens[2])
|
||||||
|
# add vertex 2
|
||||||
|
if tokens[1] not in graph:
|
||||||
|
graph[tokens[1]] = set()
|
||||||
|
graph[tokens[1]].add(tokens[2])
|
||||||
|
|
||||||
|
import svg
|
||||||
|
canvas = svg.SVG(
|
||||||
|
width=40,
|
||||||
|
height=40,
|
||||||
|
elements=[
|
||||||
|
svg.Circle(
|
||||||
|
cx=20, cy=20, r=18,
|
||||||
|
stroke="black",
|
||||||
|
fill="yellow",
|
||||||
|
stroke_width=2,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
print(canvas)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
1
contrib/image.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"><circle stroke="black" stroke-width="2" cx="20" cy="20" r="18" fill="yellow"/></svg>
|
After Width: | Height: | Size: 148 B |
BIN
contrib/plan casti.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
7
contrib/readme.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Datasource
|
||||||
|
|
||||||
|
## text files
|
||||||
|
https://github.com/AlexElvers/scotland-yard-data
|
||||||
|
|
||||||
|
## pictures
|
||||||
|
by Tchia
|
199
contrib/stations.txt
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
1 190 40 taxi,bus,underground
|
||||||
|
2 487 20 taxi
|
||||||
|
3 675 25 taxi,bus
|
||||||
|
4 790 15 taxi
|
||||||
|
5 1253 30 taxi
|
||||||
|
6 1396 29 taxi
|
||||||
|
7 1541 36 taxi,bus
|
||||||
|
8 133 107 taxi
|
||||||
|
9 250 115 taxi
|
||||||
|
10 583 107 taxi
|
||||||
|
11 670 123 taxi
|
||||||
|
12 740 107 taxi
|
||||||
|
13 875 100 taxi,bus,underground
|
||||||
|
14 1008 77 taxi,bus
|
||||||
|
15 1150 63 taxi,bus
|
||||||
|
16 1282 111 taxi
|
||||||
|
17 1530 155 taxi
|
||||||
|
18 65 163 taxi
|
||||||
|
19 173 176 taxi
|
||||||
|
20 314 145 taxi
|
||||||
|
21 452 202 taxi
|
||||||
|
22 675 225 taxi,bus
|
||||||
|
23 784 165 taxi,bus
|
||||||
|
24 955 170 taxi
|
||||||
|
25 1029 191 taxi
|
||||||
|
26 1140 108 taxi
|
||||||
|
27 1160 175 taxi
|
||||||
|
28 1211 148 taxi
|
||||||
|
29 1400 187 taxi,bus
|
||||||
|
30 1580 176 taxi
|
||||||
|
31 110 215 taxi
|
||||||
|
32 264 254 taxi
|
||||||
|
33 390 235 taxi
|
||||||
|
34 590 256 taxi,bus
|
||||||
|
35 712 288 taxi
|
||||||
|
36 760 294 taxi
|
||||||
|
37 838 223 taxi
|
||||||
|
38 994 234 taxi
|
||||||
|
39 1065 218 taxi
|
||||||
|
40 1188 268 taxi
|
||||||
|
41 1240 250 taxi,bus
|
||||||
|
42 1536 251 taxi,bus
|
||||||
|
43 37 277 taxi
|
||||||
|
44 198 310 taxi
|
||||||
|
45 307 332 taxi
|
||||||
|
46 409 299 taxi,bus,underground
|
||||||
|
47 489 282 taxi
|
||||||
|
48 617 338 taxi
|
||||||
|
49 797 341 taxi
|
||||||
|
50 875 288 taxi
|
||||||
|
51 1030 300 taxi
|
||||||
|
52 1111 278 taxi,bus
|
||||||
|
53 1202 330 taxi
|
||||||
|
54 1262 313 taxi
|
||||||
|
55 1402 310 taxi,bus
|
||||||
|
56 1586 326 taxi
|
||||||
|
57 87 339 taxi
|
||||||
|
58 243 358 taxi,bus
|
||||||
|
59 275 395 taxi
|
||||||
|
60 335 384 taxi
|
||||||
|
61 437 400 taxi
|
||||||
|
62 493 381 taxi
|
||||||
|
63 627 451 taxi,bus
|
||||||
|
64 708 436 taxi
|
||||||
|
65 793 416 taxi,bus
|
||||||
|
66 848 403 taxi
|
||||||
|
67 934 390 taxi,bus,underground
|
||||||
|
68 1046 365 taxi
|
||||||
|
69 1146 359 taxi
|
||||||
|
70 1272 381 taxi
|
||||||
|
71 1383 380 taxi
|
||||||
|
72 1499 389 taxi,bus
|
||||||
|
73 85 403 taxi
|
||||||
|
74 141 468 taxi,bus,underground
|
||||||
|
75 217 446 taxi
|
||||||
|
76 316 441 taxi
|
||||||
|
77 382 491 taxi,bus
|
||||||
|
78 460 481 taxi,bus
|
||||||
|
79 518 468 taxi,bus,underground
|
||||||
|
80 653 496 taxi
|
||||||
|
81 763 514 taxi
|
||||||
|
82 803 486 taxi,bus
|
||||||
|
83 915 470 taxi
|
||||||
|
84 987 434 taxi
|
||||||
|
85 1051 412 taxi
|
||||||
|
86 1163 454 taxi,bus
|
||||||
|
87 1279 482 taxi,bus
|
||||||
|
88 1331 496 taxi
|
||||||
|
89 1374 458 taxi,bus,underground
|
||||||
|
90 1456 458 taxi
|
||||||
|
91 1569 458 taxi
|
||||||
|
92 44 520 taxi
|
||||||
|
93 51 568 taxi,bus,underground
|
||||||
|
94 151 547 taxi,bus
|
||||||
|
95 197 539 taxi
|
||||||
|
96 432 574 taxi
|
||||||
|
97 483 555 taxi
|
||||||
|
98 549 533 taxi
|
||||||
|
99 613 542 taxi
|
||||||
|
100 725 574 taxi,bus
|
||||||
|
101 840 530 taxi
|
||||||
|
102 978 473 taxi,bus
|
||||||
|
103 1069 463 taxi
|
||||||
|
104 1163 509 taxi
|
||||||
|
105 1421 529 taxi,bus
|
||||||
|
106 1520 548 taxi
|
||||||
|
107 1591 548 taxi,bus
|
||||||
|
108 1393 642 taxi,bus
|
||||||
|
109 509 654 taxi
|
||||||
|
110 584 579 taxi
|
||||||
|
111 632 638 taxi,bus,underground
|
||||||
|
112 662 617 taxi
|
||||||
|
113 771 617 taxi
|
||||||
|
114 852 592 taxi
|
||||||
|
115 972 553 taxi
|
||||||
|
116 1165 623 taxi,bus
|
||||||
|
117 1294 670 taxi
|
||||||
|
118 1166 699 taxi
|
||||||
|
119 1558 727 taxi
|
||||||
|
120 42 773 taxi
|
||||||
|
121 96 774 taxi
|
||||||
|
122 177 770 taxi,bus
|
||||||
|
123 374 765 taxi,bus
|
||||||
|
124 492 742 taxi,bus
|
||||||
|
125 695 670 taxi
|
||||||
|
126 910 636 taxi
|
||||||
|
127 1055 671 taxi,bus
|
||||||
|
128 1243 894 taxi,bus,underground
|
||||||
|
129 1283 714 taxi
|
||||||
|
130 668 747 taxi
|
||||||
|
131 724 707 taxi
|
||||||
|
132 851 699 taxi
|
||||||
|
133 995 766 taxi,bus
|
||||||
|
134 1097 731 taxi
|
||||||
|
135 1334 754 taxi,bus
|
||||||
|
136 1522 829 taxi
|
||||||
|
137 309 834 taxi
|
||||||
|
138 528 787 taxi
|
||||||
|
139 657 794 taxi
|
||||||
|
140 849 779 taxi,bus,underground
|
||||||
|
141 1033 791 taxi
|
||||||
|
142 1165 814 taxi,bus
|
||||||
|
143 1284 801 taxi
|
||||||
|
144 55 912 taxi,bus
|
||||||
|
145 115 907 taxi
|
||||||
|
146 194 902 taxi
|
||||||
|
147 252 886 taxi
|
||||||
|
148 331 874 taxi
|
||||||
|
149 399 866 taxi
|
||||||
|
150 478 841 taxi
|
||||||
|
151 515 879 taxi
|
||||||
|
152 569 837 taxi
|
||||||
|
153 600 884 taxi,bus,underground
|
||||||
|
154 733 853 taxi,bus
|
||||||
|
155 779 909 taxi
|
||||||
|
156 873 909 taxi,bus
|
||||||
|
157 949 917 taxi,bus
|
||||||
|
158 1077 865 taxi
|
||||||
|
159 1083 1041 taxi
|
||||||
|
160 1339 913 taxi
|
||||||
|
161 1445 901 taxi,bus
|
||||||
|
162 1593 899 taxi
|
||||||
|
163 183 944 taxi,bus,underground
|
||||||
|
164 264 944 taxi
|
||||||
|
165 417 972 taxi,bus
|
||||||
|
166 576 934 taxi
|
||||||
|
167 700 960 taxi
|
||||||
|
168 746 990 taxi
|
||||||
|
169 873 974 taxi
|
||||||
|
170 937 983 taxi
|
||||||
|
171 1416 1160 taxi
|
||||||
|
172 1200 976 taxi
|
||||||
|
173 1367 1027 taxi
|
||||||
|
174 1507 990 taxi
|
||||||
|
175 1584 1043 taxi
|
||||||
|
176 33 1028 taxi,bus
|
||||||
|
177 101 1009 taxi
|
||||||
|
178 218 999 taxi
|
||||||
|
179 358 1016 taxi
|
||||||
|
180 446 1032 taxi,bus
|
||||||
|
181 533 1010 taxi
|
||||||
|
182 580 1023 taxi
|
||||||
|
183 666 983 taxi
|
||||||
|
184 807 1041 taxi,bus
|
||||||
|
185 911 1108 taxi,bus,underground
|
||||||
|
186 1013 1088 taxi
|
||||||
|
187 1162 1053 taxi,bus
|
||||||
|
188 1307 1057 taxi
|
||||||
|
189 101 1123 taxi
|
||||||
|
190 176 1162 taxi,bus
|
||||||
|
191 267 1086 taxi,bus
|
||||||
|
192 289 1186 taxi
|
||||||
|
193 509 1093 taxi
|
||||||
|
194 534 1128 taxi
|
||||||
|
195 600 1125 taxi
|
||||||
|
196 700 1068 taxi
|
||||||
|
197 713 1134 taxi
|
||||||
|
198 1073 1191 taxi
|
||||||
|
199 1322 1186 taxi,bus
|
5219
data/graph.json
Normal file
119
game.html
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
||||||
|
<title>Scontland Yard</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="app" class="container">
|
||||||
|
<h1>Starting Position</h1>
|
||||||
|
<form v-on:submit.prevent="gameStart" name="form_start">
|
||||||
|
<p>
|
||||||
|
Number of players
|
||||||
|
<input name="police_players" type="number" min="3" max="6" required
|
||||||
|
placeholder="how many players do we have ?" v-model="police_players">
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Position of the tief
|
||||||
|
<input name="tief_posistion" type="number" min="1" max="199" required placeholder="tief position"
|
||||||
|
v-model="tief_position_start">
|
||||||
|
</p>
|
||||||
|
<button type="submit" v-bind:disabled="isGameStarted == true">Start the hunting</button>
|
||||||
|
</form>
|
||||||
|
<h1>Game Moves</h1>
|
||||||
|
|
||||||
|
<div v-show="isGameStarted" v-for="r in rounds">
|
||||||
|
Tief:
|
||||||
|
<span v-for="pos in r.tief">{{ pos }}</span>
|
||||||
|
Police:
|
||||||
|
<span v-for="pos in r.police">{{ pos }}</span>
|
||||||
|
Transport:
|
||||||
|
<span>{{ r.transport }}</span>
|
||||||
|
</div>
|
||||||
|
<div v-show="isGameStarted">
|
||||||
|
<form v-on:submit.prevent="gameRound" name="form_move">
|
||||||
|
Tief:
|
||||||
|
<span v-for="pos in round.tief">{{ pos }}</span>
|
||||||
|
Police:
|
||||||
|
<input v-for="pos in police_players" type="number" min="1" max="199" required name="police">
|
||||||
|
Transport:
|
||||||
|
<select v-model="round.transport" name="transport" required>
|
||||||
|
<option disabled value="">Please select one</option>
|
||||||
|
<option v-for="transport in listPossibleTransports(round)">{{ transport }}</option>
|
||||||
|
<option>hidden</option>
|
||||||
|
</select>
|
||||||
|
<button type="submit">Move</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
||||||
|
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
|
||||||
|
<script>
|
||||||
|
const app = Vue.createApp({
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
police_players: 3,
|
||||||
|
tief_position_start: null,
|
||||||
|
rounds: [],
|
||||||
|
round: {
|
||||||
|
tief: null,
|
||||||
|
police: null,
|
||||||
|
transport: null
|
||||||
|
},
|
||||||
|
graph: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
gameStart(e) {
|
||||||
|
axios.get("data/graph.json")
|
||||||
|
.then(response => { this.graph = response.data })
|
||||||
|
.catch(err => console.log("Axios err: ", err))
|
||||||
|
this.round.tief = [this.tief_position_start];
|
||||||
|
this.round.police = new Array(this.police_players);
|
||||||
|
this.round.transport = null;
|
||||||
|
},
|
||||||
|
gameRound(e) {
|
||||||
|
let police = new Array(this.police_players)
|
||||||
|
for (i in e.target.elements.police) {
|
||||||
|
police.push(e.target.elements.police[i].value)
|
||||||
|
e.target.elements.police[i].value = null
|
||||||
|
}
|
||||||
|
this.rounds.push({
|
||||||
|
'tief': this.round.tief.slice(),
|
||||||
|
'transport': this.round.transport,
|
||||||
|
'police': police
|
||||||
|
})
|
||||||
|
// clear values
|
||||||
|
this.round.police = null
|
||||||
|
this.round.transport = null
|
||||||
|
this.round.tief.push(4)
|
||||||
|
},
|
||||||
|
listPossibleTransports(round) {
|
||||||
|
let values = []
|
||||||
|
for (let item in round.tief) {
|
||||||
|
let tief_pos = round.tief[item].toString()
|
||||||
|
let vertex = this.graph[tief_pos]
|
||||||
|
values = values.concat(vertex['transport'])
|
||||||
|
}
|
||||||
|
values = new Set(values);
|
||||||
|
return values
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
isGameStarted() {
|
||||||
|
return this.round.tief !== null
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
app.mount('#app')
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|