util

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2019 License: MIT Imports: 4 Imported by: 1

Documentation

Index

Constants

View Source
const AgariState = -1

Variables

This section is empty.

Functions

func CalculateShanten

func CalculateShanten(tiles34 []int, isOpen bool) int

根据手牌计算向听数 tiles34 手牌 isOpen 是否副露,未副露的手牌会考虑七对子 TODO: 这样好吗?

func CalculateShantenWithImproves14

func CalculateShantenWithImproves14(tiles34 []int, isOpen bool) (shanten int, waitsWithImproves WaitsWithImproves14List, incShantenResults WaitsWithImproves14List)

14 张牌,计算向听数、进张、改良、向听倒退等

func CalculateShantenWithoutChitoitsu

func CalculateShantenWithoutChitoitsu(tiles34 []int) int

func CountOfTiles

func CountOfTiles(tiles []int) (count int)

func CountPairs

func CountPairs(tiles34 []int) (pairs int)

func MustStrToTiles34

func MustStrToTiles34(tiles string) []int

func NumberToChineseShanten

func NumberToChineseShanten(num int) string

func StrToTile34

func StrToTile34(tile string) (tile34 int, err error)

func StrToTiles34

func StrToTiles34(tiles string) (num int, tiles34 []int, err error)

e.g. "22m 24p" => (4, [0, 2, 0, 0, ...,0, 10, 12])

func TilesToMergedStr

func TilesToMergedStr(tiles []int) (res string)

[0, 2, 9] => "13m 1p"

func TilesToMergedStrWithBracket

func TilesToMergedStrWithBracket(tiles []int) (res string)

[0, 2, 9] => "[13m 1p]"

Types

type Improves

type Improves map[int]Waits

map[改良牌]进张

type Waits

type Waits map[int]int

map[进张牌]剩余数

func CalculateShantenAndWaits13

func CalculateShantenAndWaits13(tiles34 []int, isOpen bool) (shanten int, waits Waits)

13 张牌,计算向听数和进张

func (Waits) FixCountsWithLeftCounts

func (w Waits) FixCountsWithLeftCounts(leftCounts []int)

func (Waits) ParseIndex

func (w Waits) ParseIndex() (allCount int, indexes []int)

func (Waits) String

func (w Waits) String() string

type WaitsWithImproves13

type WaitsWithImproves13 struct {
	// 手牌
	Tiles34 []int

	// 向听数
	Shanten int

	// 进张:摸到这张牌可以让向听数前进
	Waits Waits

	// map[进张牌]向听前进后的进张数(这里让向听前进的切牌是最优切牌,即让向听前进后的进张数最大的切牌)
	NextShantenWaitsCountMap map[int]int

	// 改良:摸到这张牌虽不能让向听数前进,但可以让进张变多
	Improves Improves

	// 改良情况数
	ImproveWayCount int

	// 对于每张牌,摸到之后的手牌进张数(如果摸到的是 Waits 中的牌,则进张数视作摸到之前的进张数)
	ImproveWaitsCount34 []int

	// 在没有摸到进张时的改良进张数的加权均值
	AvgImproveWaitsCount float64

	// 向听前进后的进张数的加权均值
	AvgNextShantenWaitsCount float64
}

13 张手牌的分析结果

func CalculateShantenWithImproves13

func CalculateShantenWithImproves13(tiles34 []int, isOpen bool) (waitsWithImproves *WaitsWithImproves13)

13 张牌,计算向听数、进张、改良、向听倒退等

func (*WaitsWithImproves13) String

func (r *WaitsWithImproves13) String() string

调试用

type WaitsWithImproves14

type WaitsWithImproves14 struct {
	Result13 *WaitsWithImproves13
	// 需要切的牌
	DiscardTile int
	// 切掉这张牌后的向听数
	Shanten int
}

func (*WaitsWithImproves14) String

func (r *WaitsWithImproves14) String() string

type WaitsWithImproves14List

type WaitsWithImproves14List []*WaitsWithImproves14

func (WaitsWithImproves14List) Sort

func (l WaitsWithImproves14List) Sort()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL