use rust_sc2::prelude::*;
#[bot]
#[derive(Default)]
struct EmptyBot;
impl Player for EmptyBot {
fn get_player_settings(&self) -> PlayerSettings {
PlayerSettings::new(Race::Random)
}
}
fn main() -> SC2Result<()> {
let mut bot = EmptyBot::default();
let mut runner = RunnerSingle::new(
&mut bot,
Computer::new(Race::Random, Difficulty::VeryEasy, None),
"EverDreamLE",
Some("4.10"), );
runner.set_map("EternalEmpireLE");
runner.computer = Computer::new(Race::Protoss, Difficulty::VeryHard, Some(AIBuild::Air));
runner.realtime = true; runner.save_replay_as = Some("path/to/replay/MyReplay.SC2Replay");
runner.launch()?;
runner.run_game()?;
const MAPS: &[&str] = &["EverDreamLE", "GoldenWallLE", "IceandChromeLE"];
const RACES: &[Race] = &[Race::Zerg, Race::Terran, Race::Protoss];
const DIFFICULTIES: &[Difficulty] = &[Difficulty::Easy, Difficulty::Medium, Difficulty::Hard];
for i in 0..3 {
runner.set_map(MAPS[i]);
runner.computer.race = RACES[i];
runner.computer.difficulty = DIFFICULTIES[i];
runner.run_game()?;
}
runner.close();
let mut other = RunnerSingle::new(
&mut bot,
Computer::new(Race::Random, Difficulty::VeryEasy, None),
"Flat32",
None,
);
other.run_game()?;
other.close();
let mut runner = RunnerMulti::new(
&mut bot,
PlayerSettings::new(Race::Random).with_name("Name"),
"PillarsofGoldLE",
None,
);
runner.set_map("PillarsofGoldLE");
runner.human_settings = PlayerSettings::new(Race::Random).with_name("Name");
runner.realtime = false;
runner.save_replay_as = None;
runner.launch()?;
runner.run_game()?;
Ok(())
}