From b015c61bd2934745cd3bc6b1dd3322f682d427d2 Mon Sep 17 00:00:00 2001 From: szymon Date: Thu, 13 Aug 2026 23:21:15 +0200 Subject: [PATCH] chore: add GameMaster and PlayerList --- src/logic/game_master.rs | 41 ++++++++++++++++++++++++++++++++++++++++ src/logic/mod.rs | 3 ++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/logic/game_master.rs diff --git a/src/logic/game_master.rs b/src/logic/game_master.rs new file mode 100644 index 0000000..51f028b --- /dev/null +++ b/src/logic/game_master.rs @@ -0,0 +1,41 @@ +use crate::logic::{board::board::Board, player::Player}; + +struct PlayerList { + pub players: [Player; 2], + current_turn: usize, + size: usize, +} + +impl PlayerList { + pub fn new(player1_name: String, player2_name: String) -> Self { + PlayerList { + players: [Player::new(player1_name), Player::new(player2_name)], + current_turn: 0, + size: 2, + } + } + + pub fn change_turn(&mut self) { + self.current_turn = (self.current_turn + 1) % self.size; + } + + pub fn get_current_turn(&self) -> &Player { + &self.players[self.current_turn] + } +} + +pub struct GameMaster { + players: PlayerList, + board: Board, +} + +impl GameMaster { + pub fn new(player1_name: String, player2_name: String) -> Self { + let mut players: PlayerList = PlayerList::new(player1_name, player2_name); + let [player1, player2] = &mut players.players; + + let board = Board::new(player1, player2, None); + + GameMaster { players, board } + } +} diff --git a/src/logic/mod.rs b/src/logic/mod.rs index f9d8953..bb9dc31 100644 --- a/src/logic/mod.rs +++ b/src/logic/mod.rs @@ -1,3 +1,4 @@ -pub mod board; +mod board; +pub mod game_master; mod math; mod player;