Libsaki
Core library of Pancake Mahjong
Classes | Public Member Functions | List of all members
saki::Hand Class Reference

Public Member Functions

 Hand (const TileCount &count)
 
 Hand (const TileCount &count, const util::Stactor< M37, 4 > &barks)
 
 Hand (const Hand &copy)=default
 
 Hand (Hand &&move)=default
 
Handoperator= (const Hand &assign)=default
 
Handoperator= (Hand &&moveAssign)=default
 
const TileCountclosed () const
 
const T37drawn () const
 
const T37outFor (const Action &action) const
 
const util::Stactor< M37, 4 > & barks () const
 
bool hasDrawn () const
 
bool isMenzen () const
 
bool over4 () const
 
bool nine9 () const
 
int ct (T34 t) const
 
int ctAka5 () const
 
bool canChii (T34 t) const
 
bool canChiiAsLeft (T34 t) const
 
bool canChiiAsMiddle (T34 t) const
 
bool canChiiAsRight (T34 t) const
 
bool canPon (T34 t) const
 
bool canCp (T34 pick, const Action &action) const
 
bool canDaiminkan (T34 t) const
 
bool canAnkan (util::Stactor< T34, 3 > &choices, bool riichi) const
 
bool canKakan (util::Stactor< int, 3 > &barkIds) const
 
bool canRon (T34 t, const FormCtx &info, const Rule &rule, bool &doujun) const
 
bool canTsumo (const FormCtx &info, const Rule &rule) const
 
bool canRiichi (util::Stactor< T37, 13 > &swappables, bool &spinnable) const
 
bool ready () const
 
int step () const
 
int stepGb () const
 
int step4 () const
 
int step7 () const
 
int step7Gb () const
 
int step13 () const
 
bool hasEffA (T34 t) const
 
bool hasEffA4 (T34 t) const
 
bool hasEffA7 (T34 t) const
 
bool hasEffA13 (T34 t) const
 
util::Stactor< T34, 34 > effA () const
 
util::Stactor< T34, 34 > effA4 () const
 
Parseds parse () const
 
Parsed4s parse4 () const
 
int estimate (const Rule &rule, int sw, int rw, const util::Stactor< T37, 5 > &drids) const
 
int peekPickStep (T34 pick) const
 
int peekPickStep4 (T34 pick) const
 
int peekPickStep7 (T34 pick) const
 
int peekPickStep7Gb (T34 pick) const
 
int peekPickStep13 (T34 pick) const
 
template<typename Ret , typename... Params, typename... Args>
Ret peekDiscard (const Action &a, Ret(Hand::*f)(Params...) const, Args &&... args) const
 
template<typename Ret , typename... Params, typename... Args>
Ret peekSwap (const T37 &t, Ret(Hand::*f)(Params...) const, Args &&... args) const
 
template<typename Ret , typename... Params, typename... Args>
Ret peekSpin (Ret(Hand::*f)(Params...) const, Args &&... args) const
 
template<typename Ret , typename... Params, typename... Args>
Ret peekCp (const T37 &pick, const Action &action, Ret(Hand::*f)(Params...) const, Args &&... args) const
 
void draw (const T37 &in)
 
void swapOut (const T37 &out)
 
void spinOut ()
 
void barkOut (const T37 &out)
 
void chiiAsLeft (const T37 &pick, bool showAka5)
 
void chiiAsMiddle (const T37 &pick, bool showAka5)
 
void chiiAsRight (const T37 &pick, bool showAka5)
 
void pon (const T37 &pick, int showAka5, int layIndex)
 
void daiminkan (const T37 &pick, int layIndex)
 
void ankan (T34 t)
 
void kakan (int barkId)
 

The documentation for this class was generated from the following files: