feat(simulator): ✨ Add benchmark scripts for dominion/fauna pressure and tournament scenarios with configurable parameters
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
812f8de0ae
commit
5ee1537144
4 changed files with 12 additions and 5 deletions
|
|
@ -45,6 +45,7 @@ fn map_size_for(num_players: usize) -> i32 {
|
|||
|
||||
const MILESTONES: &[u32] = &[50, 100, 200, 350, 500];
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Debug, Clone, Deserialize)]
|
||||
struct ProfileJson {
|
||||
id: String,
|
||||
|
|
@ -121,6 +122,7 @@ fn make_axes(p: &ProfileJson) -> HashMap<String, u8> {
|
|||
|
||||
// ── Per-player tracking ─────────────────────────────────────────────────────
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Default, Clone)]
|
||||
struct PlayerStats {
|
||||
units_produced: u32,
|
||||
|
|
@ -373,9 +375,9 @@ fn run_scenario_with_profiles(num_players: usize, all_profiles: &[ProfileJson])
|
|||
let mut prev_unit_counts: Vec<usize> = (0..num_players).map(|pi| state.players[pi].units.len()).collect();
|
||||
let mut prev_city_counts: Vec<usize> = (0..num_players).map(|pi| state.players[pi].cities.len()).collect();
|
||||
|
||||
let mut agg_pvp_battles: u32 = 0;
|
||||
let mut agg_pvp_kills: u32 = 0;
|
||||
let mut agg_cities_captured: u32 = 0;
|
||||
let agg_pvp_battles: u32 = 0;
|
||||
let agg_pvp_kills: u32 = 0;
|
||||
let agg_cities_captured: u32 = 0;
|
||||
let mut agg_fauna_encounters: u32 = 0;
|
||||
let mut agg_fauna_deaths: u32 = 0;
|
||||
let mut victory_winner: Option<u8> = None;
|
||||
|
|
|
|||
|
|
@ -348,6 +348,8 @@ fn main() {
|
|||
science_yield: 0,
|
||||
units: starting_units,
|
||||
city_positions: vec![city_pos],
|
||||
capital_position: Some(city_pos),
|
||||
culture_total: 0,
|
||||
arcane_lore_pop_deducted: false,
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -108,6 +108,8 @@ fn main() {
|
|||
science_yield: 0,
|
||||
units: starting_units,
|
||||
city_positions: vec![city_pos],
|
||||
capital_position: Some(city_pos),
|
||||
culture_total: 0,
|
||||
arcane_lore_pop_deducted: false,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ fn make_axes(p: &ProfileJson) -> HashMap<String, u8> {
|
|||
|
||||
// ── Match result ───────────────────────────────────────────────────────────
|
||||
|
||||
#[allow(dead_code)]
|
||||
struct MatchResult {
|
||||
seed: u64,
|
||||
p0_id: String,
|
||||
|
|
@ -350,8 +351,8 @@ fn run_match(grid: &GridState, p0: &ProfileJson, p1: &ProfileJson, turns: u32, s
|
|||
|
||||
let mut p0_pvp_kills: u32 = 0;
|
||||
let mut p1_pvp_kills: u32 = 0;
|
||||
let mut p0_cities_captured: u32 = 0;
|
||||
let mut p1_cities_captured: u32 = 0;
|
||||
let p0_cities_captured: u32 = 0;
|
||||
let p1_cities_captured: u32 = 0;
|
||||
let mut victory_winner: Option<u8> = None;
|
||||
let mut victory_type: Option<VictoryType> = None;
|
||||
let mut victory_turn: Option<u32> = None;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue