From 5eee316acffa3f341604fa454af3252c02be611f Mon Sep 17 00:00:00 2001 From: Kieran Kihn <114803508+kierankihn@users.noreply.github.com> Date: Tue, 9 Dec 2025 19:43:51 +0800 Subject: [PATCH] feat(game): add player name management methods - Added `setPlayerName` and `getPlayerName` to `ClientGameState`. - Introduced `setName` method for `Player`. - Updated constructors for `Player` and `ClientGameState` to support name management. --- src/game/GameState.cpp | 15 ++++++++++++--- src/game/GameState.h | 12 +++++++++++- src/game/Player.cpp | 8 +++++++- src/game/Player.h | 4 +++- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/game/GameState.cpp b/src/game/GameState.cpp index 4952c1f..8d67401 100644 --- a/src/game/GameState.cpp +++ b/src/game/GameState.cpp @@ -95,7 +95,18 @@ namespace UNO::GAME { this->handCard_.clear(); } - ClientGameState::ClientGameState(std::string name) : player_(std::move(name)), clientGameStage_(ClientGameStage::PENDING_CONNECTION) {} + ClientGameState::ClientGameState() : clientGameStage_(ClientGameStage::PENDING_CONNECTION) {} + + std::string ClientGameState::getPlayerName() const + { + return this->player_.getName(); + } + + void ClientGameState::setPlayerName(const std::string &name) + { + this->player_.setName(name); + } + void ClientGameState::nextPlayer() { @@ -108,7 +119,6 @@ namespace UNO::GAME { } } - const std::multiset &ClientGameState::getCards() const { return this->player_.getCards(); @@ -133,7 +143,6 @@ namespace UNO::GAME { } } - void ClientGameState::draw(const Card &card) { this->player_.draw(card); diff --git a/src/game/GameState.h b/src/game/GameState.h index 435d946..c5c6ef7 100644 --- a/src/game/GameState.h +++ b/src/game/GameState.h @@ -316,7 +316,17 @@ namespace UNO::GAME { void nextPlayer() override; public: - explicit ClientGameState(std::string name); + ClientGameState(); + + /** + * 设置玩家名字 + */ + void setPlayerName(const std::string &name); + /** + * 获取当前玩家的名字 + * @return 玩家名字 + */ + [[nodiscard]] std::string getPlayerName() const; /** * 获得当前手牌 diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 08125bd..6a3f248 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -59,13 +59,19 @@ namespace UNO::GAME { this->cards_.clear(); } - Player::Player(std::string name) : name_(std::move(name)) {} + Player::Player() = default; const std::string &Player::getName() const { return this->name_; } + void Player::setName(const std::string &name) + { + this->name_ = name; + } + + const std::multiset &Player::getCards() const { return this->handCard_.getCards(); diff --git a/src/game/Player.h b/src/game/Player.h index 55160a4..ec0e1b2 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -75,13 +75,15 @@ namespace UNO::GAME { HandCard handCard_; public: - explicit Player(std::string name); + Player(); /** * @return 返回玩家名字 */ [[nodiscard]] const std::string &getName() const; + void setName(const std::string &name); + /** * 获得当前手牌 * @return 当前手牌的集合