powergrid-engine 1.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -0
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.js +17 -0
  5. package/dist/src/available-moves.d.ts +24 -0
  6. package/dist/src/available-moves.js +363 -0
  7. package/dist/src/engine.d.ts +20 -0
  8. package/dist/src/engine.js +1937 -0
  9. package/dist/src/gamestate.d.ts +135 -0
  10. package/dist/src/gamestate.js +30 -0
  11. package/dist/src/log.d.ts +14 -0
  12. package/dist/src/log.js +2 -0
  13. package/dist/src/maps/america.d.ts +55 -0
  14. package/dist/src/maps/america.js +411 -0
  15. package/dist/src/maps/australia.d.ts +46 -0
  16. package/dist/src/maps/australia.js +138 -0
  17. package/dist/src/maps/badenwurttemberg.d.ts +46 -0
  18. package/dist/src/maps/badenwurttemberg.js +163 -0
  19. package/dist/src/maps/benelux.d.ts +46 -0
  20. package/dist/src/maps/benelux.js +210 -0
  21. package/dist/src/maps/brazil.d.ts +54 -0
  22. package/dist/src/maps/brazil.js +292 -0
  23. package/dist/src/maps/centraleurope.d.ts +54 -0
  24. package/dist/src/maps/centraleurope.js +236 -0
  25. package/dist/src/maps/china.d.ts +54 -0
  26. package/dist/src/maps/china.js +262 -0
  27. package/dist/src/maps/france.d.ts +54 -0
  28. package/dist/src/maps/france.js +290 -0
  29. package/dist/src/maps/germany.d.ts +57 -0
  30. package/dist/src/maps/germany.js +328 -0
  31. package/dist/src/maps/indian.d.ts +54 -0
  32. package/dist/src/maps/indian.js +283 -0
  33. package/dist/src/maps/italy.d.ts +54 -0
  34. package/dist/src/maps/italy.js +190 -0
  35. package/dist/src/maps/japan.d.ts +46 -0
  36. package/dist/src/maps/japan.js +144 -0
  37. package/dist/src/maps/korea.d.ts +54 -0
  38. package/dist/src/maps/korea.js +186 -0
  39. package/dist/src/maps/middleeast.d.ts +54 -0
  40. package/dist/src/maps/middleeast.js +225 -0
  41. package/dist/src/maps/northerneurope.d.ts +54 -0
  42. package/dist/src/maps/northerneurope.js +197 -0
  43. package/dist/src/maps/quebec.d.ts +54 -0
  44. package/dist/src/maps/quebec.js +283 -0
  45. package/dist/src/maps/russia.d.ts +54 -0
  46. package/dist/src/maps/russia.js +286 -0
  47. package/dist/src/maps/southafrica.d.ts +46 -0
  48. package/dist/src/maps/southafrica.js +152 -0
  49. package/dist/src/maps/spainportugal.d.ts +54 -0
  50. package/dist/src/maps/spainportugal.js +289 -0
  51. package/dist/src/maps/ukireland.d.ts +52 -0
  52. package/dist/src/maps/ukireland.js +176 -0
  53. package/dist/src/maps.d.ts +50 -0
  54. package/dist/src/maps.js +61 -0
  55. package/dist/src/move.d.ts +63 -0
  56. package/dist/src/move.js +15 -0
  57. package/dist/src/powerPlants.d.ts +4 -0
  58. package/dist/src/powerPlants.js +60 -0
  59. package/dist/src/prices.d.ts +7 -0
  60. package/dist/src/prices.js +10 -0
  61. package/dist/src/randomizeMap.d.ts +3 -0
  62. package/dist/src/randomizeMap.js +244 -0
  63. package/dist/src/utils.d.ts +2 -0
  64. package/dist/src/utils.js +24 -0
  65. package/dist/wrapper.d.ts +30 -0
  66. package/dist/wrapper.js +127 -0
  67. package/index.ts +6 -0
  68. package/package.json +51 -0
  69. package/src/available-moves.ts +450 -0
  70. package/src/engine.spec.ts +163 -0
  71. package/src/engine.ts +2270 -0
  72. package/src/fixtures/GermanyRecharged.json +6627 -0
  73. package/src/fixtures/USAOriginal.json +5216 -0
  74. package/src/fixtures/supply.json +5792 -0
  75. package/src/fixtures/undo.json +4102 -0
  76. package/src/gamestate.ts +164 -0
  77. package/src/log.ts +17 -0
  78. package/src/maps/america.ts +411 -0
  79. package/src/maps/australia.ts +137 -0
  80. package/src/maps/badenwurttemberg.ts +162 -0
  81. package/src/maps/benelux.ts +210 -0
  82. package/src/maps/brazil.ts +306 -0
  83. package/src/maps/centraleurope.ts +235 -0
  84. package/src/maps/china.ts +268 -0
  85. package/src/maps/france.ts +295 -0
  86. package/src/maps/germany.ts +328 -0
  87. package/src/maps/indian.ts +289 -0
  88. package/src/maps/italy.ts +189 -0
  89. package/src/maps/japan.ts +143 -0
  90. package/src/maps/korea.ts +185 -0
  91. package/src/maps/middleeast.ts +225 -0
  92. package/src/maps/northerneurope.ts +196 -0
  93. package/src/maps/quebec.ts +304 -0
  94. package/src/maps/russia.ts +292 -0
  95. package/src/maps/southafrica.ts +151 -0
  96. package/src/maps/spainportugal.ts +295 -0
  97. package/src/maps/ukireland.ts +175 -0
  98. package/src/maps.ts +123 -0
  99. package/src/move.ts +83 -0
  100. package/src/powerPlants.ts +59 -0
  101. package/src/prices.ts +10 -0
  102. package/src/randomizeMap.ts +288 -0
  103. package/src/rankings.spec.ts +18 -0
  104. package/src/utils.spec.ts +13 -0
  105. package/src/utils.ts +23 -0
  106. package/tsconfig.json +17 -0
  107. package/wrapper.ts +126 -0
@@ -0,0 +1,225 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Pink = 'pink',
5
+ Green = 'green',
6
+ Orange = 'orange',
7
+ Yellow = 'yellow',
8
+ Red = 'red',
9
+ Brown = 'brown',
10
+ }
11
+
12
+ export enum Cities {
13
+ Mashhad = 'Mashhad',
14
+ Corgan = 'Corgan',
15
+ Tehran = 'Tehran',
16
+ Tabriz = 'Tabriz',
17
+ Mosul = 'Mosul',
18
+ Kermanshah = 'Kermanshah',
19
+ Baghdad = 'Baghdad',
20
+ Isfahan = 'Isfahan',
21
+ Yazo = 'Yazo',
22
+ Zahedan = 'Zahedan',
23
+ Kerman = 'Kerman',
24
+ Shiraz = 'Shiraz',
25
+ Bandarabbas = 'Bandar Abbas',
26
+ Chabahar = 'Chabahar',
27
+ Dubai = 'Dubai',
28
+ Muscat = 'Muscat',
29
+ Abudhari = 'Abu Dhari',
30
+ Alain = 'Alain',
31
+ Salalah = 'Salalah',
32
+ Doha = 'Doha',
33
+ Manama = 'Manama',
34
+ Ahvaz = 'Ahvaz',
35
+ Basra = 'Basra',
36
+ Najaf = 'Najaf',
37
+ Kuwaitcity = 'Kuwait City',
38
+ Buraydah = 'Buraydah',
39
+ Riyadh = 'Riyadh',
40
+ Medina = 'Medina',
41
+ Alhasahah = 'Al Hasahah',
42
+ Aleppo = 'Aleppo',
43
+ Damascus = 'Damascus',
44
+ Amman = 'Amman',
45
+ Beirut = 'Beirut',
46
+ Jerusalem = 'Jerusalem',
47
+ Aqaba = 'Aqaba',
48
+ Mukalla = 'Mukalla',
49
+ Sanaa = 'Sanaa',
50
+ Aden = 'Aden',
51
+ Alhudaydah = 'Al-Hudaydah',
52
+ Abha = 'Abha',
53
+ Mecca = 'Mecca',
54
+ Jeddah = 'Jeddah',
55
+ }
56
+
57
+ export const map: GameMap = {
58
+ name: 'Middle East',
59
+ cities: [
60
+ { name: Cities.Mashhad, region: Regions.Pink, x: 859, y: 327 },
61
+ { name: Cities.Corgan, region: Regions.Pink, x: 734, y: 287 },
62
+ { name: Cities.Tehran, region: Regions.Pink, x: 633, y: 342 },
63
+ { name: Cities.Tabriz, region: Regions.Pink, x: 450, y: 251 },
64
+ { name: Cities.Mosul, region: Regions.Pink, x: 352, y: 307 },
65
+ { name: Cities.Kermanshah, region: Regions.Pink, x: 503, y: 391 },
66
+ { name: Cities.Baghdad, region: Regions.Pink, x: 393, y: 406 },
67
+ { name: Cities.Isfahan, region: Regions.Green, x: 621, y: 436 },
68
+ { name: Cities.Yazo, region: Regions.Green, x: 720, y: 472 },
69
+ { name: Cities.Zahedan, region: Regions.Green, x: 896, y: 547 },
70
+ { name: Cities.Kerman, region: Regions.Green, x: 784, y: 534 },
71
+ { name: Cities.Shiraz, region: Regions.Green, x: 651, y: 557 },
72
+ { name: Cities.Bandarabbas, region: Regions.Green, x: 756, y: 629 },
73
+ { name: Cities.Chabahar, region: Regions.Green, x: 898, y: 687 },
74
+ { name: Cities.Dubai, region: Regions.Orange, x: 752, y: 690 },
75
+ { name: Cities.Muscat, region: Regions.Orange, x: 828, y: 773 },
76
+ { name: Cities.Abudhari, region: Regions.Orange, x: 692, y: 747 },
77
+ { name: Cities.Alain, region: Regions.Orange, x: 715, y: 812 },
78
+ { name: Cities.Salalah, region: Regions.Orange, x: 694, y: 981 },
79
+ { name: Cities.Doha, region: Regions.Orange, x: 596, y: 713 },
80
+ { name: Cities.Manama, region: Regions.Orange, x: 532, y: 652 },
81
+ { name: Cities.Ahvaz, region: Regions.Yellow, x: 555, y: 499 },
82
+ { name: Cities.Basra, region: Regions.Yellow, x: 452, y: 519 },
83
+ { name: Cities.Najaf, region: Regions.Yellow, x: 356, y: 478 },
84
+ { name: Cities.Kuwaitcity, region: Regions.Yellow, x: 500, y: 580 },
85
+ { name: Cities.Buraydah, region: Regions.Yellow, x: 360, y: 674 },
86
+ { name: Cities.Riyadh, region: Regions.Yellow, x: 443, y: 741 },
87
+ { name: Cities.Medina, region: Regions.Yellow, x: 264, y: 738 },
88
+ { name: Cities.Alhasahah, region: Regions.Red, x: 248, y: 300 },
89
+ { name: Cities.Aleppo, region: Regions.Red, x: 132, y: 315 },
90
+ { name: Cities.Damascus, region: Regions.Red, x: 186, y: 433 },
91
+ { name: Cities.Amman, region: Regions.Red, x: 171, y: 493 },
92
+ { name: Cities.Beirut, region: Regions.Red, x: 94, y: 401 },
93
+ { name: Cities.Jerusalem, region: Regions.Red, x: 76, y: 481 },
94
+ { name: Cities.Aqaba, region: Regions.Red, x: 103, y: 563 },
95
+ { name: Cities.Mukalla, region: Regions.Brown, x: 555, y: 1059 },
96
+ { name: Cities.Sanaa, region: Regions.Brown, x: 426, y: 1018 },
97
+ { name: Cities.Aden, region: Regions.Brown, x: 431, y: 1105 },
98
+ { name: Cities.Alhudaydah, region: Regions.Brown, x: 317, y: 1057 },
99
+ { name: Cities.Abha, region: Regions.Brown, x: 306, y: 938 },
100
+ { name: Cities.Mecca, region: Regions.Brown, x: 280, y: 850 },
101
+ { name: Cities.Jeddah, region: Regions.Brown, x: 190, y: 800 },
102
+ ],
103
+ connections: [
104
+ { nodes: [Cities.Tabriz, Cities.Tehran], cost: 13 },
105
+ { nodes: [Cities.Tehran, Cities.Corgan], cost: 9 },
106
+ { nodes: [Cities.Corgan, Cities.Mashhad], cost: 12 },
107
+ { nodes: [Cities.Mashhad, Cities.Zahedan], cost: 20 },
108
+ { nodes: [Cities.Zahedan, Cities.Kerman], cost: 10 },
109
+ { nodes: [Cities.Kerman, Cities.Yazo], cost: 7 },
110
+ { nodes: [Cities.Yazo, Cities.Mashhad], cost: 18 },
111
+ { nodes: [Cities.Mashhad, Cities.Tehran], cost: 19 },
112
+ { nodes: [Cities.Tehran, Cities.Yazo], cost: 12 },
113
+ { nodes: [Cities.Yazo, Cities.Shiraz], cost: 9 },
114
+ { nodes: [Cities.Shiraz, Cities.Kerman], cost: 11 },
115
+ { nodes: [Cities.Yazo, Cities.Isfahan], cost: 7 },
116
+ { nodes: [Cities.Isfahan, Cities.Shiraz], cost: 10 },
117
+ { nodes: [Cities.Isfahan, Cities.Tehran], cost: 9 },
118
+ { nodes: [Cities.Tehran, Cities.Kermanshah], cost: 13 },
119
+ { nodes: [Cities.Kermanshah, Cities.Isfahan], cost: 13 },
120
+ { nodes: [Cities.Isfahan, Cities.Ahvaz], cost: 11 },
121
+ { nodes: [Cities.Ahvaz, Cities.Shiraz], cost: 11 },
122
+ { nodes: [Cities.Ahvaz, Cities.Kermanshah], cost: 11 },
123
+ { nodes: [Cities.Kermanshah, Cities.Tabriz], cost: 13 },
124
+ { nodes: [Cities.Tabriz, Cities.Mosul], cost: 13 },
125
+ { nodes: [Cities.Mosul, Cities.Baghdad], cost: 8 },
126
+ { nodes: [Cities.Baghdad, Cities.Kermanshah], cost: 8 },
127
+ { nodes: [Cities.Basra, Cities.Ahvaz], cost: 3 },
128
+ { nodes: [Cities.Ahvaz, Cities.Kuwaitcity], cost: 7 },
129
+ { nodes: [Cities.Kuwaitcity, Cities.Basra], cost: 5 },
130
+ { nodes: [Cities.Basra, Cities.Najaf], cost: 10 },
131
+ { nodes: [Cities.Najaf, Cities.Baghdad], cost: 4 },
132
+ { nodes: [Cities.Baghdad, Cities.Basra], cost: 12 },
133
+ { nodes: [Cities.Alhasahah, Cities.Mosul], cost: 4 },
134
+ { nodes: [Cities.Alhasahah, Cities.Baghdad], cost: 11 },
135
+ { nodes: [Cities.Baghdad, Cities.Damascus], cost: 16 },
136
+ { nodes: [Cities.Damascus, Cities.Najaf], cost: 15 },
137
+ { nodes: [Cities.Alhasahah, Cities.Damascus], cost: 14 },
138
+ { nodes: [Cities.Damascus, Cities.Amman], cost: 4 },
139
+ { nodes: [Cities.Amman, Cities.Aqaba], cost: 7 },
140
+ { nodes: [Cities.Aqaba, Cities.Jerusalem], cost: 6 },
141
+ { nodes: [Cities.Jerusalem, Cities.Amman], cost: 3 },
142
+ { nodes: [Cities.Jerusalem, Cities.Beirut], cost: 6 },
143
+ { nodes: [Cities.Beirut, Cities.Damascus], cost: 4 },
144
+ { nodes: [Cities.Damascus, Cities.Aleppo], cost: 8 },
145
+ { nodes: [Cities.Aleppo, Cities.Beirut], cost: 9 },
146
+ { nodes: [Cities.Aleppo, Cities.Alhasahah], cost: 7 },
147
+ { nodes: [Cities.Baghdad, Cities.Tabriz], cost: 18 },
148
+ { nodes: [Cities.Zahedan, Cities.Chabahar], cost: 13 },
149
+ { nodes: [Cities.Zahedan, Cities.Bandarabbas], cost: 14 },
150
+ { nodes: [Cities.Bandarabbas, Cities.Kerman], cost: 13 },
151
+ { nodes: [Cities.Shiraz, Cities.Bandarabbas], cost: 14 },
152
+ { nodes: [Cities.Bandarabbas, Cities.Chabahar], cost: 15 },
153
+ { nodes: [Cities.Kuwaitcity, Cities.Manama], cost: 12 },
154
+ { nodes: [Cities.Manama, Cities.Doha], cost: 6 },
155
+ { nodes: [Cities.Doha, Cities.Abudhari], cost: 9 },
156
+ { nodes: [Cities.Abudhari, Cities.Dubai], cost: 2 },
157
+ { nodes: [Cities.Dubai, Cities.Muscat], cost: 9 },
158
+ { nodes: [Cities.Muscat, Cities.Alain], cost: 7 },
159
+ { nodes: [Cities.Alain, Cities.Abudhari], cost: 3 },
160
+ { nodes: [Cities.Alain, Cities.Dubai], cost: 3 },
161
+ { nodes: [Cities.Riyadh, Cities.Alain], cost: 23 },
162
+ { nodes: [Cities.Doha, Cities.Riyadh], cost: 12 },
163
+ { nodes: [Cities.Riyadh, Cities.Manama], cost: 10 },
164
+ { nodes: [Cities.Riyadh, Cities.Kuwaitcity], cost: 12 },
165
+ { nodes: [Cities.Kuwaitcity, Cities.Buraydah], cost: 12 },
166
+ { nodes: [Cities.Buraydah, Cities.Riyadh], cost: 7 },
167
+ { nodes: [Cities.Buraydah, Cities.Medina], cost: 10 },
168
+ { nodes: [Cities.Medina, Cities.Riyadh], cost: 15 },
169
+ { nodes: [Cities.Buraydah, Cities.Najaf], cost: 14 },
170
+ { nodes: [Cities.Aqaba, Cities.Jeddah], cost: 23 },
171
+ { nodes: [Cities.Aqaba, Cities.Medina], cost: 17 },
172
+ { nodes: [Cities.Medina, Cities.Jeddah], cost: 7 },
173
+ { nodes: [Cities.Jeddah, Cities.Mecca], cost: 1 },
174
+ { nodes: [Cities.Mecca, Cities.Medina], cost: 7 },
175
+ { nodes: [Cities.Mecca, Cities.Riyadh], cost: 17 },
176
+ { nodes: [Cities.Riyadh, Cities.Abha], cost: 19 },
177
+ { nodes: [Cities.Abha, Cities.Mecca], cost: 12 },
178
+ { nodes: [Cities.Salalah, Cities.Muscat], cost: 21 },
179
+ { nodes: [Cities.Alain, Cities.Salalah], cost: 18 },
180
+ { nodes: [Cities.Salalah, Cities.Mukalla], cost: 15 },
181
+ { nodes: [Cities.Salalah, Cities.Sanaa], cost: 25 },
182
+ { nodes: [Cities.Sanaa, Cities.Mukalla], cost: 14 },
183
+ { nodes: [Cities.Mukalla, Cities.Aden], cost: 13 },
184
+ { nodes: [Cities.Aden, Cities.Alhudaydah], cost: 9 },
185
+ { nodes: [Cities.Alhudaydah, Cities.Abha], cost: 10 },
186
+ { nodes: [Cities.Abha, Cities.Sanaa], cost: 11 },
187
+ { nodes: [Cities.Sanaa, Cities.Alhudaydah], cost: 5 },
188
+ ],
189
+ layout: 'Portrait',
190
+ mapPosition: [0, -100],
191
+ resupply: [
192
+ [
193
+ [2, 1, 1],
194
+ [2, 1, 1],
195
+ [3, 2, 2],
196
+ [4, 3, 2],
197
+ [5, 4, 3],
198
+ ],
199
+ [
200
+ [5, 3, 2],
201
+ [5, 3, 2],
202
+ [6, 3, 2],
203
+ [8, 4, 3],
204
+ [9, 5, 4],
205
+ ],
206
+ [
207
+ [1, 3, 4],
208
+ [1, 3, 4],
209
+ [1, 4, 6],
210
+ [1, 4, 8],
211
+ [1, 6, 9],
212
+ ],
213
+ [
214
+ [0, 2, 2],
215
+ [0, 2, 2],
216
+ [0, 3, 3],
217
+ [0, 3, 4],
218
+ [0, 4, 5],
219
+ ],
220
+ ],
221
+ startingResources: [21, 21, 3, 3],
222
+ startingSupply: [24, 24, 21, 11],
223
+ mapSpecificRules:
224
+ 'Only coal and oil can be bought for $1, and any number of oil can restock at $1.\nDuring step 1, garbage and uranium plants will be removed from the current market.\nStep 2 will be triggered after going through the deck once rather than by a specific number of cities.\nStep 3 will be triggered after going through the deck a second time.',
225
+ };
@@ -0,0 +1,196 @@
1
+ import { GameMap } from './../maps';
2
+
3
+ export enum Regions {
4
+ Brown = 'brown',
5
+ Yellow = 'yellow',
6
+ Pink = 'pink',
7
+ Purple = 'purple',
8
+ Orange = 'orange',
9
+ Red = 'red',
10
+ }
11
+
12
+ export enum Cities {
13
+ Oulu = 'Oulu',
14
+ Kuopid = 'Kuopid',
15
+ Tampere = 'Tampere',
16
+ Helsinki = 'Helsinki',
17
+ Espoo = 'Espoo',
18
+ Pori = 'Pori',
19
+ Turku = 'Turku',
20
+ Uppsala = 'Uppsala',
21
+ Stockholm = 'Stockholm',
22
+ Vasteras = 'Vasteras',
23
+ Drebro = 'Drebro',
24
+ Sundsvall = 'Sundsvall',
25
+ Lulea = 'Lulea',
26
+ Ostersund = 'Ostersund',
27
+ Tallinn = 'Tallinn',
28
+ Tartu = 'Tartu',
29
+ Daugavpils = 'Daugavpils',
30
+ Vilnius = 'Vilnius',
31
+ Kaunas = 'Kaunas',
32
+ Rica = 'Rica',
33
+ Klaipeda = 'Klaipeda',
34
+ Karlstad = 'Karlstad',
35
+ Linkopinc = 'Linkopinc',
36
+ Jonkoping = 'Jonkoping',
37
+ Visby = 'Visby',
38
+ Kristianstad = 'Kristianstad',
39
+ Malmo = 'Malmo',
40
+ Goteborg = 'Goteborg',
41
+ Aalborg = 'Aalborg',
42
+ Aarhus = 'Aarhus',
43
+ Kobenhavn = 'Kobenhavn',
44
+ Nykobingfalster = 'Nykobing Falster',
45
+ Ringkobing = 'Ringkobing',
46
+ Esbjerg = 'Esbjerg',
47
+ Odense = 'Odense',
48
+ Tromso = 'Tromso',
49
+ Bood = 'Bood',
50
+ Trondheim = 'Trondheim',
51
+ Oslo = 'Oslo',
52
+ Arendal = 'Arendal',
53
+ Bergen = 'Bergen',
54
+ Stavanger = 'Stavanger',
55
+ }
56
+
57
+ export const map: GameMap = {
58
+ name: 'Northern Europe',
59
+ cities: [
60
+ { name: Cities.Oulu, region: Regions.Brown, x: 514, y: 376 },
61
+ { name: Cities.Kuopid, region: Regions.Brown, x: 551, y: 474 },
62
+ { name: Cities.Tampere, region: Regions.Brown, x: 484, y: 544 },
63
+ { name: Cities.Helsinki, region: Regions.Brown, x: 513, y: 602 },
64
+ { name: Cities.Espoo, region: Regions.Brown, x: 457, y: 603 },
65
+ { name: Cities.Pori, region: Regions.Brown, x: 417, y: 540 },
66
+ { name: Cities.Turku, region: Regions.Brown, x: 416, y: 579 },
67
+ { name: Cities.Uppsala, region: Regions.Yellow, x: 365, y: 612 },
68
+ { name: Cities.Stockholm, region: Regions.Yellow, x: 360, y: 642 },
69
+ { name: Cities.Vasteras, region: Regions.Yellow, x: 308, y: 611 },
70
+ { name: Cities.Drebro, region: Regions.Yellow, x: 304, y: 641 },
71
+ { name: Cities.Sundsvall, region: Regions.Yellow, x: 332, y: 506 },
72
+ { name: Cities.Lulea, region: Regions.Yellow, x: 423, y: 345 },
73
+ { name: Cities.Ostersund, region: Regions.Yellow, x: 272, y: 462 },
74
+ { name: Cities.Tallinn, region: Regions.Pink, x: 487, y: 642 },
75
+ { name: Cities.Tartu, region: Regions.Pink, x: 544, y: 689 },
76
+ { name: Cities.Daugavpils, region: Regions.Pink, x: 547, y: 771 },
77
+ { name: Cities.Vilnius, region: Regions.Pink, x: 520, y: 819 },
78
+ { name: Cities.Kaunas, region: Regions.Pink, x: 458, y: 811 },
79
+ { name: Cities.Rica, region: Regions.Pink, x: 472, y: 734 },
80
+ { name: Cities.Klaipeda, region: Regions.Pink, x: 411, y: 784 },
81
+ { name: Cities.Karlstad, region: Regions.Purple, x: 246, y: 629 },
82
+ { name: Cities.Linkopinc, region: Regions.Purple, x: 309, y: 676 },
83
+ { name: Cities.Jonkoping, region: Regions.Purple, x: 285, y: 712 },
84
+ { name: Cities.Visby, region: Regions.Purple, x: 364, y: 717 },
85
+ { name: Cities.Kristianstad, region: Regions.Purple, x: 330, y: 750 },
86
+ { name: Cities.Malmo, region: Regions.Purple, x: 268, y: 778 },
87
+ { name: Cities.Goteborg, region: Regions.Purple, x: 231, y: 700 },
88
+ { name: Cities.Aalborg, region: Regions.Orange, x: 188, y: 726 },
89
+ { name: Cities.Aarhus, region: Regions.Orange, x: 191, y: 761 },
90
+ { name: Cities.Kobenhavn, region: Regions.Orange, x: 216, y: 787 },
91
+ { name: Cities.Nykobingfalster, region: Regions.Orange, x: 224, y: 815 },
92
+ { name: Cities.Ringkobing, region: Regions.Orange, x: 133, y: 742 },
93
+ { name: Cities.Esbjerg, region: Regions.Orange, x: 128, y: 769 },
94
+ { name: Cities.Odense, region: Regions.Orange, x: 162, y: 797 },
95
+ { name: Cities.Tromso, region: Regions.Red, x: 371, y: 122 },
96
+ { name: Cities.Bood, region: Regions.Red, x: 276, y: 254 },
97
+ { name: Cities.Trondheim, region: Regions.Red, x: 173, y: 450 },
98
+ { name: Cities.Oslo, region: Regions.Red, x: 176, y: 606 },
99
+ { name: Cities.Arendal, region: Regions.Red, x: 145, y: 651 },
100
+ { name: Cities.Bergen, region: Regions.Red, x: 68, y: 586 },
101
+ { name: Cities.Stavanger, region: Regions.Red, x: 72, y: 647 },
102
+ ],
103
+ connections: [
104
+ { nodes: [Cities.Bood, Cities.Tromso], cost: 17 },
105
+ { nodes: [Cities.Tromso, Cities.Oulu], cost: 25 },
106
+ { nodes: [Cities.Oulu, Cities.Kuopid], cost: 10 },
107
+ { nodes: [Cities.Lulea, Cities.Tromso], cost: 19 },
108
+ { nodes: [Cities.Lulea, Cities.Oulu], cost: 13 },
109
+ { nodes: [Cities.Oulu, Cities.Pori], cost: 15 },
110
+ { nodes: [Cities.Oulu, Cities.Tampere], cost: 14 },
111
+ { nodes: [Cities.Sundsvall, Cities.Lulea], cost: 16 },
112
+ { nodes: [Cities.Lulea, Cities.Bood], cost: 16 },
113
+ { nodes: [Cities.Bood, Cities.Ostersund], cost: 18 },
114
+ { nodes: [Cities.Ostersund, Cities.Lulea], cost: 17 },
115
+ { nodes: [Cities.Lulea, Cities.Pori], cost: 22 },
116
+ { nodes: [Cities.Pori, Cities.Sundsvall], cost: 17 },
117
+ { nodes: [Cities.Bood, Cities.Trondheim], cost: 21 },
118
+ { nodes: [Cities.Trondheim, Cities.Bergen], cost: 17 },
119
+ { nodes: [Cities.Trondheim, Cities.Oslo], cost: 17 },
120
+ { nodes: [Cities.Oslo, Cities.Ostersund], cost: 18 },
121
+ { nodes: [Cities.Ostersund, Cities.Karlstad], cost: 16 },
122
+ { nodes: [Cities.Bergen, Cities.Oslo], cost: 15 },
123
+ { nodes: [Cities.Oslo, Cities.Stavanger], cost: 11 },
124
+ { nodes: [Cities.Stavanger, Cities.Arendal], cost: 8 },
125
+ { nodes: [Cities.Arendal, Cities.Oslo], cost: 7 },
126
+ { nodes: [Cities.Bergen, Cities.Stavanger], cost: 9 },
127
+ { nodes: [Cities.Arendal, Cities.Ringkobing], cost: 19 },
128
+ { nodes: [Cities.Ringkobing, Cities.Esbjerg], cost: 4 },
129
+ { nodes: [Cities.Esbjerg, Cities.Odense], cost: 5 },
130
+ { nodes: [Cities.Odense, Cities.Nykobingfalster], cost: 8 },
131
+ { nodes: [Cities.Arendal, Cities.Aalborg], cost: 16 },
132
+ { nodes: [Cities.Arendal, Cities.Goteborg], cost: 19 },
133
+ { nodes: [Cities.Goteborg, Cities.Oslo], cost: 11 },
134
+ { nodes: [Cities.Oslo, Cities.Karlstad], cost: 7 },
135
+ { nodes: [Cities.Karlstad, Cities.Goteborg], cost: 9 },
136
+ { nodes: [Cities.Karlstad, Cities.Jonkoping], cost: 9 },
137
+ { nodes: [Cities.Karlstad, Cities.Linkopinc], cost: 7 },
138
+ { nodes: [Cities.Tampere, Cities.Kuopid], cost: 10 },
139
+ { nodes: [Cities.Tampere, Cities.Pori], cost: 4 },
140
+ { nodes: [Cities.Tampere, Cities.Turku], cost: 5 },
141
+ { nodes: [Cities.Tampere, Cities.Espoo], cost: 5 },
142
+ { nodes: [Cities.Tampere, Cities.Helsinki], cost: 6 },
143
+ { nodes: [Cities.Helsinki, Cities.Espoo], cost: 2 },
144
+ { nodes: [Cities.Espoo, Cities.Tallinn], cost: 7 },
145
+ { nodes: [Cities.Tallinn, Cities.Helsinki], cost: 7 },
146
+ { nodes: [Cities.Visby, Cities.Kristianstad], cost: 13 },
147
+ { nodes: [Cities.Visby, Cities.Klaipeda], cost: 19 },
148
+ { nodes: [Cities.Visby, Cities.Rica], cost: 20 },
149
+ { nodes: [Cities.Rica, Cities.Tallinn], cost: 11 },
150
+ { nodes: [Cities.Tallinn, Cities.Tartu], cost: 5 },
151
+ { nodes: [Cities.Tartu, Cities.Daugavpils], cost: 9 },
152
+ { nodes: [Cities.Rica, Cities.Tartu], cost: 7 },
153
+ { nodes: [Cities.Daugavpils, Cities.Kaunas], cost: 7 },
154
+ { nodes: [Cities.Kaunas, Cities.Vilnius], cost: 3 },
155
+ { nodes: [Cities.Kaunas, Cities.Klaipeda], cost: 7 },
156
+ { nodes: [Cities.Klaipeda, Cities.Rica], cost: 8 },
157
+ { nodes: [Cities.Rica, Cities.Kaunas], cost: 8 },
158
+ { nodes: [Cities.Rica, Cities.Daugavpils], cost: 7 },
159
+ { nodes: [Cities.Daugavpils, Cities.Vilnius], cost: 5 },
160
+ { nodes: [Cities.Vasteras, Cities.Sundsvall], cost: 10 },
161
+ { nodes: [Cities.Sundsvall, Cities.Ostersund], cost: 7 },
162
+ { nodes: [Cities.Uppsala, Cities.Stockholm], cost: 2 },
163
+ { nodes: [Cities.Uppsala, Cities.Turku], cost: 15 },
164
+ { nodes: [Cities.Uppsala, Cities.Pori], cost: 17 },
165
+ { nodes: [Cities.Uppsala, Cities.Sundsvall], cost: 11 },
166
+ { nodes: [Cities.Vasteras, Cities.Drebro], cost: 5 },
167
+ { nodes: [Cities.Drebro, Cities.Linkopinc], cost: 3 },
168
+ { nodes: [Cities.Linkopinc, Cities.Stockholm], cost: 7 },
169
+ { nodes: [Cities.Visby, Cities.Stockholm], cost: 12 },
170
+ { nodes: [Cities.Visby, Cities.Linkopinc], cost: 9 },
171
+ { nodes: [Cities.Jonkoping, Cities.Malmo], cost: 10 },
172
+ { nodes: [Cities.Jonkoping, Cities.Kristianstad], cost: 8 },
173
+ { nodes: [Cities.Kristianstad, Cities.Malmo], cost: 3 },
174
+ { nodes: [Cities.Malmo, Cities.Kobenhavn], cost: 3 },
175
+ { nodes: [Cities.Kobenhavn, Cities.Nykobingfalster], cost: 6 },
176
+ { nodes: [Cities.Odense, Cities.Aarhus], cost: 7 },
177
+ { nodes: [Cities.Aarhus, Cities.Aalborg], cost: 3 },
178
+ { nodes: [Cities.Aalborg, Cities.Goteborg], cost: 11 },
179
+ { nodes: [Cities.Kobenhavn, Cities.Goteborg], cost: 18 },
180
+ { nodes: [Cities.Goteborg, Cities.Jonkoping], cost: 4 },
181
+ { nodes: [Cities.Trondheim, Cities.Ostersund], cost: 9 },
182
+ { nodes: [Cities.Vasteras, Cities.Stockholm], cost: 4 },
183
+ { nodes: [Cities.Esbjerg, Cities.Aarhus], cost: 5 },
184
+ { nodes: [Cities.Jonkoping, Cities.Linkopinc], cost: 5 },
185
+ { nodes: [Cities.Kobenhavn, Cities.Jonkoping], cost: 12 },
186
+ { nodes: [Cities.Karlstad, Cities.Drebro], cost: 4 },
187
+ { nodes: [Cities.Vasteras, Cities.Uppsala], cost: 2 },
188
+ { nodes: [Cities.Odense, Cities.Kobenhavn], cost: 7 },
189
+ { nodes: [Cities.Kobenhavn, Cities.Aarhus], cost: 10 },
190
+ { nodes: [Cities.Ringkobing, Cities.Aalborg], cost: 5 },
191
+ { nodes: [Cities.Linkopinc, Cities.Kristianstad], cost: 9 },
192
+ { nodes: [Cities.Drebro, Cities.Stockholm], cost: 7 },
193
+ { nodes: [Cities.Espoo, Cities.Turku], cost: 4 },
194
+ { nodes: [Cities.Pori, Cities.Turku], cost: 4 },
195
+ ],
196
+ };