diff --git a/.Jules/palette.md b/.Jules/palette.md index 05d4366..4c18b01 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -33,3 +33,7 @@ ## 2024-04-24 - Avoiding Trailing Artifacts in CLI Applications **Learning:** When dynamically updating terminal lines using carriage return (`\r`), relying on hardcoded padding spaces to overwrite old text is brittle and leads to trailing text artifacts when new lines are shorter than previous ones. **Action:** Always use the ANSI escape sequence `\033[K` (Erase in Line) immediately after the carriage return (`\r`) to cleanly clear the line before writing new content, rather than manually managing padding spaces. + +## 2024-05-25 - Explicit Empty States for Achievements +**Learning:** Hiding achievement UI elements (like a high score) when the user has no data can leave new users confused about the game's goals. Providing an explicit, encouraging empty state (e.g., "None yet. Set a record!") clarifies the system state, introduces the goal, and improves user onboarding. +**Action:** Always provide explicit, encouraging empty states for data or achievements rather than hiding the UI element when empty. diff --git a/src/main.cpp b/src/main.cpp index 60ae556..483f7e2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -79,6 +79,8 @@ int main() { if (highscore > 0) { std::cout << " Personal Best: " << CLR_SCORE << highscore << CLR_RESET << "\n\n"; + } else { + std::cout << " Personal Best: " << CLR_SCORE << "None yet. Set a record!" << CLR_RESET << "\n\n"; } std::cout << "Controls:\n " << CLR_CTRL << "[h]" << CLR_RESET << " Toggle Hard Mode (10x Speed!)\n "