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}