From 544c261c3b51d11989240eecdf9602a806c65e66 Mon Sep 17 00:00:00 2001 From: JOLIMAITRE Matthieu Date: Thu, 29 Sep 2022 15:49:08 +0200 Subject: [PATCH] improved arguments, updated lib and clap --- rs48/Cargo.toml | 4 ++-- rs48/src/main.rs | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/rs48/Cargo.toml b/rs48/Cargo.toml index 601671a..6c2b017 100644 --- a/rs48/Cargo.toml +++ b/rs48/Cargo.toml @@ -9,6 +9,6 @@ repository = "https://github.com/MajorBarnulf/rs48" homepage = "https://github.com/MajorBarnulf/rs48" [dependencies] -clap = { version = "3.2", features = ["derive"] } -rs48_lib = "1.2" +clap = { version = "4.0", features = ["derive"] } +rs48_lib = "1.3" rand = "0.8" diff --git a/rs48/src/main.rs b/rs48/src/main.rs index 0b2879d..1560aa8 100644 --- a/rs48/src/main.rs +++ b/rs48/src/main.rs @@ -1,9 +1,9 @@ use std::{fmt::Display, str::FromStr, time::Duration}; -use clap::{ArgEnum, Parser}; +use clap::Parser; use rs48_lib::prelude::*; -#[derive(Clone, ArgEnum, Debug)] +#[derive(Clone, Debug)] pub enum ControllerParam { Player, Random, @@ -42,7 +42,7 @@ pub struct Arguments { size: usize, /// number of tiles that will spawn on the grid each turn - #[clap(long, default_value_t = 1)] + #[clap(short = 'w', long, default_value_t = 1)] spawn: usize, /// disable clearing the terminal to refresh the screen @@ -50,15 +50,15 @@ pub struct Arguments { no_clear: bool, /// skips the refresh of that many turns, allow AIs to play faster - #[clap(long, default_value_t = 0)] + #[clap(short = 'k', long, default_value_t = 0)] display_skips: usize, /// delay in ms to add between each turns - #[clap(long, default_value_t = 0)] + #[clap(short, long, default_value_t = 0)] delay: u64, /// the controller to use for the game - #[clap(long, default_value_t = ControllerParam::Player)] + #[clap(short, long, default_value_t = ControllerParam::Player)] controller: ControllerParam, /// sets a seed for the color pattern, 0 for random, default is 35 @@ -81,13 +81,13 @@ fn main() -> Result<(), GameError> { .turn_duration(Duration::from_millis(arguments.delay)); let controller = match arguments.controller { - ControllerParam::Player => PlayerController::new().into_box(), - ControllerParam::Random => RandomController::new().into_box(), - ControllerParam::Simulated => SimulatedController::new(80, 50).into_box(), + ControllerParam::Player => PlayerController::default().into_box(), + ControllerParam::Random => RandomController::default().into_box(), + ControllerParam::Simulated => SimulatedController::new(100, 20).into_box(), }; let mut managed = GameManager::new(game_rules, manager_rules, controller); - let err = managed.play_all(); - err + + managed.play_all() } fn seed_or_random(input: u16) -> u16 {