Skip to main content

move_army/
move_army.rs

1use canwu_api::{Canwu, ObserveRequest, SemanticAction, SimDuration};
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    let mut canwu = Canwu::demo(35)?;
5    let ids = Canwu::demo_ids();
6
7    canwu.act(
8        ids.commander,
9        SemanticAction::MoveArmy {
10            army: ids.army,
11            destination: ids.eastern_territory,
12        },
13    )?;
14    let arrival_events = canwu.advance(SimDuration::days(1))?;
15
16    let commander = canwu.observe(ids.commander, &ObserveRequest::default())?;
17    let observer = canwu.observe(ids.observer, &ObserveRequest::default())?;
18    println!("time: {}", canwu.time());
19    println!("arrival events: {}", arrival_events.len());
20    println!(
21        "commander knows location: {:?}",
22        commander.known_armies[0].known_location
23    );
24    println!(
25        "observer still believes location: {:?}",
26        observer.known_armies[0].known_location
27    );
28
29    canwu.advance(SimDuration::days(3))?;
30    let observer = canwu.observe(ids.observer, &ObserveRequest::default())?;
31    println!(
32        "observer after report: {:?}",
33        observer.known_armies[0].known_location
34    );
35    Ok(())
36}