# House rules

## Scoring system

The scripts generating the league tables for 1996-2007 use the following
code to compute the scores:

for p in self.pow_by_letter.values():
pscore = ((0.2 * (p.last_year - self.variant.first_year + 1))
/ (self.last_year - self.variant.first_year + 1))
mul1 = ((0.7 * p.end_sc) / winning_end_sc)
mul2 = (1 + (p.end_sc - p.start_sc)
/ (7.0 * (winning_end_sc - winning_start_sc)))
pscore = pscore + mul1 * mul2
p.prescore = pscore
total = 0
for p in self.pow_by_letter.values():
total = total + p.prescore
factor = len(self.pow_by_letter) * 50.0 / total
for p in self.pow_by_letter.values():
p.score = factor * p.prescore

This is the Python
formulation of the following algorithm:

Each player is first given a prescore. A
player who has been eliminated he receives a prescore of

where Y_{E} is the year the player was eliminated in and
Y_{G} is the number of years that the game was played.

A player who has not been eliminated receives a prescore of

where F_{P}, S_{P}, F_{W}, S_{W}
are the number of final and starting SCs of the player and the winner
of the game respectively (it may be noted that this gives the winner
a prescore of 1.00).

The prescores of the players are then all scaled up by a factor so
that the average score in the game is 50.

## Convoys

A convoy is successful if there is at least one unbroken convoy
for the army from its origin to its destination.

If a convoy paradox arises the convoyed army does not cut support
given by a unit in the destination province to an attack on a fleet
necessary for convoying the army.

## Variants

**Octarine:** The starting units in Hung Hung and Terror Incognita
are armies.

Return to the DipSoc main page