Versions in this module Expand all Collapse all v0 v0.1.0 Jan 6, 2022 Changes in this version + const RonPointDama + const RonPointOtherNaki + const RonPointRiichiHiIppatsu + const RonPointRiichiIppatsu + const WallSafeTypeDoubleNoChance + const WallSafeTypeDoubleOneChance + const WallSafeTypeMixedOneChance + const WallSafeTypeNoChance + const WallSafeTypeOneChance + const YakuChanta + const YakuChiitoi + const YakuChinitsu + const YakuChinroutou + const YakuChuuren + const YakuChuuren9 + const YakuDaburii + const YakuDaichikurin + const YakuDaichisei + const YakuDaisangen + const YakuDaisharin + const YakuDaisuurin + const YakuDaisuushii + const YakuHonitsu + const YakuHonroutou + const YakuIipeikou + const YakuIsshokusanjun + const YakuIttsuu + const YakuJunchan + const YakuPinfu + const YakuRiichi + const YakuRyanpeikou + const YakuRyuuiisou + const YakuSanAnkou + const YakuSanKantsu + const YakuSanrenkou + const YakuSanshokuDoujun + const YakuSanshokuDoukou + const YakuShiiaruraotai + const YakuShousangen + const YakuShousuushii + const YakuSuuAnkou + const YakuSuuAnkouTanki + const YakuSuuKantsu + const YakuTanyao + const YakuToitoi + const YakuTsumo + const YakuTsuuiisou + const YakuUumensai + const YakuYakuhai + var FixedDoraRiskRateMulti = []float64 + var HonorTileType = [][]tileType + var Mahjong = [...]string + var MahjongU = [...]string + var MahjongZH = [...]string + var MaxTurns = len(RiskRate) - 1 + var NakiYakuHanMap = _yakuHanMap + var NakiYakumanTimesMap = map[int]int + var OldNakiYakuHanMap = _yakuHanMap + var OldYakuHanMap = _yakuHanMap + var OldYakuNameMap = map[int]string + var OldYakumanTimesMap = map[int]int + var RiskRate = [][]float64 + var TileTypeTable = [][]tileType + var YakuHanMap = _yakuHanMap + var YakuNameMap = map[int]string + var YakumanTimesMap = map[int]int + var YaochuTiles = [...]int + func BrightYarrowPrint(text string) + func BrightYarrowPrintf(format string, texts ...interface{}) + func ByteAtStr(b byte, s string) int + func CalcPointRon(han int, fu int, yakumanTimes int, isParent bool) (point int) + func CalcPointTsumo(han int, fu int, yakumanTimes int, isParent bool) (childPoint int, parentPoint int) + func CalcPointTsumoSum(han int, fu int, yakumanTimes int, isParent bool) int + func CalcTenpaiRate(melds []*model.Meld, discardTiles []int, meldDiscardsAt []int) float64 + func CalcYakuHan(yakuTypes []int, isNaki bool) (cntHan int) + func CalcYakumanTimes(yakuTypes []int, isNaki bool) (times int) + func CalculateAgariRateOfEachTile(waits Waits, playerInfo *model.PlayerInfo) map[int]float64 + func CalculateAvgAgariRate(waits Waits, playerInfo *model.PlayerInfo) float64 + func CalculateLeftNoSujiTiles(safeTiles34 []bool, leftTiles34 []int) (leftNoSujiTiles []int) + func CalculateMeld(playerInfo *model.PlayerInfo, calledTile int, isRedFive bool, allowChi bool) (minShanten int, results Hand14AnalysisResultList, ...) + func CalculateShanten(tiles34 []int) int + func CalculateShantenOfChiitoi(tiles34 []int) int + func CalculateShantenOfNormal(tiles34 []int, countOfTiles int) int + func CalculateShantenWithImproves14(playerInfo *model.PlayerInfo) (shanten int, results Hand14AnalysisResultList, ...) + func CatPrint() + func ChiCongPrint(text string) + func ChiCongPrintf(format string, texts ...interface{}) + func CityLightPrint(text string) + func CityLightPrintf(format string, texts ...interface{}) + func CountOfTiles34(tiles34 []int) (count int) + func CountPairsOfTiles34(tiles34 []int) (count int) + func EggBluePrint(text string) + func EggBluePrintf(format string, texts ...interface{}) + func Equal(a, b float64) bool + func GetTenpaiRate3(rate4 float64) (rate3 float64) + func GradualChangePrint(text string) + func InDelta(a, b, delta float64) bool + func InInts(e int, arr []int) bool + func InStrings(e string, arr []string) bool + func InitLeftTiles34() []int + func InitLeftTiles34WithTiles34(tiles34 []int) []int + func IsAgari(tiles34 []int) bool + func LightGreenishBluePrint(text string) + func LightGreenishBluePrintf(format string, texts ...interface{}) + func Lower(c byte) byte + func MaxInt(a, b int) int + func MinInt(a, b int) int + func MintLeafPrint(text string) + func MintLeafPrintf(format string, texts ...interface{}) + func MustParseHumanTilesWithMelds(humanTilesWithMelds string) *model.PlayerInfo + func MustStrToTile34(humanTile string) int + func MustStrToTiles(humanTiles string) []int + func MustStrToTiles34(humanTiles string) []int + func NumberToChineseShanten(num int) string + func OrangevillePrint(text string) + func OrangevillePrintf(format string, texts ...interface{}) + func OutsideTiles(tile int) (outsideTiles []int) + func ParseHumanTilesWithMelds(humanTilesWithMelds string) (playerInfo *model.PlayerInfo, err error) + func RandomAddTile(tiles34 []int) + func RonPointOtherNakiWithDora(doraCount int) (point float64) + func SetConsiderOldYaku(b bool) + func ShantenTrueColorChinese(num int) + func SourLemonPrint(text string) + func SourLemonPrintf(format string, texts ...interface{}) + func StrToTile34(humanTile string) (tile34 int, isRedFive bool, err error) + func StrToTiles(humanTiles string) (tiles []int, numRedFives []int, err error) + func StrToTiles34(humanTiles string) (tiles34 []int, numRedFives []int, err error) + func Tile34ToStr(tile34 int) string + func Tiles34ToStr(tiles34 []int) (humanTiles string) + func Tiles34ToStrWithBracket(tiles34 []int) string + func Tiles34ToTiles(tiles34 []int) (tiles []int) + func TilesToMahjongZH(tiles []int) (words []string) + func TilesToMahjongZHInterface(tiles []int) (words []interface{}) + func TilesToStr(tiles []int) (humanTiles string) + func TilesToStrWithBracket(tiles []int) string + func TilesToTiles34(tiles []int) (tiles34 []int) + func Upper(c byte) byte + func YakuTypesToStr(yakuTypes []int) string + func YakuTypesWithDoraToStr(yakuTypes map[int]struct{}, numDora int) string + type DivideResult struct + IsChiitoi bool + IsChuurenPoutou bool + IsIipeikou bool + IsIttsuu bool + IsRyanpeikou bool + KotsuTiles []int + PairTile int + ShuntsuFirstTiles []int + func DivideTiles34(tiles34 []int) (divideResults []*DivideResult) + func (d *DivideResult) String() string + type Hand13AnalysisResult struct + AvgAgariRate float64 + AvgImproveWaitsCount float64 + AvgNextShantenWaitsCount float64 + DamaPoint float64 + DamaWaits Waits + DoraCount int + FuritenRate float64 + ImproveWayCount int + Improves Improves + IsNaki bool + IsPartWait bool + LeftTiles34 []int + MixedRoundPoint float64 + MixedWaitsScore float64 + NextShantenWaitsCountMap map[int]int + RiichiPoint float64 + Shanten int + Tiles34 []int + Waits Waits + YakuTypes map[int]struct{} + func CalculateShantenWithImproves13(playerInfo *model.PlayerInfo) (r *Hand13AnalysisResult) + func (r *Hand13AnalysisResult) String() string + type Hand14AnalysisResult struct + DiscardHonorTileRisk int + DiscardTile int + DiscardTileValue tileValue + IsDiscardDoraTile bool + LeftDrawTilesCount int + OpenTiles []int + Result13 *Hand13AnalysisResult + func (r *Hand14AnalysisResult) String() string + type Hand14AnalysisResultList []*Hand14AnalysisResult + func (l Hand14AnalysisResultList) Sort(improveFirst bool) + type Improves map[int]Waits + type PointResult struct + FixedPoint float64 + Point int + func CalcAvgPoint(playerInfo model.PlayerInfo, waits Waits) (avgPoint float64, pointResults []*PointResult) + func CalcAvgRiichiPoint(playerInfo model.PlayerInfo, waits Waits) (avgRiichiPoint float64, pointResults []*PointResult) + func CalcPoint(playerInfo *model.PlayerInfo) (result *PointResult) + type RiskTiles34 []float64 + func CalculateRiskTiles34(turns int, safeTiles34 []bool, leftTiles34 []int, doraTiles []int, ...) (risk34 RiskTiles34) + func (l RiskTiles34) FixWithEarlyOutside(discardTiles []int) RiskTiles34 + func (l RiskTiles34) FixWithGlobalMulti(multi float64) RiskTiles34 + func (l RiskTiles34) FixWithPoint(ronPoint float64) RiskTiles34 + type Waits map[int]int + func CalculateShantenAndWaits13(tiles34 []int, leftTiles34 []int) (shanten int, waits Waits) + func (w Waits) AllCount() (count int) + func (w Waits) AvailableTiles() []int + func (w Waits) Equals(w1 Waits) bool + func (w Waits) ParseIndex() (allCount int, indexes []int) + func (w Waits) String() string + type WallSafeTile struct + SafeType int + Tile34 int + type WallSafeTileList []WallSafeTile + func CalcDNCSafeTiles(leftTiles34 []int) (dncSafeTiles WallSafeTileList) + func CalcDNCSafeTilesWithDiscards(leftTiles34 []int, safeTiles34 []bool) (dncSafeTiles WallSafeTileList) + func CalcNCSafeTiles(leftTiles34 []int) (ncSafeTiles WallSafeTileList) + func CalcOCSafeTiles(leftTiles34 []int) (ocSafeTiles WallSafeTileList) + func CalcWallTiles(leftTiles34 []int) (safeTiles WallSafeTileList) + func (l WallSafeTileList) FilterWithHands(handsTiles34 []int) WallSafeTileList + func (l WallSafeTileList) String() string