use rl::{ algo::q_table::{QTableAgent, QTableAgentConfig}, gym::GrassyField, viz, }; const FIELD_SIZE: usize = 20; const NUM_EPISODES: u16 = 10000; fn main() { let mut env = GrassyField::::new(); let config = QTableAgentConfig { gamma: 0.95, ..Default::default() }; let mut agent = QTableAgent::new(config); let (handle, tx) = viz::init(env.report.keys(), NUM_EPISODES); for i in 0..NUM_EPISODES { agent.go(&mut env); let report = env.report.take(); tx.send(viz::Update { episode: i, data: report.values().copied().collect(), }) .unwrap(); } let _ = handle.join(); }