fairland: Distribute islands more fairly among continents

fairland places islands of random size in random places, subject to
minimum distances.  Results are often less than fair, in particular
when the number of islands per continent is low: some continents have
more land nearby than others.  Increasing distances between islands
doesn't help much.  Deities commonly run fairland until they find the
result acceptable.

The next few commits will tackle this issue.  As a first step, this
one places islands closest to continents in turn, so that each
continent is closest to the same number of islands.  A continent is
closest to an island when it is closest to each of its sectors.

The number of islands must be a multiple of the number of continents
now.

Since fairland may be unable to place all islands, a continent may
still get fewer islands than it should.  The next commit will address
that.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2020-08-10 08:22:21 +02:00
parent d9425bb5da
commit d434e0cc87
9 changed files with 3644 additions and 3622 deletions

View file

@ -15,41 +15,41 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(9) 2(11) 3(15) 4(9) 5(12) 6(9) 7(7) 8(11) 9(15) 10(13) 11(10) 12(10) 13(4) 14(11) 15(8)
growing islands: 1(6) 2(10) 3(17) 4(10) 5(11) 6(6) 7(8) 8(12) 9(10) 10(10) 11(12) 12(10) 13(6) 14(17) 15(6)
elevating land...
writing to sectors file...
. . . . . % % % % . . . % % . . . . . % % % . % % . . . . . . .
. . . . . % % . . . . % % . . . . . % % % . % % % % . . . . . .
. . . . . . . . . # . . . . . . % % . . % % . % % % . . . . . .
. . . . . . . # # # . # . . . . % % % . . . . . . . . . . . . .
. . . . . . . # c c # # . . . . % % % % . . . . . . . . . . . .
. . . . . . . # # # # # . . . . % % % . . . . . . . . . . . . .
. . . . . . . . # # # # . . . . . . % . . . . . . . . . . . . .
. . . . . . . # # # # . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . # # # # . . . . . % % . . . . % % . . . . . . .
% . . . . . . . # # . . . . . . % % . . . . % % % . . . . . . .
% . . . . . . . . # . . . . . . . % % . . . % % % . . . . . . %
% . . . . . . . . . . . . . . . % % . . . . . % % . . . . . % %
% . . . . . . . . . . . . . . . . . . # . . . . . . . . . . % %
. . . . . . . . . . . . . . . . . . # # # . . . . . . . . . . .
% % . . . . . . . . . % . . . . . . . # # # . . . . . . . . . .
% . . . . . . . . . % % . . . . . . # # # # . . . . . . . . . %
% % . . . . . . . . % % . . . . . . # # # # # . . . . . . . . %
% . . . . . . . . . % % . . . . . # # a a . . . . . . . . . % %
% . # # . # . . . . . % % . . . . # # # # # . . . . . . . . % %
. # # # # # # . . . . . . . . . . # # # # . . . . . % . . . % %
. # # # b b # . . . % % % . . % . . # . . . . . % % % . . . . .
. # # # # # . . . % % % . % % % % . . . . . . . % % % . . . . .
. # # # # # # . . . % % % . % % % % . . . . . % % % % % . . . .
. . . # # # . . . . % . . . . % % % . . . . . . . . . . . . . .
. . . . # . . % % . . . . . . . % % . % % . . . . . . . . . . .
. . . . . . . % % . . . . . . % . . . % % % % . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . % % % . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . % % . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . % % . . . . . . % . . . . . . . . . . . . . . . . .
. . . . . % % % . . . . % % . . . . % % % . . . . . . . . . . .
% . . . . . . . . # . . . . . . . . . . . . . . . . . . . . . .
% . . . . . . # # # . # . . . . . . . . . . . . . . . . . . . %
% % % . . . . # c c # # . . . . . . . . . . . . . . . . . . . %
% % . . . . . # # # # # . . . . . . . . . . . . . . . . . . % %
% % . . . . . . # # # # . . . . . . . . . . . . . . . . . . . %
% % . . . . . # # # # . . . . . % % % % . . . . . . . . . . . %
. . . % % . % . # # # # . . . . . % % % % . . . . . . . . . . .
% % % % . % % . # # . . . . . . % % . . . . . . . . . . . . . .
. . . . . % % % . # . . . . . . . . . . . . . . . . . . . . . .
. . . . % % % % . . % % . . . . . . . . . . . . . . . . . % % %
% . . . . . . . . % % % . . . . . . . # . . . . . . . . . % % %
. . . . . . . . % % % % . . . . . . # # # . . . . . . . . % % .
. . . . . . . . . . % . . . . . . . . # # # . . . . . . . . % %
. . . . . % % % % . . . . . . . . . # # # # . . . . . . . . . .
. . . . . . % % % % % . . . . . . . # # # # # . . . . . . . . .
. . . . . . % % % . . . . . . . . # # a a . . . . . . . . . . .
. . # # . # . . . . . . . . % . . # # # # # . . . . . . . . . .
. # # # # # # . . . . . . . % % . # # # # . . . . . . . . . . .
. # # # 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

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

File diff suppressed because it is too large Load diff

View file

@ -15,41 +15,42 @@ World dimensions: 64x32
seed is 1
placing capitals...
growing continents...
growing islands: 1(13) 2(22) 3(29) 4(17) 5(30) 6(12) 7(27) 8(21)
growing islands: 1(14) 2(21) 3(38) 4(26) 5(21) 6(18) 7(3) 8(13)
4 stunted islands
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

@ -50,43 +50,43 @@ Only managed to grow 29 out of 37 sectors.
try #8 (out of 10)...
placing capitals...
growing continents...
growing islands: 1(13) 2(7) 3(10) 4(19) 5(23) 6(11) 7(22) 8(17) 9(6) 10(2) 11(11) 12(6) 13(2) 14(5) 15(2) 16(1)
No room for island #17
7 stunted islands
growing islands: 1(2) 2(7) 3(16) 4(11) 5(1) 6(2) 7(4) 8(2) 9(1) 10(1) 11(1)
No room for island #12
11 stunted islands
elevating land...
writing to sectors file...
. . # # # # # . . . . . . # # a a # # . . . . . % . . . . . . %
. . # # # # # . . . . . . # # a a # # . . . . . % . . . . . . .
. # # # # # # # . . . . . # # # # # . . . . . . % . . . . . . .
. # # h h # # . . . % % . . . # # # . . % % % . . % % % % % . .
# # # # # . . . . % % . . . . # # . . % . . . . . . . . % . . .
# # # # # . . . . % % % . . . . . . . % . . . . . . . . . . . .
# # # # . . . . . . . . . % . . . . % . . # # # # # # . . . . .
. . . # . . % . . . . . . . . . . % % . . # # # # # # . . % % .
. . . . . % . . . # # # . . . % % % . . # # # # # # . . % % % .
% . . . . % . . # # # # # . . . % % . . # # e e # # . . % % % %
. . % % % . . # # # # # # # . . . . . . # # # # # . . % . . . .
. . % % % . . # # # # # # # . . . . . . . # # # # . . % . . . .
. . . % . . # # # d d # # . . . . . . . . # # # . . % . . # # #
# . . . . . . . # # # # # # . . % % % . . . # . . . % . . # # #
. . . . . . . . . . # # . . . % % % . . . . . . . % . . # # # #
# # . . % % % . . . . . . . . % % % . . % . . . % % . . # # # #
# . . % % % % % . . . . . . . % % . . . % . . % % . . # # # g g
# # . . . % % % . . . . . . . . . . . . . . . % % . . # # # # #
# . . . . . . . . % % % % . . . . . # . . . . . % . . # # # # #
# . . % . . . . . . % % % % % . . # # # . . . . . . . . . . . .
. . % . . # . . . . % % % % . . # # # # # . . . . . . . . . . .
. . % . . # # # . . . % % % . . # # # # # # # . . % % . . % % .
% % . . # # # # # . . . % . . # # # b b # # # . . . . . . . % %
% % . . # # # # # # . . . . . . # # # # # # # . . . . . . . . .
% . . # # # c c # . . . . . . . # # # # # # . . % . . # # . . .
. % . . . # # # # # # . . % % . . . . . . . . . % . . # # # # .
% % . . # # # # # # # . . % % . . . . . . . . % . . # # # # . .
. % % . . . . . . # # . . . % % . . % % % % % % . . # # # # # .
. % . . . . . . . # . . . . . . . . . . . % % . . # # # # # # .
. % . . % % % % . . . . % . . . . . . . . . % . . # # f f # . .
. . . . . . . % . . . % . . # # # # # # . . % . . # # # # # . .
. . . . . . . . . . % % . . # # # # # # # . . % . . # # # # . .
. . # # # # . . . % % . . # # # # # # # # . . % . . # # . . . %
. # # h h # # . . . % . . . . # # # . . . . . . . . . . . . . .
# # # # # . . . . % . . . . . # # . . . . . . . . . . . . . . .
# # # # # . . . . . . . . . . . . . . . . . . . . . . . . . . .
# # # # . . . . . . . . . . . . . . . . . # # # # # # . . . . .
. . . # . . . . . . . . . . . . % % . . . # # # # # # . . . . .
. . . . . . . . . # # # . . . . . . . . # # # # # # . . . . . .
. . . . . . . . # # # # # . . . . . . . # # e e # # . . . . . .
. . . . . . . # # # # # # # . . % . . . # # # # # . . . . . . .
. . % . . . . # # # # # # # . . % . . . . # # # # . . . . . . .
. . % . . . # # # d d # # . . % % . . . . # # # . . . . . # # #
# . . % . . . . # # # # # # . . % % . . . . # . . . . . . # # #
. . . % . . . . . . # # . . . % . . . % . . . . . . . . # # # #
# # . . . . . . . . . . . . . % . . . . . . . . . . . . # # # #
# . . . . . . . . . . . . % % . . . . . . . . . . . . # # # g g
# # . . . % % % . . . . . % . . . . . . . % % . . . . # # # # #
# . . . . . . % % . . . . . . . . . # . . . % % . . . # # # # #
# . . . . . . . . % % % . . . . . # # # . . . . % . . . . . . .
. . . . . # . . . . % % . . . . # # # # # . . . % . . . . . . .
. . . . . # # # . . . % . . . . # # # # # # # . . % . . . . . .
. . . . # # # # # . . % . . . # # # b b # # # . . . . . . . . .
. % . . # # # # # # . . % . . . # # # # # # # . . . . . . . . .
. . . # # # c c # . . . % . . . # # # # # # . . . . . # # . . .
. . . . . # # # # # # . . % . . . . . . . . . . . . . # # # # .
. . . . # # # # # # # . . % . . . . . . . . . . . . # # # # . .
. . . . . . . . . # # . . . . . . . . . . . % . . . # # # # # .
. . . . . . . . . # . . . . . . . . . . . . . . . # # # # # # .
. . . . . . . . . . . . . . . . . . . . . . . . . # # f f # . .
. . . . . . . . . . . . . . # # # # # # . . . . . # # # # # . .
. . . . . . . . . . . . . . # # # # # # # . . . . . # # # # . .
. . # # # # . . . . % . . # # # # # # # # . . . . . # # . . . .
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