fairland: Try harder to deliver the requested amount of land

Planned island sizes are random with an expected value that matches
the average size requested by the user.  Can be off quite a bit when
the number of islands is small.  Also, actual island size can be
smaller than planned size when space is tight.

Instead of picking random island sizes independently, pick a random
split of their requested total size.

To reduce the probability of islands not growing to their planned
size, grow large islands before smaller ones.

To compensate for inability to grow, carry the difference over to the
next island size.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2020-08-11 17:58:23 +02:00
parent 696d31460c
commit 56c014806e
10 changed files with 3940 additions and 3913 deletions

View file

@ -67,17 +67,22 @@
* in one such sphere, and each sphere contains the same number of
* islands with the same sizes.
*
* Pick an island size, and place one island's first sector into each
* sphere, randomly. Then add one sector to each island in turn,
* until they have the intended size. Repeat until the specified
* number of islands has been grown.
* First, split the specified number of island sectors per continent
* randomly into the island sizes. Sort by size so that larger
* islands are grown before smaller ones, to give the large ones the
* best chance to grow to their planned size.
*
* Then place one island's first sector into each sphere, randomly.
* Add one sector to each island in turn, until they have the intended
* size. Repeat until the specified number of islands has been grown.
*
* If placement fails due to lack of room, start over, just like for
* continents.
*
* Growing works as for continents, except the minimum distance for
* additional islands applies, and growing simply stops when any of
* the islands being grown lacks the room to grow further.
* the islands being grown lacks the room to grow further. The number
* of sectors not grown carries over to the next island size.
*
* 4. Compute elevation
*
@ -1111,6 +1116,32 @@ place_island(int c)
return n;
}
static int
int_cmp(const void *a, const void *b)
{
return *(int *)b - *(int *)a;
}
static int *
size_islands(void)
{
int n = ni / nc;
int *isiz = malloc(n * sizeof(*isiz));
int r0, r1, i;
isiz[0] = n * is;
r1 = roll0(is);
for (i = 1; i < n; i++) {
r0 = r1;
r1 = roll0(is);
isiz[i] = is + r1 - r0;
isiz[0] -= isiz[i];
}
qsort(isiz, n, sizeof(*isiz), int_cmp);
return isiz;
}
/*
* Grow the additional islands.
* Return 1 on success, 0 on error.
@ -1118,25 +1149,27 @@ place_island(int c)
static int
grow_islands(void)
{
int n = ni / nc;
int stunted_islands = 0;
int *island_size = size_islands();
int xzone_valid = 0;
int carry = 0;
int i, j, c, done, secs, isiz, x, y;
init_spheres_of_influence();
for (i = 0; i < n; i++) {
for (i = 0; i < ni / nc; i++) {
c = nc + i * nc;
if (!xzone_valid)
xzone_init(c);
isiz = roll(is) + roll0(is);
carry += island_size[i];
isiz = MIN(2 * is, carry);
for (j = 0; j < nc; j++) {
isecs[c + j] = 0;
if (!place_island(c + j)) {
qprint("\nNo room for island #%d\n", c - nc + j + 1);
free(island_size);
return 0;
}
}
@ -1164,18 +1197,18 @@ grow_islands(void)
xzone_valid = 0;
}
for (j = 0; j < nc; j++)
stunted_islands += isecs[c + j] != isiz;
for (j = 0; j < nc; j++)
qprint(" %d(%d)", c - nc + j + 1, isecs[c + j]);
carry -= secs;
}
free(island_size);
qprint("\n");
if (stunted_islands)
qprint("%d stunted island%s\n",
stunted_islands, splur(stunted_islands));
if (carry)
qprint("Only managed to grow %d out of %d island sectors.\n",
is * ni - carry * nc, is * ni);
for (c = nc; c < nc + ni; c++)
find_coast(c);

View file

@ -15,41 +15,41 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(6) 2(6) 3(6) 4(9) 5(9) 6(9) 7(4) 8(4) 9(4) 10(9) 11(9) 12(9) 13(11) 14(11) 15(11)
growing islands: 1(14) 2(14) 3(14) 4(12) 5(12) 6(12) 7(11) 8(11) 9(11) 10(8) 11(8) 12(8) 13(5) 14(5) 15(5)
elevating land...
writing to sectors file...
. . . . . % . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . % % . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . % % % . . # . . . . . . . % . . . . . . . . . . . . . .
. . . % % % . # # # . # . . . . . % . . . . % % % . . . . . . .
. . . . % % . # c c # # . . . . % % % . . . % % % % . . . . . .
. . . . . . . # # # # # . . . % % % . . . . % % . . . . . . . .
% . . . . . . . # # # # . % % . % . . . . . . % . % % % . . . %
. . . . . . . # # # # . % % % . . . . . . . % . % % % . . . % %
. . . . . . . . # # # # . % . . . . . . . . . . . % % . . . . .
. . . . . . . . # # . . . . . . . . . . . . . . . % . . . . . .
% . . % % % . . . . % % % % . . . . . . . . . . . . . . % % . .
. . . . . . . . . . % % % . . . . . . . . . . . . . . . . . . .
. . . . . . . . . # . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . % % . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . % % % . . . . . . . # . . . . . . . . . . . .
. . . . . . . . % % % . . . . . . . # # # . . . . . . . . . . .
. . . . . . . . . . % . . . . . . . . # # # . . . . . . . . . .
. . . . . . . # # # . # . . . . . . . . . . . . . . . . . . . .
. . . . . . . # c c # # . . . . . . . . . . . . . . . . . . . .
. . . . % % . # # # # # . % % . . . . . . . . . . . . . . . . .
. . . . % % % . # # # # . % % % . . . . . . . . . . . . . . . .
. . . . % % . # # # # . % % % % . . % % % . . . . . . . . . . .
. % % . % % % . # # # # . % % % . . % % % % . . . . . . . . . .
% % % . % . . . # # . . % % . . . . . % . . . . . . . . . % % .
. . % % . . . . . # . . . . . . . . . . . . . . . . . . . . % %
. . . % . . . . . . . . . . . . . . . . . . . . . . . . . % % %
% . . . . . . . . . . . . . . . . . . # . . . . . . . . . % % %
. . . . . . . . . . . . . . . . . . # # # . . . . . . . . % . .
. . . . . . . . . . . . . . . . . . . # # # . . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # . . . . . . . . . .
. . . . . . . . . . . . . . . . . . # # # # # . . . . . . . . .
. . . . . . . . . . . . . . . . . # # a a . . . . . . . . . . .
. . # # . # . . . % % % . . . . . # # # # # . . . . . . . . . .
. # # # # # # . % % % % . . . . . # # # # . . . . . . . . . . .
. # # # b b # . % % % % . . . . . . # . . . . . . . . . . . . .
. # # # # # . . . . . . . . . . . . . . . . . . . . . . . % . .
. # # # # # # . . % % % % . . . . % % . . . . . . . . . . % % .
. . . # # # . . . % % % . . . . . % % . . . % % . . . . . % . .
. % % . # . . . . . % % . . . . . . . . . . % % % % . . . . . .
. % % . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . % % . . . . . . . . . . . . . . . % % . . . . . . . . . . .
. % % % . . . . . . . . . . . . . . . % % % . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . % % % % . . . . . . . . .
% % % . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. % % . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . # # . # . . . . . . . . . . . # # # # # . . . . . . . . . .
. # # # # # # . . . . . . . . . . # # # # . . . . . . . . . . .
. # # # b b # . . . . . . . . . . . # . . . . . . . . . . % . .
. # # # # # . . . . . . . . . . . . . . . . . . . . . . % % . .
. # # # # # # . . . . . . . . . % % % . . . . . . . . . . % % %
. . . # # # . . . . . . . . . % % % % . . . . . % . . . . % % .
. . . . # . . . . . . . . . . % % % % . . . . . % % . . . . . .
. . . . . . . . . % % . . . . % % % . . . . . . % % . . . . . .
. . . . . . . . . % % % . . . . . . . % . . . % . . . . . . . .
. . % . . . . . . . . . . . . . % % % % . . % % % . . . . . . .
% % % . . . . . . . . . . . . . . % % % % . % % % % . . . . . .
% % % % . . . . . . . . . . . . . . % % % . % % % . . . % % . .
% % % . . . . . . . . % % . . . . . . . . . . . . . . . % % % .
% % . % % . . . . . % % % . . . . . . . . . . . . . . % % % % .
A script for adding all the countries can be found in "sandbox/no-spike-newcap_script".

File diff suppressed because it is too large Load diff

View file

@ -21,27 +21,27 @@ writing to sectors file...
. . . . . . . . . . . . . . . . . . . # # # # # . . . . . . . .
. . . . . . . . . . . . . . . . . . . # # . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . # # . . . . . . . . . . .
. . . . # # # . . . . . . . . % % % . . . . . . . . . . . . . .
. . . . # # # # . . . . . . . % % % % % % . . . . . . . . . . .
. . . # # e e # # . . . . . . % % % % % % . . . . . . . . . . .
. . . . . . . . . . . . . . . . % % . # # . . . . . . . . . . .
. . . . # # # . . . . . . . % % % % . . . . . . . . . . . . . .
. . . . # # # # . . . . . . . % % % % % . . . . . . . . . . . .
. . . # # e e # # . . . . . . % % % % . . . . . . . . . . . . .
. . . # # # # # # # . . . . . . . . . . . . . . . . . . . . . .
% . # # . # # # # . . . . . . . . . . . . % % % . . . . . . . %
% % . # . . # # # . . . . . . . . . . . . . % % % . . . . . % %
% . # # . # # # # . . . . . . . . . . . . % % % % . . . . % % %
% % . # . . # # # . . . . . . . . . . . . . % % % % . . . . % %
% % . . . . . . . . . . . . . . . . . . . % % % % . . . . . % %
% % % . . . . . . . . . . . . . . . . # . . % % % % . . . . . .
. % % . . . . . . . . . . . . . . . # # # . . % . . . . . . . .
% % % . . . . . . . . . . . . . . . . # . . % % % . . . . . . .
. . . . . . . . . . . . . . . . . . # # # . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . c c # # # . . . . . . . . .
. . . . . . . . . . . . . . . # # # # # # # # . . . . . . . . .
. . . . . . . . % % % . . . . . # # # # # # # . . . . . . . . .
. % % % % . . . % % % % . . . . # # # # # # . . . . . . # # # #
. % % % % . . . . % % % % . . . . . . . . . . . . . . . # # # #
. % % % % . . . . % % % . . . . . . . . . . . . . . . . # a a #
. . % % % . . . . . . . % . . . . . . . . . . . . . . . # # # #
. . . . . . . . . . # . . . . . . . . . . . . . . . . . # # # #
. . . . . . . . . . # # . . . . . . . . . . . . . . . . . # # #
. . . . . . . . # # # # . . . . . . . . . . . . . . . . # # # #
. . . . . . . . . d d # . . . . . . . . . . . . . . . . . . # #
. . . . . . . % % % % . . . . . # # # # # # . . . . . . # # # #
. . . . . . . . % % % % . . . . . . . . . . . . . . . . # # # #
. . . . . . . . % % % . . . . . . . . . . . . . . % % . # a a #
. . . . . . . . . % . . . . . . . . . . . . . . . % % . # # # #
. . . . . . . . . . # . . . . . . . . . . . . . % % % . # # # #
. . . . . . . . . . # # . . . . . . . . . . . . . % % % . # # #
. . . . . . . . # # # # . . . . . . . . . . . . % % % . # # # #
. . . . . . . . . d d # . . . . . . . . . . . . % % . . . . # #
. . . . . . . . # # # # . . . . . . . . . . . . . . . . . . # .
. . . . . . . . # # # # # . . . . . . . . . . . . . . . . . . .
. . . . . . . # # # # # # . . . . . . . . . . . . . . . . . . .

File diff suppressed because it is too large Load diff

View file

@ -15,42 +15,42 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(11) 2(11) 3(11) 4(11) 5(11) 6(11) 7(11) 8(11)
8 stunted islands
growing islands: 1(3) 2(3) 3(3) 4(3) 5(3) 6(3) 7(3) 8(3)
Only managed to grow 24 out of 160 island sectors.
elevating land...
writing to sectors file...
^ b b # # . . . . ^ % . % % . . % % ^ . . . . . . . . . . . . .
# # ^ # . . . % % % % . % % % % % % . . . . . . . . % % . # # #
# # # # . . . % % % % . % % % . . . . . . . . . . . % % % . # #
# # . . . . . . . % . . % % % . . . . . . . . . . . % ^ % . . #
. # . . . . . . # . . . . % % ^ % . . . . . . . . . . % % % . .
. . . . . . . # # . . . . . % . . # # . . . . . . . . . . . . .
. . . . . # # # ^ # . . . # . . # # # # # # . . . . . . . . . #
. . . . # # # # # . . . . # # # ^ f f . . # # . . . . . . . # .
# . . . . # # e e ^ # . . . . # # ^ # . . . # . . . . . . . # #
. ^ . . . . # # # # # # . . # ^ # # . . . . # . . . . . . ^ # #
. % % . . . . # ^ . # # . . # # # . . . . . . . . . . . . # ^ #
. % % . . . . # . . . . . . . . . . . . . . . . . . . . h h # ^
. % % . . . . . . . . . . . . . . . . . . . . . . . # # # # # #
% % % . . . . . . . . . . . . . . . . . . . . . . # # # . . # .
. . % . . . . . . . . . . . . . . . . # . . . . . # . # . . # #
. . . . . . . . . . . . . . . . . # # # # # # . . . . # . . . .
. . . . . . . # . # # . . . . . . . . # ^ # ^ # . . . . . . . .
. . . . . . ^ # # # . . . . . . . . # # d d # # . . . . . . . .
% . . . . # # # # . . . . . . . . . # # ^ # # # # . . . . . . %
% . . . . # # # . . . . . . . . . # . # . . . # . . . . . # . ^
% . . . # # c c . . . . . . . . . # . . . % % . # . . . # # # .
% . . . . # # # . . . . . . . . . . % % % ^ % . . . . # # # . %
% % . . . # # # . . . . . . . . . . % . . % % % . . . # g g # .
% % . . . . # # . . . . . . . . . . . . . . . . . # # ^ ^ # # .
. . . . . . . ^ # . . . . . . # ^ . . . . . . . . . # # # ^ # .
. . . . . % . # ^ . . . . . . # . # # . . . . . . . # # . . # #
. . . . . . ^ . . . . . . # # # # # # . . . . . . . . . . . # #
. . . . . % % % . . . . . . . ^ # # # # . . . . . . . . # # . .
. . . . . . % % % . . . . . . # a a # ^ # . . . . . . . . . . .
. # . . . . . % % % . . . . # # # # # # . . . . . . . . . . . .
^ # # . . . . . . . . . . . . . . # # . . . . . . . . . . . . .
# # # # . . . . . . . . . . . . . . . . . . . . . . . . . . . .
# b b # # . . . . . . . . . . . . . . . . . . . . . . . . . . .
^ # # # . . . . % . . . . . . . . . . . . . . . . . . . . # # #
# # # # . . . . % % . . . . . . . . . . . . . . . . . . . . # #
# ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #
. # . % . . . . # . . . . . % % . . . . . . . . . . . . . . . .
. . % . . . . # # . . . . . % . . # # . . . . . . . . . . . . .
. . % . . # # # # # . . . # . . # # # # # # . . . . . . . . . #
. . . . # # # ^ # . . . . # # # # f f . . # # . . . . . . . # .
# . . . . # # e e # # . . . . # # ^ ^ . . . # . . . . . . . ^ #
. . . . . . # # ^ # # # . . ^ # # # . . . . # . . . . . . # # #
. % % . . . . ^ # . # # . . # # # . . . . . . . . . . . . # # #
. % . . . . . # . . . . . . . . . . . . . . . . . . . . h h # #
. . . . . . . . . . . . . . . . . . . . . . . . . . # ^ ^ # # #
. . . . . . . . . . . . . . . . . . . . . . . . . # # # . . # .
. . . . . % . . . . . . . . . . . . . # . . . . . # . # . . # #
. . . . % % . . . . . . . . . % . # # # # # # . . . . # . . . .
. . . . . . . # . ^ # . . . . . % . . # # # # # . . . . . . . .
. . . . . . # # # # . . . . . % . . # ^ d d # # . . . . . . . .
. . . . . # # ^ # . . . . . . . . . # # # # ^ # # . . . . . . .
. . . . . # # # . . . . . . . . . # . ^ . . . # . . . . . # . .
. . . . # # c c . . . . . . . . . # . . . . . . # . . . # # # .
% . . . . # # # . . . . . % . . . . . . . . . . . . . # # # . .
% % . . . # # # . . . . . % . . . . . . . . . . . . . # g g # .
. . . . . . # # . . . . % . . . . . . . . . . . . # # # # ^ # .
. . . . . . . # ^ . . . . . . # # . . . . . . . . . # ^ # # # .
. . . . . . . # # . . . . . . # . # ^ . . . . . . . # ^ . . # #
. . . . . . . . . . . . . # # # # # # . . . . . . . . . . . # #
. . . . . . . . . . . . . . . # ^ ^ # # . . . . . . . . # # . .
. . . . . . . . . . . . . . . # a a # # # . . . . . . . . . . .
. # . . . . . . . . . . . . # # # # # # . . . . . . . . . . . .
# # # . . . . . . . . . . . . . . # # . . . . . . . . . . . . .
# ^ # # . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A script for adding all the countries can be found in "sandbox/spike-newcap_script".

File diff suppressed because it is too large Load diff

View file

@ -1,17 +1,17 @@
add 1 1 1 p
newcap 1 47,11
newcap 1 5,11
add 2 2 2 p
newcap 2 42,0
newcap 2 53,3
add 3 3 3 p
newcap 3 57,23
newcap 3 46,16
add 4 4 4 p
newcap 4 61,3
newcap 4 16,0
add 5 5 5 p
newcap 5 31,21
newcap 5 38,28
add 6 6 6 p
newcap 6 14,26
newcap 6 61,23
add 7 7 7 p
newcap 7 24,6
newcap 7 31,7
add 8 8 8 p
newcap 8 9,15
newcap 8 20,20
add 9 visitor visitor v

View file

@ -16,58 +16,52 @@ seed is 1
placing capitals...
growing continents...
growing islands: 1(2) 2(2) 3(2) 4(2) 5(2) 6(2) 7(2) 8(2) 9(1) 10(1) 11(1) 12(1) 13(1) 14(1) 15(1) 16(1)
No room for island #23
No room for island #24
try #2 (out of 10)...
placing capitals...
growing continents...
Only managed to grow 33 out of 35 sectors.
Only managed to grow 34 out of 35 sectors.
try #3 (out of 10)...
placing capitals...
growing continents...
growing islands: 1(2) 2(2) 3(2) 4(2) 5(2) 6(2) 7(2) 8(2) 9(1) 10(1) 11(1) 12(1) 13(1) 14(1) 15(1) 16(1)
No room for island #24
try #4 (out of 10)...
placing capitals...
growing continents...
growing islands: 1(1) 2(1) 3(1) 4(1) 5(1) 6(1) 7(1) 8(1) 9(1) 10(1) 11(1) 12(1) 13(1) 14(1) 15(1) 16(1) 17(1) 18(1) 19(1) 20(1) 21(1) 22(1) 23(1) 24(1)
24 stunted islands
Only managed to grow 24 out of 480 island sectors.
elevating land...
writing to sectors file...
. . . . . . . . . . . . . . . . . . . # # # # # # . . . . . . %
. . . . . . . . . . . . . . . . . . . # # # # # # # . . . . . .
. . . . . . . % . . . . . . . . . . . . # # # # # # . . . . . .
. # # # . . . . . . . . . . . . . . . . . . . . . . . . . . # .
# # # # # . . . . . . # # # # # . . . . . . . . . . . . . . # #
e # # # . . . . . # # # # # # # . . . . . . . . . . . % . . # e
# # # # # . . . . . # # # # # # # . . % . . . . . . . . . . # #
# # # . . . . % . . # # c c # # # . . . . . . . . . . . . . # #
# # # . . . . . . . . # # # # # # . . . . . # # # # . . . . . #
# . . . . . . . . . . . # # . . . . . . . # # # # # . . . . . #
. . . . . . . . . . . . . # . . . . . . . # # f f # # . . . . .
. . . . . . . . . . . . . . . . % . . . # # # # # # # . . . . .
. . . . . . # # . . % . . . . . . . . . . # # # # # # # . . . %
. % . . . # # # . . . . . . . . . . . . . . # # # # . . . . . .
. . . . # # # # # . . . % . . . . . . % . . . # # . . . . . . .
. . . # # # # # . . . . . . . . . . . . . . . . . . . . % . . %
. . . # # b b # # . . . . . # # # . . . . . . . . . . . . . . .
. . . # # # # # # . . . . . # # # . . . . . % . . . . . . . . .
. . . . # # # # # . . . . . # # # # # . . . . . . . . . . . . %
. . . # # # . . . . . . . # d d # # . . % . . . . . . . . . . .
. . . . . . . . . . . . . # # # # # # . . . . . . . # # # . . .
. . . . . . . . . . . . . # # # # # . . . . % . . # # # # . . .
. . . . . . . . . . . . . . # # # # . . . . . . . . # # g g # .
. . . . . . . . . . . . . . # # # . . . % . . . . . # # # # # #
. . . . . % . . . # . . . . . # . . . . . . . . . . # # # # # #
. . . . . . . # # # . . . . . . . . . . . . . . . . # # # # # .
. . . . . . . # # # # . . . . . . . . . % . . . . . . # # # # .
. . . . . # # a a # # . . . . . . % . . . . . . . . . # # . . .
. . . . . # # # # # # # . . . . . . . . . . . . . . . . . . . .
. . . . . # # # # # # # . . . . . . . # # # # . . . . . . . . %
. . . . . . . # # # # # # . . . . . # # # # # # . . . . . . . .
. . . . . . . # . . . . . . % . . . # # h h # # . . . % . . . .
. . . . . # # c c # . . . % . . . . . . . . . % . . . . . . . .
. . . . # # # # # . . . . . . . . % . . . . . . . # # # . . . .
. . % . . # # # # . . . . . . . . . . . . . . . . # # # # # # .
. . . . . . . . . . . . . . . . . . . . . . . . . # # # # # # .
. . . . . . . . . . . . . . # # # # . . % . . . . # h h # # # .
. % . . . . . . % . . . # # # # # # . . . . % . . # # # # # . .
. . . . . . . . . . . . # # # # # # . . . . . . . # # # # # . .
. . . . . . . . . . . . # # f f # # . . . . . . . # # # # . . .
. . # # # # # . . . . . # # # # # # # . . . . . . . . . . . . .
. # # # # # # . . . . . # # # # # # . . . . . . . . . . . . . .
. # # # # # # # . . . . . . . . . . . . % . . % . . . . . . . .
# # # # # # # . . . . . . . . . . . . . . . . . . . . . . . . .
. # # e e # . . . . . . . . . . . . . . . . . . . . . . . . . .
. # # # # . . . . . . . . . . % . . . . . . # # # # # # . . . .
. . . . # . . . . . . . . . . . . . . . . . # # # # # # . . . .
. . . . . . . . . . # # # # . . . . . . . . # # # # # . . . . %
. . . . . . . . . . # # # # # . . . . % . . # # d d # # . . . .
. . . . % . . . # # # # # # . . . . . . . . # # # # # # . . . .
. . . . . . . . . # # # # # . . . . . . . . . # # # # . . . . .
# . . . . . . . # # b b # . . . % . . . % . . # . # . . . . . .
# # . . . . . . . # # # # . . . . . . . . . . . . . . . . . . .
# # . . . . . . . # # # . . . . . . . . . . . . . . . . . . . #
# # . . . . % . . # # # . . . . . # . . . . . . . . . . . . . #
g # . . . . . . . . . . . . . . # # # . . . . % . . % . . # # g
# # # . . . . . . . . . . . . . # # # # . . . . . . . . . # # #
# # # . . . . . . . . . % . . . # # # # # # . . . . . . # # # #
# # # . . . . . . . . . . . . . . # # # # # # . . . % . . # # #
. . . . . . . . . . . . . . . . . # a a # # # . . . . . . . # #
. . . . . . . # # # # . . . . . . . # # # # # . . . . . . . . .
. % . . . . # # # # # . . . . . . # # # # . . . . . . . . . . .
. . . . . . # # # # # # . . . . . . . . . . . . . . % . . . . .
. . . . . # # # # # # . . . . % . . . . . . . . . . . . . . . .
A script for adding all the countries can be found in "sandbox/stunted-newcap_script".

File diff suppressed because it is too large Load diff