tiler_core 0.1.12

Core library for tiler game
Documentation
use crate::game::Game;

use super::try_step;

pub fn step(game: &Game) -> Game {
    let game = game.clone();

    let players_colors: Vec<usize> = game.players.iter().map(|el| el.color).collect();

    let mut best_color: usize = 0;
    let mut best_diff: usize = 0;

    for color in 0..game.count_colors {
        if players_colors.contains(&color) {
            continue;
        }

        let (_, diff) = try_step(&game, color);

        if diff > best_diff {
            best_diff = diff;
            best_color = color;
        }
    }

    let game = game.step(best_color).unwrap();

    game
}