hanafuda/teyaku.h

41 lines
665 B
C

#ifndef _HF_TEYAKU_
#define _HF_TEYAKU_
#include <stdbool.h>
#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;
void calculate_teyaku(const Hand h, Teyaku *t);
void teyaku_to_string(Teyaku *t, char *str);
#endif