#ifndef _HF_TEYAKU_ #define _HF_TEYAKU_ #include #include "card.h" typedef enum SetTeyaku { SET_TEYAKU_NONE, TRIPLET, STANDING_TRIPLET, TWO_TRIPLETS, TRIPLET_AND_STANDING_TRIPLET, TWO_STANDING_TRIPLETS, THREE_PAIRS, FOUR_OF_A_KIND, TRIPLET_AND_TWO_PAIRS, ONE_TWO_FOUR, FOUR_THREE, } SetTeyaku; typedef enum ChaffTeyaku { CHAFF_TEYAKU_NONE, CHAFF_TEYAKU_RED, ONE_RIBBON, ONE_ANIMAL, ONE_BRIGHT, EMPTY_HAND, } ChaffTeyaku; typedef struct Teyaku { ChaffTeyaku chaff; SetTeyaku set; bool calculated; } Teyaku; int teyaku_points(Teyaku *t); void calculate_teyaku(const Hand h, Teyaku *t); void set_teyaku_to_string(Teyaku *t, char *str); void chaff_teyaku_to_string(Teyaku *t, char *str); void teyaku_to_string(Teyaku *t, char *str); #endif