Display two random side lengths to user

This commit is contained in:
2026-08-07 20:34:55 -04:00
parent 99eb9bdbf1
commit 10edcf6305
2 changed files with 59 additions and 7 deletions
+1 -1
View File
@@ -68,7 +68,7 @@
] ]
}, },
{ {
"characterRegex": "[ntype:θ=acuobsrigh¯¹0123456789]", "characterRegex": "[?ntype:θ=acuobsrigh¯¹0123456789]",
"file": "mansalva_regular.ttf", "file": "mansalva_regular.ttf",
"name": "FONT_MANSALVA_REGULAR_22", "name": "FONT_MANSALVA_REGULAR_22",
"type": "font" "type": "font"
+58 -6
View File
@@ -37,6 +37,9 @@ static Layer *s_division_layer;
static Layer *s_alarm_highlight_layer; static Layer *s_alarm_highlight_layer;
static MenuLayer *s_drop_menu_layer; static MenuLayer *s_drop_menu_layer;
static TriangleLayer *s_triangle_layer; static TriangleLayer *s_triangle_layer;
static TextLayer *s_side_a_txt_layer;
static TextLayer *s_side_b_txt_layer;
static TextLayer *s_side_c_txt_layer;
// fonts // fonts
//// setter //// setter
@@ -79,8 +82,8 @@ static const char *s_tan;
// alarm drop menu options // alarm drop menu options
static const char *s_options_type[3] = {"acute", "obtuse", "right"}; static const char *s_options_type[3] = {"acute", "obtuse", "right"};
static const char *s_options_function[3]; static const char *s_options_function[3];
static char *s_options_over[3]; static char *s_options_over[2];
static char *s_options_under[3]; static char *s_options_under[2];
///////////////////////////////// /////////////////////////////////
@@ -535,6 +538,56 @@ static void alarm_window_load() {
s_triangle_layer = triangle_layer_create(GRect(0, s_top_bar_grect.size.h + 1, PBL_DISPLAY_WIDTH, PBL_DISPLAY_HEIGHT - (s_top_bar_grect.size.h * 2)), GColorBlack); s_triangle_layer = triangle_layer_create(GRect(0, s_top_bar_grect.size.h + 1, PBL_DISPLAY_WIDTH, PBL_DISPLAY_HEIGHT - (s_top_bar_grect.size.h * 2)), GColorBlack);
layer_add_child(window_layer, s_triangle_layer->layer); layer_add_child(window_layer, s_triangle_layer->layer);
// triangle measurements text layers
//// side_a
s_side_a_txt_layer = text_layer_create(GRect(0, s_bottom_bar_grect.origin.y - 27, PBL_DISPLAY_WIDTH, 23));
text_layer_set_background_color(s_side_a_txt_layer, GColorClear);
text_layer_set_font(s_side_a_txt_layer, s_font_mansalva_small);
text_layer_set_text_alignment(s_side_a_txt_layer, GTextAlignmentCenter);
layer_add_child(window_layer, text_layer_get_layer(s_side_a_txt_layer));
//// side_b
s_side_b_txt_layer = text_layer_create(GRect(-4, PBL_DISPLAY_WIDTH / 2, PBL_DISPLAY_WIDTH, 23));
text_layer_set_background_color(s_side_b_txt_layer, GColorClear);
text_layer_set_font(s_side_b_txt_layer, s_font_mansalva_small);
text_layer_set_text_alignment(s_side_b_txt_layer, GTextAlignmentRight);
layer_add_child(window_layer, text_layer_get_layer(s_side_b_txt_layer));
//// side_c
s_side_c_txt_layer = text_layer_create(GRect(4, PBL_DISPLAY_WIDTH / 2, PBL_DISPLAY_WIDTH, 23));
text_layer_set_background_color(s_side_c_txt_layer, GColorClear);
text_layer_set_font(s_side_c_txt_layer, s_font_mansalva_small);
layer_add_child(window_layer, text_layer_get_layer(s_side_c_txt_layer));
//// display 2 side lengths to the user
static char side_a_buffer[3], side_b_buffer[3], side_c_buffer[3];
uint8_t ignored_side = rand() % 3;
switch (ignored_side) {
case 0:
snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
s_options_over[0] = side_b_buffer;
s_options_over[1] = side_c_buffer;
s_options_under[0] = side_b_buffer;
s_options_under[1] = side_c_buffer;
break;
case 1:
snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a);
snprintf(side_c_buffer, sizeof(side_c_buffer), "%u", s_triangle_layer->side_c);
s_options_over[0] = side_a_buffer;
s_options_over[1] = side_c_buffer;
s_options_under[0] = side_a_buffer;
s_options_under[1] = side_c_buffer;
break;
case 2:
snprintf(side_a_buffer, sizeof(side_a_buffer), "%u", s_triangle_layer->side_a);
snprintf(side_b_buffer, sizeof(side_b_buffer), "%u", s_triangle_layer->side_b);
s_options_over[0] = side_a_buffer;
s_options_over[1] = side_b_buffer;
s_options_under[0] = side_a_buffer;
s_options_under[1] = side_b_buffer;
}
text_layer_set_text(s_side_a_txt_layer, side_a_buffer);
text_layer_set_text(s_side_b_txt_layer, side_b_buffer);
text_layer_set_text(s_side_c_txt_layer, side_c_buffer);
// drop menus // drop menus
//// determine trigonometric function options //// determine trigonometric function options
s_sin = s_sin_arr[rand() % 2]; s_sin = s_sin_arr[rand() % 2];
@@ -544,10 +597,6 @@ static void alarm_window_load() {
s_options_function[0] = s_sin; s_options_function[0] = s_sin;
s_options_function[1] = s_cos; s_options_function[1] = s_cos;
s_options_function[2] = s_tan; s_options_function[2] = s_tan;
s_options_over[0] = "1";
s_options_over[1] = "2";
s_options_under[0] = "1";
s_options_under[1] = "2";
//// create drop window //// create drop window
s_drop_window = window_create(); // TODO destroy on window unload? s_drop_window = window_create(); // TODO destroy on window unload?
window_set_window_handlers( window_set_window_handlers(
@@ -559,6 +608,9 @@ static void alarm_window_load() {
} }
static void alarm_window_unload() { static void alarm_window_unload() {
text_layer_destroy(s_side_a_txt_layer);
text_layer_destroy(s_side_b_txt_layer);
text_layer_destroy(s_side_c_txt_layer);
triangle_layer_destroy(s_triangle_layer); triangle_layer_destroy(s_triangle_layer);
layer_destroy(s_alarm_highlight_layer); layer_destroy(s_alarm_highlight_layer);
layer_destroy(s_division_layer); layer_destroy(s_division_layer);