diff options
Diffstat (limited to 'server/hand.h')
-rw-r--r-- | server/hand.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/server/hand.h b/server/hand.h index 879bc8d..b7ae8d2 100644 --- a/server/hand.h +++ b/server/hand.h @@ -2,6 +2,7 @@ #define HAND_H #include "../common/tile.h" +#include "../common/set.h" namespace Hand { //! Check if the tiles constitute a complete hand. Also valid for the concealed part of an open hand. @@ -10,8 +11,12 @@ namespace Hand { //! Check if the tiles miss only one from constituting a complete hand. Also valid for the concealed part of an open hand. bool tenpai(const Tiles& tiles); + //! Get list of possible breakdowns of a complete hand. + List<Sets> get_breakdowns(const Tiles& tiles); + // Check if the tiles is matching the normal format of one pair and rest triplets. bool basic_format(const Tiles& tiles, bool pair_eaten = false); + void basic_format(const Tiles& tiles, List<Sets>& hands, const Sets& hand = Sets(), bool pair_eaten = false); // Check if the tiles is matching the normal format but missing one. bool basic_format_tenpai(const Tiles& tiles, bool pair_eaten = false, bool wait_eaten = false); @@ -24,12 +29,15 @@ namespace Hand { // Eat a pair from beginning of list if possible and return success flag. bool eat_pair(Tiles& tiles); + bool eat_pair(Tiles& tiles, Sets& hand); // Eat a pon from beginning of list if possible and return success flag. bool eat_pon(Tiles& tiles); + bool eat_pon(Tiles& tiles, Sets& hand); // Eat a chi from beginning of list if possible and return success flag. bool eat_chi(Tiles& tiles); + bool eat_chi(Tiles& tiles, Sets& hand); } #endif |