Don't calculate every single frame

This commit is contained in:
Bill Rossi 2025-02-01 10:19:40 -05:00
parent 34027d5239
commit 3c4f882d18

9
main.c
View File

@ -70,6 +70,7 @@ int main(int argc, char** argv) {
float delta;
Vector2 mouse_position;
char *calculation = "";
while (!WindowShouldClose()) {
delta = GetFrameTime();
@ -79,6 +80,7 @@ int main(int argc, char** argv) {
for (int i = 0; i < 48; i++) {
if (point_within_card(&cards[i], mouse_pos)) {
cards[i].selected = !cards[i].selected;
calculation = "";
break;
}
}
@ -92,16 +94,17 @@ int main(int argc, char** argv) {
draw_card(&cards[i]);
}
if (num_selected == 7) {
if (strlen(calculation) == 0 && num_selected == 7) {
Hand h;
h.count = 0;
for (int i = 0; i < 48; i++) {
if (cards[i].selected) memcpy(&h.cards[h.count++], &cards[i], sizeof(Card));
}
char *s = TextFormat("Set: %s(%d) / Chaff: %s(%d) / Total: %d", set_teyaku_english(h), set_teyaku_points(h), chaff_teyaku_english(h), chaff_teyaku_points(h), calculate_teyaku(h));
DrawText(s, 10, 500, 25, BLACK);
calculation = TextFormat("Set: %s(%d) / Chaff: %s(%d) / Total: %d", set_teyaku_english(h), set_teyaku_points(h), chaff_teyaku_english(h), chaff_teyaku_points(h), calculate_teyaku(h));
}
DrawText(calculation, 10, 500, 25, BLACK);
EndDrawing();
}