The standalone now models the turn's dominant generator cost -- 16 of a measured 18-22 words -- and lands 4 and 2 short of the two calibrated pairs, which is exactly the per-call-site ledger's split for those turns. The state block is byte-identical; only left differs. The answer to 'does it match the oracle' is no, by a stated amount, and tools/rng_oracle_check.py is the instrument that says so. The tail's last phase is modelled for the six turn-record fields recoverable from the wire and checked against the record the game itself archived: 480 fields over 80 player-records, 0 mismatches. It stays blocked; --commit-blocked shows exactly which five fields are missing and what they cost. By-product, and probably worth more than the phase: the stored bankruptcy elimination limit is injective in the maximum-income sum it is built from, so every save states the per-system output term that blocks ComputeBudget. tools/max_income_oracle.py inverts it -- 25 player-records over the corpus -- and recovers the protection factor as 3.3 from the saves rather than from the data files. It also shows the engine's -0.15 divisor disagrees with the game on 6 of those 25. divergence unchanged: 209->204 and 108->103, 5 closed / 0 regressed on both pairs.
689 lines
No EOL
15 KiB
JSON
689 lines
No EOL
15 KiB
JSON
{
|
|
"human-turn2-orders.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 10,
|
|
"BnkEl": -9064672,
|
|
"BnkPr": -4487013,
|
|
"maxIncome": 1359701,
|
|
"protectionFactor": 3.299999779363257,
|
|
"naiveDivisorDisagrees": true
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 10,
|
|
"BnkEl": -10378892,
|
|
"BnkPr": -5137552,
|
|
"maxIncome": 1556834,
|
|
"protectionFactor": 3.299999871534152,
|
|
"naiveDivisorDisagrees": true
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"human-turn3-noderoute.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 10,
|
|
"BnkEl": -9122659,
|
|
"BnkPr": -4515716,
|
|
"maxIncome": 1368399,
|
|
"protectionFactor": 3.299999488453295,
|
|
"naiveDivisorDisagrees": true
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 10,
|
|
"BnkEl": -10444699,
|
|
"BnkPr": -5170126,
|
|
"maxIncome": 1566705,
|
|
"protectionFactor": 3.2999996808588725,
|
|
"naiveDivisorDisagrees": true
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"turn1-state.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -1590613,
|
|
"BnkPr": -787353,
|
|
"maxIncome": 238592,
|
|
"protectionFactor": 3.2999974852467813,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -1811273,
|
|
"BnkPr": -896580,
|
|
"maxIncome": 271691,
|
|
"protectionFactor": 3.299998895804425,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 576,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -665806,
|
|
"BnkPr": -329574,
|
|
"maxIncome": 99871,
|
|
"protectionFactor": 3.2999969961250013,
|
|
"naiveDivisorDisagrees": false
|
|
}
|
|
],
|
|
"turn2-state.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -1594593,
|
|
"BnkPr": -789323,
|
|
"maxIncome": 239189,
|
|
"protectionFactor": 3.299997073444013,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -1815833,
|
|
"BnkPr": -898837,
|
|
"maxIncome": 272375,
|
|
"protectionFactor": 3.2999981642955483,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 576,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -665806,
|
|
"BnkPr": -329574,
|
|
"maxIncome": 99871,
|
|
"protectionFactor": 3.2999969961250013,
|
|
"naiveDivisorDisagrees": false
|
|
}
|
|
],
|
|
"turn3-state.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -1598566,
|
|
"BnkPr": -791290,
|
|
"maxIncome": 239785,
|
|
"protectionFactor": 3.299997914798674,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -1820206,
|
|
"BnkPr": -901002,
|
|
"maxIncome": 273031,
|
|
"protectionFactor": 3.299998901223671,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 576,
|
|
"ownedSystems": 1,
|
|
"BnkEl": -665806,
|
|
"BnkPr": -329574,
|
|
"maxIncome": 99871,
|
|
"protectionFactor": 3.2999969961250013,
|
|
"naiveDivisorDisagrees": false
|
|
}
|
|
],
|
|
"zuul-turn15-orders.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1271166,
|
|
"BnkPr": -629227,
|
|
"maxIncome": 190675,
|
|
"protectionFactor": 3.299997377736987,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1820399,
|
|
"BnkPr": -901097,
|
|
"maxIncome": 273060,
|
|
"protectionFactor": 3.299996337801216,
|
|
"naiveDivisorDisagrees": true
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"zuul-turn16-noderoute.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1270619,
|
|
"BnkPr": -628956,
|
|
"maxIncome": 190593,
|
|
"protectionFactor": 3.2999952778958304,
|
|
"naiveDivisorDisagrees": true
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1819586,
|
|
"BnkPr": -900695,
|
|
"maxIncome": 272938,
|
|
"protectionFactor": 3.299998534465703,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"zuul-turn17-orders2.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1270066,
|
|
"BnkPr": -628682,
|
|
"maxIncome": 190510,
|
|
"protectionFactor": 3.2999947509317096,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1818586,
|
|
"BnkPr": -900200,
|
|
"maxIncome": 272788,
|
|
"protectionFactor": 3.2999985336598385,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"zuul-turn17-rollpending.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1270066,
|
|
"BnkPr": -628682,
|
|
"maxIncome": 190510,
|
|
"protectionFactor": 3.2999947509317096,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1818586,
|
|
"BnkPr": -900200,
|
|
"maxIncome": 272788,
|
|
"protectionFactor": 3.2999985336598385,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"zuul-turn23-fleet23.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1266033,
|
|
"BnkPr": -626686,
|
|
"maxIncome": 189905,
|
|
"protectionFactor": 3.299997367104605,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1813746,
|
|
"BnkPr": -897804,
|
|
"maxIncome": 272062,
|
|
"protectionFactor": 3.299997794620344,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
],
|
|
"zuul-turn5-species5.sav": [
|
|
{
|
|
"playerID": 16,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1277766,
|
|
"BnkPr": -632494,
|
|
"maxIncome": 191665,
|
|
"protectionFactor": 3.2999973912816634,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 32,
|
|
"ownedSystems": 2,
|
|
"BnkEl": -1725413,
|
|
"BnkPr": -854079,
|
|
"maxIncome": 258812,
|
|
"protectionFactor": 3.299997681714913,
|
|
"naiveDivisorDisagrees": false
|
|
},
|
|
{
|
|
"playerID": 496,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 512,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 528,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 544,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
},
|
|
{
|
|
"playerID": 560,
|
|
"ownedSystems": 0,
|
|
"BnkEl": 0,
|
|
"BnkPr": 0,
|
|
"maxIncome": null,
|
|
"why": "limit is zero (no owned systems)"
|
|
}
|
|
]
|
|
} |