From 34e001eb18ab7550fb7faa112ded8562b9710ec5 Mon Sep 17 00:00:00 2001 From: Annika Lauber <annika.lauber@c2sm.ethz.ch> Date: Fri, 13 Dec 2024 14:58:48 +0100 Subject: [PATCH] Add won tricks to labels displayed --- src/client/gui/gamewidget.cpp | 30 +++++++++++++++++++++++------- src/client/gui/gamewidget.h | 4 +++- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/client/gui/gamewidget.cpp b/src/client/gui/gamewidget.cpp index 48350dc..8f2ab9c 100644 --- a/src/client/gui/gamewidget.cpp +++ b/src/client/gui/gamewidget.cpp @@ -49,7 +49,7 @@ void GameWidget::setupUI() QVBoxLayout *leftOpponentLayout = new QVBoxLayout(); leftOpponentLayout->setAlignment(Qt::AlignCenter); // Add opponent's player info - leftOpponentInfo = new QLabel("Opponent 1\nScore: 0\nBet: 0"); + leftOpponentInfo = new QLabel("Opponent 1\nScore: 0\nBet: 0\nWon Tricks: 0"); leftOpponentLayout->addWidget(leftOpponentInfo); // Placeholder for opponent's cards leftOpponentCardsLayout = new QVBoxLayout(); @@ -71,7 +71,7 @@ void GameWidget::setupUI() QVBoxLayout *rightOpponentLayout = new QVBoxLayout(); rightOpponentLayout->setAlignment(Qt::AlignCenter); // Add opponent's player info - rightOpponentInfo = new QLabel("Opponent 2\nScore: 0\nBet: 0"); + rightOpponentInfo = new QLabel("Opponent 1\nScore: 0\nBet: 0\nWon Tricks: 0"); rightOpponentLayout->addWidget(rightOpponentInfo); // Placeholder for opponent's cards rightOpponentCardsLayout = new QVBoxLayout(); @@ -93,9 +93,12 @@ void GameWidget::setupUI() playerInfoLayout->setAlignment(Qt::AlignCenter); playerBetLabel = new QLabel("Bet: 0"); playerScoreLabel = new QLabel("Score: 0"); + playerTrickLabel = new QLabel("Won tricks: 0"); playerInfoLayout->addWidget(playerBetLabel); playerInfoLayout->addSpacing(20); // Add some space between labels playerInfoLayout->addWidget(playerScoreLabel); + playerInfoLayout->addSpacing(20); // Add some space between labels + playerInfoLayout->addWidget(playerTrickLabel); playerLayout->addLayout(playerInfoLayout); mainLayout->addLayout(playerLayout); @@ -113,9 +116,10 @@ void GameWidget::setupUI() setLayout(mainLayout); - // Initialize bet and score labels + // Initialize bet, score and trick labels playerBetLabel->setText("Bet: 0"); playerScoreLabel->setText("Score: 0"); + playerTrickLabel->setText("Won tricks: 0"); } void GameWidget::createPlayerHand() @@ -295,7 +299,7 @@ void GameWidget::updatePlayerHand() createPlayerHand(); } -void GameWidget::updateBetsAndScores() +void GameWidget::updateBetsScoresWonTricks() { // Update bets and scores for all players const auto &players = GameController::instance()->getGameState()->get_players(); @@ -304,12 +308,14 @@ void GameWidget::updateBetsAndScores() int playerId = player->get_playerID(); int bet = player->get_bet(); int score = player->get_points(); + int trick = player->get_won_tricks(); - // Update UI elements for bets and scores + // Update UI elements for bets, scores and won tricks if (playerId >= 0 && playerId < playerBetLabels.size()) { QLabel *betLabel = playerBetLabels[playerId]; QLabel *scoreLabel = playerScoreLabels[playerId]; + QLabel *trickLabel = playerTrickLabels[playerId]; if (betLabel) { @@ -320,6 +326,11 @@ void GameWidget::updateBetsAndScores() { scoreLabel->setText(QString("Score: %1").arg(score)); } + + if (trickLabel) + { + trickLabel->setText(QString("Won tricks: %1").arg(trick)); + } } } } @@ -419,10 +430,11 @@ void GameWidget::updatePlayerInfo() int index = 0; for (const auto &player : players) { - QString info = QString("%1\nScore: %2\nBet: %3") + QString info = QString("%1\nScore: %2\nBet: %3\nWon tricks: %4") .arg(QString::fromStdString(player->get_username())) .arg(player->get_points()) - .arg(player->get_bet()); + .arg(player->get_bet()) + .arg(player->get_won_tricks()); if (player.get() == GameController::instance()->getLocalPlayer()) { @@ -435,6 +447,10 @@ void GameWidget::updatePlayerInfo() { playerScoreLabel->setText(QString("Score: %1").arg(player->get_points())); } + if (playerTrickLabel) + { + playerTrickLabel->setText(QString("Won tricks: %1").arg(player->get_won_tricks())); + } } else { diff --git a/src/client/gui/gamewidget.h b/src/client/gui/gamewidget.h index 878da98..f94871c 100644 --- a/src/client/gui/gamewidget.h +++ b/src/client/gui/gamewidget.h @@ -34,7 +34,7 @@ private: void updatePlayerHand(); void updateOtherPlayersHands(); void updateCenterPile(); - void updateBetsAndScores(); + void updateBetsScoresWonTricks(); void clearPlayerHandWidgets(); void clearOtherPlayersHandWidgets(); void createPlayerHand(); @@ -77,6 +77,7 @@ private: QLabel *turnIndicatorLabel; QLabel *playerBetLabel; QLabel *playerScoreLabel; + QLabel *playerTrickLabel; QLabel *roundIndicatorLabel; QHBoxLayout *playerHandLayout; std::vector<std::unique_ptr<CardWidget>> playerHandWidgets; @@ -85,6 +86,7 @@ private: std::vector<std::unique_ptr<CardWidget>> rightOpponentHandWidgets; std::vector<QLabel *> playerBetLabels; std::vector<QLabel *> playerScoreLabels; + std::vector<QLabel *> playerTrickLabels; }; #endif // GAMEWIDGET_H \ No newline at end of file -- GitLab