Browse Source

2048: Simplify dialog box when target reached

Previously, upon reaching the target, the player is presented with
potentially two dialog boxes: one asking if the user wants to
continue endlessly and another showing the player's statistics,
which would only be shown if the user does not want to continue.

This commit consolidates these into a single dialog box that shows
the relevant statistics and asks the user if they want to continue
endlessly.
Dylan Katz 3 years ago
parent
commit
fe3bd062b7
1 changed files with 5 additions and 9 deletions
  1. 5 9
      Userland/Games/2048/main.cpp

+ 5 - 9
Userland/Games/2048/main.cpp

@@ -141,19 +141,15 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
             break;
         case Game::MoveOutcome::Won: {
             update();
-            auto message_box = GUI::MessageBox::construct(window, "Congratulations! You won the game, Do you still want to continue?",
-                "Want to continue?",
+            auto want_to_continue = GUI::MessageBox::show(window,
+                String::formatted("You won the game in {} turns with a score of {}. Would you like to continue?", game.turns(), game.score()),
+                "Congratulations!",
                 GUI::MessageBox::Type::Question,
                 GUI::MessageBox::InputType::YesNo);
-            if (message_box->exec() == GUI::MessageBox::ExecYes)
+            if (want_to_continue == GUI::MessageBox::ExecYes)
                 game.set_want_to_continue();
-            else {
-                GUI::MessageBox::show(window,
-                    String::formatted("You reached {} in {} turns with a score of {}", game.largest_tile(), game.turns(), game.score()),
-                    "You won!",
-                    GUI::MessageBox::Type::Information);
+            else
                 start_a_new_game();
-            }
             break;
         }
         case Game::MoveOutcome::GameOver: