55AntrenamentWidget::AntrenamentWidget (const std::string &nameOne, const std::string &nameTwo,
66 QStackedWidget *stackedWidget, QWidget *parent) :
77 m_AntrenamentWidget(new QWidget(parent)), m_Layout(new QVBoxLayout(m_AntrenamentWidget)),
8- m_StackedWidget(stackedWidget), m_Parent(parent),
9- m_CurrentGame(std::make_unique<Antrenament>(nameOne, nameTwo)) {
8+ m_StackedWidget(stackedWidget), m_Parent(parent), m_CurrentGame{nameOne, nameTwo} {
109 m_ScoreLabel = new QLabel (m_AntrenamentWidget);
1110 DrawGame ();
1211}
@@ -37,12 +36,11 @@ AntrenamentWidget::GenerateBoard(const Board &board,
3736 auto down = board.GetDown ();
3837
3938 if (!board.IsBoardLocked ()) {
40- ++ right.first ;
41- ++ down. second ;
42- -- left.first ;
43- --up. second ;
39+ right = std::make_pair (right .first + 1 , right. second ) ;
40+ down = std::make_pair (down. first , down. second + 1 ) ;
41+ left = std::make_pair (left .first - 1 , left. second ) ;
42+ up = std::make_pair (up. first , up. second - 1 ) ;
4443 }
45-
4644 const auto boardElement = board.GetGameBoard ();
4745
4846 for (int j = up.second ; j <= down.second ; ++j) {
@@ -150,14 +148,9 @@ QHBoxLayout *AntrenamentWidget::GenerateHand(const Hand &ha
150148}
151149
152150void AntrenamentWidget::DrawGame () {
153- m_AntrenamentWidget = new QWidget (this );
154- m_Layout = new QVBoxLayout (m_AntrenamentWidget);
155-
156- std::cout << " here\n " ;
157-
158- const auto currentTurn = m_CurrentGame->GetCurrentPlayer ();
159- const auto currentPlayer = currentTurn == PlayerTurn::Player1 ? m_CurrentGame->GetPlayer1 ()
160- : m_CurrentGame->GetPlayer2 ();
151+ const auto currentTurn = m_CurrentGame.GetCurrentPlayer ();
152+ const auto currentPlayer = currentTurn == PlayerTurn::Player1 ? m_CurrentGame.GetPlayer1 ()
153+ : m_CurrentGame.GetPlayer2 ();
161154 const auto ¤tHand = currentPlayer.GetHand ();
162155
163156 const auto turnLabel = new QLabel (this );
@@ -175,38 +168,34 @@ void AntrenamentWidget::DrawGame() {
175168
176169 auto selectedCard = std::make_shared<std::optional<Card>>(std::nullopt );
177170
171+ const auto leftOne = m_CurrentGame.GetBoard ().GetLeft ();
172+
173+ std::cout << " First: " << leftOne.first << " " << leftOne.second << ' \n ' ;
174+
178175 const auto boardLayout =
179- GenerateBoard (m_CurrentGame-> GetBoard (), [this , selectedCard, currentTurn,
180- currentPlayer](const auto &pos) {
176+ GenerateBoard (m_CurrentGame. GetBoard (), [this , selectedCard, currentTurn,
177+ currentPlayer](const auto &pos) {
181178 if (!selectedCard->has_value ()) {
182179 std::cout << " No card selected!\n " ;
180+ const auto left = m_CurrentGame.GetBoard ().GetLeft ();
181+ std::cout << " In Lambda: " << left.first << " " << left.second << ' \n ' ;
183182 return ;
184183 }
185184
186- std::cout << selectedCard->value ().GetValue ();
187-
188- std::cout << " here1" ;
189-
190- std::cout << " here2" ;
191185 auto properCard = selectedCard->value ();
192- std::cout << " here3 " ;
193- if (m_CurrentGame-> GetBoard ().InsertCard (properCard, pos, currentTurn)) {
186+
187+ if (m_CurrentGame. GetBoard ().InsertCard (properCard, pos, currentTurn)) {
194188 std::cout << " here4" ;
195- if (m_CurrentGame->CheckWinningConditions ()) {
196- std::cout << " here5" ;
189+ if (m_CurrentGame.CheckWinningConditions ()) {
197190 ShowWinningMessage (QString::fromStdString (currentPlayer.GetUserName ()));
198191 return ;
199192 }
200193
201- std::cout << " here6" ;
202-
203- m_CurrentGame->SetNextPlayerTurn (currentTurn == PlayerTurn::Player1
204- ? PlayerTurn::Player2
205- : PlayerTurn::Player1);
194+ m_CurrentGame.SetNextPlayerTurn (currentTurn == PlayerTurn::Player1
195+ ? PlayerTurn::Player2
196+ : PlayerTurn::Player1);
206197
207- std::cout << " here7" ;
208198 DrawGame ();
209- // m_StackedWidget->repaint();
210199 } else {
211200 std::cout << std::format (" Card {} could not be inserted at ({}, {})\n " ,
212201 properCard.GetValue (), pos.first , pos.second );
@@ -252,28 +241,26 @@ void AntrenamentWidget::ShowWinningMessage(const QString &winnerName) {
252241 layout->addWidget (okButton);
253242 connect (okButton, &QPushButton::clicked, this , [this , winningWidget, winnerName] {
254243 m_StackedWidget->removeWidget (winningWidget);
255- if (winnerName == QString::fromStdString (m_CurrentGame-> GetPlayer1 ().GetUserName ())) {
244+ if (winnerName == QString::fromStdString (m_CurrentGame. GetPlayer1 ().GetUserName ())) {
256245 ++m_Player1Score;
257246 } else {
258247 ++m_Player2Score;
259248 }
260- UpdateScoreLabel (m_CurrentGame-> GetPlayer1 ().GetUserName (),
261- m_CurrentGame-> GetPlayer2 ().GetUserName ());
249+ UpdateScoreLabel (m_CurrentGame. GetPlayer1 ().GetUserName (),
250+ m_CurrentGame. GetPlayer2 ().GetUserName ());
262251 if (++m_GamesPlayed < 3 ) {
263- m_CurrentGame = nullptr ;
264- m_CurrentGame =
265- std::make_unique<Antrenament>(m_CurrentGame->GetPlayer1 ().GetUserName (),
266- m_CurrentGame->GetPlayer2 ().GetUserName ());
252+ m_CurrentGame = {m_CurrentGame.GetPlayer1 ().GetUserName (),
253+ m_CurrentGame.GetPlayer2 ().GetUserName ()};
267254 DrawGame ();
268255 } else {
269256 const auto finalScoreWidget = new QWidget (this );
270257 const auto finalLayout = new QVBoxLayout (finalScoreWidget);
271258
272259 const auto finalScoreLabel = new QLabel (
273260 QString (" Final Score:\n %1: %2\n %3: %4" )
274- .arg (QString::fromStdString (m_CurrentGame-> GetPlayer1 ().GetUserName ()))
261+ .arg (QString::fromStdString (m_CurrentGame. GetPlayer1 ().GetUserName ()))
275262 .arg (m_Player1Score)
276- .arg (QString::fromStdString (m_CurrentGame-> GetPlayer2 ().GetUserName ()))
263+ .arg (QString::fromStdString (m_CurrentGame. GetPlayer2 ().GetUserName ()))
277264 .arg (m_Player2Score),
278265 this );
279266 QFont finalScoreFont = finalScoreLabel->font ();
@@ -291,7 +278,6 @@ void AntrenamentWidget::ShowWinningMessage(const QString &winnerName) {
291278 m_GamesPlayed = 0 ;
292279 m_Player1Score = 0 ;
293280 m_Player2Score = 0 ;
294- m_CurrentGame = nullptr ;
295281 DrawGame ();
296282 });
297283
0 commit comments