Moved away from watch_display_string

This commit is contained in:
David Volovskiy 2025-08-12 19:43:28 -04:00
parent fc9e6c388e
commit f7e7482c49

View File

@ -37,8 +37,6 @@
#define MAX_BOARDS 40 #define MAX_BOARDS 40
#define GUESSES_PER_SCREEN 5 #define GUESSES_PER_SCREEN 5
#define WIN_SCORE (MAX_BOARDS * GUESSES_PER_SCREEN) #define WIN_SCORE (MAX_BOARDS * GUESSES_PER_SCREEN)
#define STATUS_DISPLAY_START 0
#define BOARD_SCORE_DISPLAY_START 2
#define BOARD_DISPLAY_START 4 #define BOARD_DISPLAY_START 4
#define BOARD_DISPLAY_END 9 #define BOARD_DISPLAY_END 9
#define MIN_CARD_VALUE 2 #define MIN_CARD_VALUE 2
@ -141,8 +139,8 @@ static void reset_board(bool first_round) {
static void init_game(void) { static void init_game(void) {
watch_clear_display(); watch_clear_display();
watch_display_string(TITLE_TEXT, BOARD_DISPLAY_START); watch_display_text(WATCH_POSITION_BOTTOM, TITLE_TEXT);
watch_display_string("GA", STATUS_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_LEFT, "HL");
reset_deck(); reset_deck();
reset_board(true); reset_board(true);
score = 0; score = 0;
@ -214,16 +212,16 @@ static void render_board_count(void) {
// Render completed boards (screens) // Render completed boards (screens)
char buf[3] = {0}; char buf[3] = {0};
snprintf(buf, sizeof(buf), "%2hhu", completed_board_count); snprintf(buf, sizeof(buf), "%2hhu", completed_board_count);
watch_display_string(buf, BOARD_SCORE_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_RIGHT, buf);
} }
static void render_final_score(void) { static void render_final_score(void) {
watch_display_string("SC", STATUS_DISPLAY_START); watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, "SCO", "SC");
char buf[7] = {0}; char buf[7] = {0};
const uint8_t complete_boards = score / GUESSES_PER_SCREEN; const uint8_t complete_boards = score / GUESSES_PER_SCREEN;
snprintf(buf, sizeof(buf), "%2hu %03hu", complete_boards, score); snprintf(buf, sizeof(buf), "%2hu %03hu", complete_boards, score);
watch_set_colon(); watch_set_colon();
watch_display_string(buf, BOARD_DISPLAY_START); watch_display_text(WATCH_POSITION_BOTTOM, buf);
} }
static guess_t get_answer(void) { static guess_t get_answer(void) {
@ -256,13 +254,13 @@ static void do_game_loop(guess_t user_guess) {
// Render answer indicator // Render answer indicator
switch (answer) { switch (answer) {
case HL_GUESS_EQUAL: case HL_GUESS_EQUAL:
watch_display_string("==", STATUS_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_LEFT, "==");
break; break;
case HL_GUESS_HIGHER: case HL_GUESS_HIGHER:
watch_display_string("HI", STATUS_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_LEFT, "HI");
break; break;
case HL_GUESS_LOWER: case HL_GUESS_LOWER:
watch_display_string("LO", STATUS_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_LEFT, "LO");
break; break;
} }
@ -273,7 +271,7 @@ static void do_game_loop(guess_t user_guess) {
// No score for two consecutive identical cards // No score for two consecutive identical cards
} else { } else {
// Incorrect guess, game over // Incorrect guess, game over
watch_display_string("GO", STATUS_DISPLAY_START); watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, "End", "GO");
game_board[guess_position].revealed = true; game_board[guess_position].revealed = true;
render_board_position(guess_position); render_board_position(guess_position);
game_state = HL_GS_LOSE; game_state = HL_GS_LOSE;
@ -282,9 +280,9 @@ static void do_game_loop(guess_t user_guess) {
if (score >= WIN_SCORE) { if (score >= WIN_SCORE) {
// Win, perhaps some kind of animation sequence? // Win, perhaps some kind of animation sequence?
watch_display_string("WI", STATUS_DISPLAY_START); watch_display_text_with_fallback(WATCH_POSITION_TOP_LEFT, "WIN", "WI");
watch_display_string(" ", BOARD_SCORE_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_RIGHT, " ");
watch_display_string("------", BOARD_DISPLAY_START); watch_display_text(WATCH_POSITION_BOTTOM, "------");
game_state = HL_GS_WIN; game_state = HL_GS_WIN;
return; return;
} }
@ -314,12 +312,12 @@ static void do_game_loop(guess_t user_guess) {
break; break;
case HL_GS_SHOW_SCORE: case HL_GS_SHOW_SCORE:
watch_clear_display(); watch_clear_display();
watch_display_string(TITLE_TEXT, BOARD_DISPLAY_START); watch_display_text(WATCH_POSITION_BOTTOM, TITLE_TEXT);
watch_display_string("GA", STATUS_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_LEFT, "HL");
game_state = HL_GS_TITLE_SCREEN; game_state = HL_GS_TITLE_SCREEN;
break; break;
default: default:
watch_display_string("ERROR", BOARD_DISPLAY_START); watch_display_text(WATCH_POSITION_BOTTOM, "ERROR");
break; break;
} }
} }
@ -358,8 +356,8 @@ bool higher_lower_game_face_loop(movement_event_t event, void *context) {
switch (event.event_type) { switch (event.event_type) {
case EVENT_ACTIVATE: case EVENT_ACTIVATE:
// Show your initial UI here. // Show your initial UI here.
watch_display_string(TITLE_TEXT, BOARD_DISPLAY_START); watch_display_text(WATCH_POSITION_BOTTOM, TITLE_TEXT);
watch_display_string("GA", STATUS_DISPLAY_START); watch_display_text(WATCH_POSITION_TOP_LEFT, "HL");
break; break;
case EVENT_TICK: case EVENT_TICK:
// If needed, update your display here. // If needed, update your display here.