Documentation ¶
Index ¶
- Constants
- func DoraList(doraIndicators []int, isSannin bool) (doraList []int)
- func DoraTile(doraIndicator int, isSannin bool) (dora int)
- func InitLeftTiles34WithTiles34(tiles34 []int) []int
- type HumanTilesInfo
- type Meld
- type PlayerInfo
- func (pi *PlayerInfo) AddMeld(meld Meld)
- func (pi *PlayerInfo) CountDora() (count int)
- func (pi *PlayerInfo) DiscardTile(tile int, isRedFive bool)
- func (pi *PlayerInfo) FillLeftTiles34()
- func (pi *PlayerInfo) IsFuriten(waits map[int]int) bool
- func (pi *PlayerInfo) IsNaki() bool
- func (pi *PlayerInfo) IsOnlyRedFive(tile int) bool
- func (pi *PlayerInfo) UndoAddMeld()
- func (pi *PlayerInfo) UndoDiscardTile(tile int, isRedFive bool)
Constants ¶
View Source
const ( SepMeld = "#" SepTargetTile = "+" )
View Source
const ( MeldTypeChi = iota // 吃 MeldTypePon // 碰 MeldTypeAnkan // 暗杠 MeldTypeMinkan // 大明杠 MeldTypeKakan // 加杠 )
View Source
const ( TileTypeMan = 0 TileTypePin = 1 TileTypeSou = 2 )
Variables ¶
This section is empty.
Functions ¶
func InitLeftTiles34WithTiles34 ¶
TODO: 其他的也移过来
Types ¶
type HumanTilesInfo ¶
type HumanTilesInfo struct { // 手牌 & 副露(暗杠用大写表示) + 要鸣的牌(可以吃) HumanTiles string // 24688m 34s # 6666P 234p + 3m HumanDoraTiles string // 13m6p 不能有空格 IsTsumo bool HumanMelds []string // 从 HumanTiles 解析出来的副露 HumanTargetTile string // 从 HumanTiles 解析出来的被鸣的牌 }
用于命令行分析
func NewSimpleHumanTilesInfo ¶
func NewSimpleHumanTilesInfo(humanTiles string) *HumanTilesInfo
func (*HumanTilesInfo) SelfParse ¶
func (i *HumanTilesInfo) SelfParse() error
简单地处理 HumanTiles,拆分成一些子字符串
type Meld ¶
type PlayerInfo ¶
type PlayerInfo struct { HandTiles34 []int // 手牌,不含副露 Melds []Meld // 副露 DoraTiles []int // 宝牌指示牌产生的宝牌,可以重复 NumRedFives []int // 按照 mps 的顺序,各个赤5的个数(手牌和副露中的) IsTsumo bool // 是否自摸 WinTile int // 自摸/荣和的牌 RoundWindTile int // 场风 SelfWindTile int // 自风 IsParent bool // 是否为亲家 IsDaburii bool // 是否双立直 IsRiichi bool // 是否立直 DiscardTiles []int // 自家舍牌,用于判断和率,是否振听等 *注意创建 PlayerInfo 的时候把负数调整成正的! LeftTiles34 []int // 剩余牌 LeftDrawTilesCount int // 剩余可以摸的牌数 NukiDoraNum int // 拔北宝牌数 }
func NewSimplePlayerInfo ¶
func NewSimplePlayerInfo(tiles34 []int, melds []Meld) *PlayerInfo
func (*PlayerInfo) AddMeld ¶
func (pi *PlayerInfo) AddMeld(meld Meld)
func (*PlayerInfo) CountDora ¶
func (pi *PlayerInfo) CountDora() (count int)
根据手牌、副露、赤5,结合哪些是宝牌,计算出拥有的宝牌个数
func (*PlayerInfo) DiscardTile ¶
func (pi *PlayerInfo) DiscardTile(tile int, isRedFive bool)
func (*PlayerInfo) FillLeftTiles34 ¶
func (pi *PlayerInfo) FillLeftTiles34()
func (*PlayerInfo) IsFuriten ¶
func (pi *PlayerInfo) IsFuriten(waits map[int]int) bool
是否振听 仅限听牌时调用 TODO: Waits 移进来
func (*PlayerInfo) IsNaki ¶
func (pi *PlayerInfo) IsNaki() bool
是否已鸣牌(暗杠不算) 可以用来判断该玩家能否立直,计算门清加符、役种番数等
func (*PlayerInfo) UndoAddMeld ¶
func (pi *PlayerInfo) UndoAddMeld()
func (*PlayerInfo) UndoDiscardTile ¶
func (pi *PlayerInfo) UndoDiscardTile(tile int, isRedFive bool)
Click to show internal directories.
Click to hide internal directories.