Libsaki
Core library of Pancake Mahjong
Classes | Typedefs | Enumerations | Functions | Variables
saki Namespace Reference

Classes

class  Action
 
class  Ai
 
class  AiAwai
 
class  AiHatsumi
 
class  AiKasumi
 
class  AiKuro
 
class  AiNodoka
 
class  AiSawaya
 
class  AiSeiko
 
class  AiStub
 
class  AiTakami
 
class  AiToyone
 
class  Ako
 
class  Awai
 
class  C34
 Comeld, a meld or a part of a meld. More...
 
struct  ChoiceFilter
 
class  Choices
 Choice set of one player. More...
 
class  Exist
 
class  Explain4
 Parsed 4-meld complete hand. More...
 
class  Form
 
struct  FormCtx
 
class  FormGb
 
struct  Furiten
 
class  Gen
 
class  Girl
 Base class for skill implementation. More...
 
class  GirlCrtp
 
class  GirlX
 Lua intepreter for custom characters. More...
 
class  Hand
 
class  Hatsumi
 
class  HrhBargainer
 Interface for working with the 'bargain' stage. More...
 
struct  HrhInitFix
 Data object for directly assigning init-hand. More...
 
class  Huiyu
 
class  IntIter
 
class  IntRange
 
class  IrsCheckItem
 
class  IrsCtrl
 
class  IrsCtrlCheck
 
class  IrsCtrlClickCheck
 
class  IrsCtrlPlus
 
struct  IrsResult
 
class  KanCtx
 
class  Kasumi
 
class  Kazue
 
class  Kuro
 
class  Kyouka
 
class  Kyouko
 
class  LuaDisposeRefGuard
 
class  LuaManagedRef
 
class  LuaUserErrorHandler
 
class  LuaVarScope
 
class  M37
 
class  Mount
 
class  Nodoka
 
class  Parsed13
 
class  Parsed4
 
class  Parsed4s
 
class  Parsed7
 
class  Parseds
 
class  ParsedView4Ready
 
class  ParsedView4Step1
 
struct  PlayerSnap
 
class  PredThis
 
class  Princess
 
class  Replay
 
class  ReturnCopy
 
class  Rio
 
struct  Rule
 
class  Sawaya
 
class  Seiko
 
class  Sera
 
class  Shino
 
class  Sumire
 
class  Suzu
 
class  T34
 
class  T37
 
class  Table
 
class  TableDecider
 
class  TableEnv
 
class  TableEnvStub
 
class  TableEvent
 
class  TableFocus
 
struct  TableMsg
 
class  TableMsgContent
 
class  TableObserver
 
class  TableObserverDispatched
 
class  TablePrivate
 Default-copy-constructable part of Table. More...
 
class  TableServer
 
class  TableServerAi3
 
struct  TableSnap
 
class  TableTester
 
class  TableView
 
class  TableViewHand
 
class  TableViewReal
 
class  Takami
 
class  Teru
 
class  TestScope
 
class  TileCount
 
class  TileCountList
 An iterable virtual list of all tile-counts whose containing tiles sum up to a given number. More...
 
class  Toki
 
class  TokiEvent
 
class  TokiEventBarked
 
class  TokiEventDiscarded
 
class  TokiEventDrawn
 
class  TokiEventFlipped
 
class  TokiEventResult
 
struct  TokiEvents
 
class  TokiHumanSimulator
 
class  TokiMountTracker
 
class  Toyone
 
class  Uta
 
class  Who
 
class  Yue
 
class  Yui
 
class  Yuu
 
class  Yuuki
 

Typedefs

using IrsCheckList = util::Stactor< IrsCheckItem, 16 >
 
using River = util::Stactor< T37, 24 >
 

Enumerations

enum  Yaku {
  RC, IPT, MZCTMH, TYC,
  PF, YKH1Y, YKH2Y, YKH3Y,
  JKZ1F, JKZ2F, JKZ3F, JKZ4F,
  BKZ1F, BKZ2F, BKZ3F, BKZ4F,
  IPK, RSKH, HTRY_T, HTRY_R,
  CK, SSKDJ_K, IKTK_K, HCTYC_K,
  DBRRC, SSKDJ, IKTK, HCTYC,
  TTH, CTT, S3AK, S3KT,
  SSKDK, HRT, SSG, HIS_K,
  JCTYC_K, HIS, JCTYC, RPK,
  CIS_K, CIS, KKSMS, DSG,
  S4AK, TIS, SSS, DSS,
  CRT, RIS, TH, CH,
  S4KT, CRPT, KKSMS_A, S4AK_A,
  CRPT_A, NUM_YAKUS
}
 
enum  ManganType {
  HR, MG, HNM, BM,
  SBM, KZEYKM
}
 
enum  Fan {
  DSY88, DSX88, JLBD88, LQD88,
  SG88, LYS88, SSY88, QYJ64,
  XSY64, XSX64, ZYS64, SAK64,
  YSSLH64, YSSTS48, YSSJG48, YSSBG32,
  SG32, HYJ32, Q7D24, QSK24,
  QYS24, YSSTS24, YSSJG24, QDA24,
  QZ24, QX24, QL16, SSSLH16,
  YSSBG16, QDW16, STK16, SAK16,
  DYW12, XYW12, SFK12, HL8,
  TBD8, SSSTS8, SSSJG8, WFH8,
  MSHC8, HDLY8, GSKH8, QGH8,
  PPH6, HYS6, SSSBG6, WMQ6,
  QQR6, SAG6, SJK6, MAG5,
  QDY4, BQR4, SMG4, HJZ4,
  JK2, QFK2, MFK2, MQQ2,
  PH2, SGY2, STK2, SAK2,
  AG2, DY2, YBG1, XXF1,
  LL1, LSF1, YJK1, MG1,
  QYM1, WZ1, BZ1, KZ1,
  DDJ1, ZM1, NUM_FANS
}
 
enum  RoundResult {
  TSUMO, RON, HP, KSKP,
  SFRT, SKSR, SCRC, SCHR,
  NGSMG, ABORT, NUM_ROUNDRES
}
 
enum  ActCode {
  NOTHING, PASS, SWAP_OUT, SPIN_OUT,
  SWAP_RIICHI, SPIN_RIICHI, CHII_AS_LEFT, CHII_AS_MIDDLE,
  CHII_AS_RIGHT, PON, DAIMINKAN, ANKAN,
  KAKAN, TSUMO, TSUMO, RON,
  RON, RYUUKYOKU, END_TABLE, NEXT_ROUND,
  DICE, IRS_CHECK, IRS_CLICK, NUM_ACTCODE
}
 
enum  Suit {
  M = 0, P = 1, S = 2, F = 3,
  Y = 4
}
 
enum  Wait {
  NONE, ISORIDE, BIBUMP, CLAMP,
  SIDE, BIFACE
}
 

Functions

util::Stactor< Action, 44 > allMaxs (const util::Range< Action > &range, std::function< int(const Action &)> measure, int floor)
 Pick all max values according to 'measure'.
 
auto isValidSuitStr (const std::string &s) -> bool
 
auto toLower (const char *s) -> std::string
 
auto parseMountExit (const std::string &s) -> std::pair< Mount::Exit, bool >
 
auto tableToDrids (sol::table idsTable) -> util::Stactor< T37, 5 >
 
auto handMod1 (sol::table ids, const LuaManagedRef< Hand > &hand) -> int
 
auto handMod2 (T34 indic, const LuaManagedRef< Hand > &hand) -> int
 
auto formCtor1 (LuaUserErrorHandler &error, const LuaManagedRef< Hand > &full, const FormCtx &ctx, const Rule &rule, sol::table drids, sol::table urids) -> sol::optional< Form >
 
auto formCtor2 (LuaUserErrorHandler &error, const LuaManagedRef< Hand > &ready, const T37 &pick, const FormCtx &ctx, const Rule &rule, sol::table drids, sol::table urids) -> sol::optional< Form >
 
auto tableGetFocus (const Table &table) -> std::tuple< sol::optional< Who >, sol::optional< T37 >, bool >
 
void setupLuaClasses (const sol::environment &env, LuaUserErrorHandler &error)
 
void setupLuaRand (sol::environment env)
 
void setupLuaTile (sol::environment env, LuaUserErrorHandler &error)
 
void setupLuaWho (sol::environment env)
 
void setupLuaMeld (sol::environment env, LuaUserErrorHandler &error)
 
void setupLuaExist (sol::environment env, LuaUserErrorHandler &error)
 
void setupLuaMount (sol::environment env)
 
void setupLuaTileCount (sol::environment env)
 
void setupLuaHand (sol::environment env)
 
void setupLuaForm (sol::environment env, LuaUserErrorHandler &error)
 
void setupLuaRule (sol::environment env)
 
void setupLuaFormCtx (sol::environment env)
 
void setupLuaGame (sol::environment env)
 
auto toLuaTable (sol::environment env, const TableEvent &event) -> sol::table
 
void to_json (json &content, const TableMsgContent::JustPause &pause)
 
unsigned createSwapMask (const TileCount &closed, const util::Stactor< T37, 13 > &choices)
 
std::string stringOf (const T37 &t, bool lay)
 
void to_json (json &array, const util::Range< T37 > &ts)
 
void to_json (json &array, const util::Range< T34 > &ts)
 
void to_json (json &obj, const M37 &bark)
 
void to_json (json &array, const util::Stactor< M37, 4 > &barks)
 
void to_json (json &obj, const IrsCheckItem &item)
 
void to_json (json &obj, const Rule &rule)
 
void to_json (json &root, const Replay &replay)
 
void to_json (json &obj, const Replay::Round &round)
 
void to_json (json &obj, const Replay::Track &track)
 
Action makeAction (const std::string &actStr, int actArg, const std::string &actTile)
 
template<typename T >
std::string marshal (const T &obj)
 
template<typename T >
void rotate (T &arr)
 
bool isY (T34 t)
 
bool isF (T34 t)
 
bool isZ (T34 t)
 
bool isYao (T34 t)
 
bool isNum19 (T34 t)
 
int operator% (T34 ind, const Hand &hand)
 
int operator% (const util::Stactor< T37, 5 > &inds, const Hand &hand)
 
std::ostream & operator<< (std::ostream &os, const Parsed4 &p)
 
int operator% (const util::Stactor< T37, 5 > &indics, T34 t)
 
void testAll ()
 
void testUtil ()
 
void testTileCount ()
 
void testParse4 ()
 
void testParse7And13 ()
 
void testParseAll ()
 
void testHand ()
 
void testForm ()
 
void testTable ()
 
void testFormGb ()
 
std::ostream & operator<< (std::ostream &os, C34 c)
 
template<size_t MAX>
std::ostream & operator<< (std::ostream &os, const util::Stactor< C34, MAX > &cs)
 
int operator% (T34 ind, const M37 &m)
 
std::ostream & operator<< (std::ostream &os, const M37 &m)
 
std::ostream & operator<< (std::ostream &os, T34 t)
 
template<size_t MAX>
std::ostream & operator<< (std::ostream &os, const util::Stactor< T34, MAX > &ts)
 
int operator% (const util::Stactor< T37, 5 > &inds, const T37 &d)
 
std::ostream & operator<< (std::ostream &os, const T37 &t)
 
template<size_t MAX>
std::ostream & operator<< (std::ostream &os, const util::Stactor< T37, MAX > &ts)
 

Variables

std::array< const char *, NUM_YAKUS > YAKU_STRS
 

Detailed Description

uncomment cheat flags to enable debug-cheat build

Variable Documentation

◆ YAKU_STRS

std::array< const char *, NUM_YAKUS > saki::YAKU_STRS
Initial value:
{
"Rci", "Ipt", "Tmo", "Tny", "Pnf",
"Y1y", "Y2y", "Y3y",
"Y1f", "Y2f", "Y3f", "Y4f",
"Y1f", "Y2f", "Y3f", "Y4f",
"Ipk", "Rns", "Hai", "Hou", "Ckn",
"Ssk", "Itt", "Cta",
"Wri", "Ssk", "Itt", "Cta",
"Toi", "Ctt", "Sak", "Skt", "Stk", "Hrt", "S3g", "H1t", "Jnc",
"Mnh", "Jnc", "Rpk", "C1t", "Mnc",
"X13", "Xd3", "X4a", "Xt1", "Xs4", "Xd4",
"Xcr", "Xr1", "Xth", "Xch", "X4k", "X9r",
"W13", "W4a", "W9r"
}