diff --git a/core/src/record.rs b/core/src/record.rs index 39f896b..679542e 100644 --- a/core/src/record.rs +++ b/core/src/record.rs @@ -133,7 +133,7 @@ fn now_string() -> String { } fn is_leap_year(y: u64) -> bool { - (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0) + (y.is_multiple_of(4) && !y.is_multiple_of(100)) || y.is_multiple_of(400) } #[cfg(test)] diff --git a/gui/Cargo.toml b/gui/Cargo.toml index faec539..ac4c1a7 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -15,3 +15,5 @@ tauri-plugin-opener = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" gobang-core = { path = "../core" } +log = "0.4" +env_logger = "0.11" diff --git a/gui/src/commands.rs b/gui/src/commands.rs index df64fce..b1ba63a 100644 --- a/gui/src/commands.rs +++ b/gui/src/commands.rs @@ -33,6 +33,7 @@ impl Default for AppState { pub fn new_game(mode: GameMode, config: GameConfig, state: State) -> Result<(), String> { let is_vs_ai = mode == GameMode::VsAi; let board = Board::new(config.board_size); + log::info!("新游戏: mode={:?}, board_size={}", mode, config.board_size); *state.board.lock().map_err(|e| e.to_string())? = Some(board); *state.game_mode.lock().map_err(|e| e.to_string())? = mode; *state.config.lock().map_err(|e| e.to_string())? = config.clone(); @@ -82,6 +83,10 @@ pub fn place_piece(x: usize, y: usize, state: State) -> Result