pub trait Game<const N: usize, const NSYMS: usize> {
fn run(
&self,
left: &Candidate<N, NSYMS>,
right: &Candidate<N, NSYMS>,
rng: &mut Rando,
score_weights: &Vec<f64>
) -> LeftRight;
}
Required Methods
not all games require an RNG, but most do, and putting the RNG into the constructor means we’d need to use mutable Game’s. similarly, not all games use [Game.score_weights], but some do and all probably should.