2 Scoring System
The end-game scoring function converts a player state into an integer score. This chapter formalizes the scoring rules and proves key properties that constrain the score range of any strategy.
2.1 Scoring components
Each farm animal (sheep, wild boar, cattle) scores \(1\) point per animal. For each of the three farm animal types not represented at all, the player loses \(2\) points. Dogs score \(0\) directly but enable sheep capacity.
Grain scores \(\lfloor (n+1)/2 \rfloor \) for \(n\) grain. Vegetables score \(1\) per vegetable.
Small pastures score \(2\) each, large pastures \(4\) each. Ore mines score \(3\), ruby mines score \(4\). Each dwarf scores \(1\). Gold scores \(1\) per gold. Rubies score \(1\) per ruby.
Each begging marker costs \(3\) points. Each unused board space costs \(1\) point.
The total score is the sum of all positive scoring components minus all penalties, plus furnishing bonus points.
2.2 Score bounds
For any animal counts \(a\), \(\text{penaltyMissingAnimals}(a) \le 8\). (At most 4 types missing at 2 points each.)
By case analysis on which animal types are present.
If a player has at least one of each farm animal type, \(\text{penaltyMissingAnimals}(a) = 0\).
Each type is present, so no \(-2\) penalty applies.
For \(n {\gt} 0\), \(\text{penaltyBegging}(n) \ge 3\). In fact \(\text{penaltyBegging}(n) = 3n\) (linear).
Direct from the definition \(\text{penaltyBegging}(n) = 3n\).
If \(a \le b\) then \(\text{scoreGrain}(a) \le \text{scoreGrain}(b)\).
The function \(\lfloor (n+1)/2 \rfloor \) is non-decreasing.
\(\text{penaltyUnusedSpaces}(24) = 24\).
By computation.
\(\text{scoreMines}(0,1) {\gt} \text{scoreMines}(1,0)\), i.e., a single ruby mine scores strictly more than a single ore mine.
\(\text{scoreMines}(0,1) = 4 {\gt} 3 = \text{scoreMines}(1,0)\).
2.3 Global score range
We define several reference points:
\(\text{theoreticalMinScore} = -28\) (max penalties, zero positive).
\(\text{doNothingScore} = -55\) (skip all actions for 12 rounds).
\(\text{theoreticalMaxSum} = 202\) (sum of maxed individual categories).
\(\text{practicalCeiling} = 140\) (attainable upper bound).
\(\text{practicalFloor} = 60\) (competent-play lower bound).
\(\text{theoreticalMinScore} = -28\).
By computation.
\(\text{doNothingScore} = -55 {\lt} 0\).
Direct computation: 12 rounds of harvests with no food produces \(\text{doNothingBeggingMarkers} = 9\) begging markers (\(-27\) points), plus \(-24\) unused spaces, plus \(-4\) missing animal types.
\(\text{practicalCeiling} {\lt} \text{theoreticalMaxSum}\), i.e., \(140 {\lt} 202\).
By computation.
\(\text{practicalCeiling} - \text{doNothingScore} = 195\).
\(140 - (-55) = 195\).