From a40067ff8f28b3a31a1ad72893e533cdd40e31f5 Mon Sep 17 00:00:00 2001 From: Bill Rossi Date: Sat, 1 Feb 2025 08:28:52 -0500 Subject: [PATCH] Display teyaku --- main.c | 15 ++++++++++++++- teyaku.c | 4 ++-- teyaku.h | 10 ++++++++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index 8a11e2d..4945fdc 100644 --- a/main.c +++ b/main.c @@ -12,7 +12,7 @@ char *text = "こんにちわ、 世界!"; int main(int argc, char** argv) { - InitWindow(800, 450, "Hanafuda Hachi-Hachi"); + InitWindow(800, 550, "Hanafuda Hachi-Hachi"); SetTargetFPS(60); /* @@ -86,9 +86,22 @@ int main(int argc, char** argv) { BeginDrawing(); ClearBackground(RAYWHITE); + int num_selected = 0; for (int i = 0; i < 48; i++) { + num_selected += cards[i].selected; draw_card(&cards[i]); } + + if (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); + } EndDrawing(); } diff --git a/teyaku.c b/teyaku.c index 0848959..58f5588 100644 --- a/teyaku.c +++ b/teyaku.c @@ -1,3 +1,5 @@ +#include + #include "teyaku.h" #include "card.h" @@ -82,7 +84,5 @@ char *chaff_teyaku_english(Hand h) { } int calculate_teyaku(Hand h) { - if (calculate_chaff_teyaku(h)) printf("%s\n", chaff_teyaku_english(h)); - if (calculate_set_teyaku(h)) printf("%s\n", set_teyaku_english(h)); return chaff_teyaku_points(h) + set_teyaku_points(h); } diff --git a/teyaku.h b/teyaku.h index 31e45d3..8728188 100644 --- a/teyaku.h +++ b/teyaku.h @@ -4,7 +4,7 @@ #include "card.h" typedef enum SetTeyaku { - SET_TEYAKU_NONE, + SET_TEYAKU_NONE = 0, TRIPLET, STANDING_TRIPLET, TWO_TRIPLETS, @@ -18,7 +18,7 @@ typedef enum SetTeyaku { } SetTeyaku; typedef enum ChaffTeyaku { - CHAFF_TEYAKU_NONE, + CHAFF_TEYAKU_NONE = 0, CHAFF_TEYAKU_RED, ONE_RIBBON, ONE_ANIMAL, @@ -27,5 +27,11 @@ typedef enum ChaffTeyaku { } ChaffTeyaku; int calculate_teyaku(Hand h); +SetTeyaku calculate_set_teyaku(Hand h); +ChaffTeyaku calculate_chaff_teyaku(Hand h); +char *set_teyaku_english(Hand h); +char *chaff_teyaku_english(Hand h); +int set_teyaku_points(Hand h); +int chaff_teyaku_points(Hand h); #endif