use crate::{environment::Environment, progress::Progress};
pub mod deepqlearning;
pub mod nnbackend;
pub mod qlearning;
pub trait Agent<S, A> {
fn step(&mut self, progress: Progress, env: &mut dyn Environment<S, A>) -> bool;
fn pick_action(
&mut self,
actions: &[A],
best: Option<A>, progress: Progress,
) -> A;
}