Mailing List
Mailing List
Web Links
Lspace Games Homepage

Assigning Powers in Diplomacy using Brute Force



The problem

There has been much discussion about the best methods for assigning powers.


I decided to take a brute force approach, and systematically test each possible combination of power assignments to see which were the best.

The program

The resulting program has been placed upon this site. QBasic will be needed. It should be supplied with MSDos. If you don't have a PC then you might use the program as inspiration for your own programming language.

Qbasic may be obtained in many places, it should already be on your system, if you run Dos or Windows. If it isn't there, you could search for it online....

To run the program, unzip the archive into wherever you want to put it.... go to that directory using the 'cd' command. Then type 'qbasic powers.bas'.

Qbasic should run, loading the program. To run it use the qbasic menu.

What it does

The program permutes all possible variations of power assignments and then scores them.

It outputs the ' satisfaction and the guy who is worst off.

I.e. Spread squared will prefer a distribution with lots of small differences over one with one large difference...

The file also produces a text file output for leisurely perusal. There follows some example putput, followed be some text about interpreting the output. As you can see, it doesn't remove all randomness - but it does reduce the choice to one of tossing a coin between equally good options.

Please feel free to skip over the output text to the discussion beyond!

--- Output text begins ---
This is the output generated by the powers.bas program.
The program is pretty basic, and so an explanation of the
output is in order.

Down the left hand side is the particular combination of
power assignments being investigated.
aefgirt means that the first player in the preference list
file gets Austria, the next England, and so on.... bear in
mind that the symbols actually used depend upon powin.txt

Next come the scores. The lower the score the better.
Note. The program calculates the scores and displays only
combinations which beat the last best score.
Which measure you use is up to you, but if you use this
program, do let your players know in advance which scoring
system you will use to assign powers.

The satisfaction score is a measure of how high up on the
list each choice was.

The spread is a simple measure of the difference in satisfaction
between players.... one large difference works out the same
as several small differences.

Spread SQ benefits an assignment with lots of small differences
compared to an assignment with one large difference in

aefgirt  Satis =  22   Spread =  20   Spread Sq =  80 
aefgitr  Satis =  19             23                97 
aefgrit           25   Spread =  17   Spread Sq =  69 
aefigrt           25   Spread =  17   Spread Sq =  67 
aefirgt           34   Spread =  15   Spread Sq =  59 
aeftrgi           34   Spread =  15   Spread Sq =  59 
aegfirt           22   Spread =  13   Spread Sq =  35 
aegfitr  Satis =  19   Spread =   9   Spread Sq =  21 
aegftir           20   Spread =   8   Spread Sq =  14 
aegiftr  Satis =  19             23                97 
aeifgrt  Satis =  19             16                46 
aeifgtr  Satis =  16   Spread =   5   Spread Sq =   9 
aeiftrg           17   Spread =   4   Spread Sq =   6 
aeigfrt  Satis =  16             19                65 
aeigftr  Satis =  13              8                16 
aerftig           17   Spread =   4   Spread Sq =   6 
aergitf  Satis =  13             15                41 
aetgfir  Satis =  13              8                16 
aetgirf  Satis =  13             15                41 
afiegtr  Satis =  13              8                14 
afreitg  Satis =  13             15                39 
aftegir  Satis =  13              8                14 
afteirg  Satis =  13             15                39 
eaigftr  Satis =  11             10                22 
eargitf  Satis =  11             17                51 
eatgfir  Satis =  11             10                22 
eatgirf  Satis =  11             17                51 
fegatir           23              5   Spread Sq =   5 
fgiater           24   Spread =   4   Spread Sq =   4 

The player preferences were:

--- Output text ends ---

Note. There was an error in the pref list. Player two did not specify all countries.... due to the way this prog works, that means that any missing countries are assigned a score of zero when assigned to this player... i.e. a very good score.

Error checking may be introduced later.... for now, I'm afraid you'll have to live with it, check preference lists by hand.

Ignoring this problem in the following discussion, the best choices are:

Satisfaction based - 
eaigftr  Satis =  11             10                22 
eargitf  Satis =  11             17                51 
eatgfir  Satis =  11             10                22 
eatgirf  Satis =  11