Documentation
¶
Index ¶
- Constants
- Variables
- func InitGameMod(node *RTPNode, tags []string, funcTag []FuncOnResult, symbols []int, ...)
- func InitGameMod2(node *RTPNode, tags []string, funcTag []FuncOnResult, symbols []int, ...)
- func InitGameMod3(node *RTPNode, tags []string, funcTag []FuncOnResult, symbols []int, ...)
- func InitGameModTag(node *RTPNode, tag string, symbols []int, nums []int)
- func InitGameModTag2(node *RTPNode, tag string, symbols []int, nums []int, ...)
- func InitSymbol(node *RTPNode, tag string, symbol int, nums []int)
- func InitSymbol2(node *RTPNode, tag string, symbol int, nums []int, ...)
- func OnGameModResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
- func OnRootResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
- func OnSymbolNumsResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
- func OnSymbolResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
- func StartRTP(game sgc7game.IGame, rtp *RTP, worknums int, spinnums int64, ...) time.Duration
- func StartRTP2(game sgc7game.IGame, rtp *RTP, worknums int, spinnums int64, ...) time.Duration
- func StartRTP3(game sgc7game.IGame, rtp *RTP, worknums int, spinnums int64, ...) time.Duration
- func StartScaleRTPDown(game sgc7game.IGame, rtp *RTP, worknums int, spinnums int64, ...) time.Duration
- type FeatureNode
- type FuncFeatureOnResults
- type FuncHROnResult
- type FuncOnHitFrequencyBet
- type FuncOnHitFrequencyResult
- type FuncOnPlayer
- type FuncOnRTPResults
- type FuncOnRTPTimer
- type FuncOnRTPTimer3
- type FuncOnResult
- type FuncRDLOnResults
- type HitFrequencyData
- type HitRateNode
- type PlayerPoolData
- type RTP
- func (rtp *RTP) Add(rtp1 *RTP)
- func (rtp *RTP) AddFeature(tag string, funcOnResults FuncFeatureOnResults)
- func (rtp *RTP) AddHitFrequencyData(tag string, onHitFrequencyBet FuncOnHitFrequencyBet, ...)
- func (rtp *RTP) AddHitRateNode(tag string, funcOnResult FuncHROnResult)
- func (rtp *RTP) AddPlayerPoolData(tag string, funcOnPlayer FuncOnPlayer)
- func (rtp *RTP) AddReturnNode(tag string, valRange []float64, funcOnResults FuncRDLOnResults)
- func (rtp *RTP) AddReturns(ret float64, rngs []int)
- func (rtp *RTP) Bet(bet int64)
- func (rtp *RTP) CalcRTP()
- func (rtp *RTP) Clone() *RTP
- func (rtp *RTP) NewStats(tagname string)
- func (rtp *RTP) OnPlayerPoolData(ps sgc7game.IPlayerState)
- func (rtp *RTP) OnResult(stake *sgc7game.Stake, i int, prs []*sgc7game.PlayResult, gameData any)
- func (rtp *RTP) OnResults(lst []*sgc7game.PlayResult, gameData any)
- func (rtp *RTP) OnStats(tagname string, val int64)
- func (rtp *RTP) Save2CSV(fn string) error
- func (rtp *RTP) SaveAllReturns(dir string, fnprefix string)
- func (rtp *RTP) SaveReturns2CSV(fn string) error
- type RTPNode
- func NewRTPGameMod(gamemod string) *RTPNode
- func NewRTPGameModEx(gamemod string, onGameMod FuncOnResult) *RTPNode
- func NewRTPGameModTag(gamemod string, tag string, funcTag FuncOnResult) *RTPNode
- func NewRTPRoot() *RTPNode
- func NewRTPSymbol(gamemod string, tag string, symbol int) *RTPNode
- func NewRTPSymbol2(gamemod string, tag string, symbol int, onSymbolResult FuncOnResult) *RTPNode
- func NewRTPSymbolNums(gamemod string, tag string, symbol int, nums int) *RTPNode
- func NewRTPSymbolNums2(gamemod string, tag string, symbol int, nums int, ...) *RTPNode
- func (node *RTPNode) Add(node1 *RTPNode)
- func (node *RTPNode) AddChild(name string, c *RTPNode)
- func (node *RTPNode) CalcRTP(totalbet int64)
- func (node *RTPNode) ChgSymbolNumsFunc(funcOnResult FuncOnResult)
- func (node *RTPNode) Clone() *RTPNode
- func (node *RTPNode) GenGameModString(gamemod string, sn []int, totalbet int64) string
- func (node *RTPNode) GenRootString(sn []int, totalbet int64) string
- func (node *RTPNode) GenSymbolString(gamemod string, tag string, symbol int, sn []int, totalbet int64) string
- func (node *RTPNode) GenTagString(gamemod string, tag string, sn []int, totalbet int64) string
- func (node *RTPNode) GetGameMods(arr []string) []string
- func (node *RTPNode) GetSymbolNums(arr []int) []int
- func (node *RTPNode) GetSymbolNumsWon(gamemod string, tag string, symbol int, sn int) int64
- func (node *RTPNode) GetSymbols(arr []int) []int
- func (node *RTPNode) GetTags(arr []string, gamemod string) []string
- func (node *RTPNode) OnResult(pr *sgc7game.PlayResult, gameData any)
- type RTPReturnData
- type RTPReturnDataList
- type RTPStats
Constants ¶
const ( // RTPNodeRoot - root RTPNodeRoot = 0 // RTPNodeGameMod - gamemod RTPNodeGameMod = 1 // RTPNodeTag - tag RTPNodeTag = 2 // RTPNodeSymbol - symbol RTPNodeSymbol = 3 // RTPNodeSymbolNums - symbol nums RTPNodeSymbolNums = 4 )
Variables ¶
var ( // ErrInvalidReturnLen - invalid return len ErrInvalidReturnLen = errors.New("invalid return len") )
Functions ¶
func InitGameMod ¶
func InitGameMod(node *RTPNode, tags []string, funcTag []FuncOnResult, symbols []int, nums []int)
InitGameMod - new RTPNode
func InitGameMod2 ¶
func InitGameMod2(node *RTPNode, tags []string, funcTag []FuncOnResult, symbols []int, nums []int, onSymbolResult FuncOnResult, onSymbolNumsResult FuncOnResult)
InitGameMod2 - new RTPNode
func InitGameMod3 ¶
func InitGameMod3(node *RTPNode, tags []string, funcTag []FuncOnResult, symbols []int, nums []int, onSymbolResult []FuncOnResult, onSymbolNumsResult []FuncOnResult)
InitGameMod3 - new RTPNode
func InitGameModTag ¶
InitGameModTag - new RTPNode
func InitGameModTag2 ¶
func InitGameModTag2(node *RTPNode, tag string, symbols []int, nums []int, onSymbolResult FuncOnResult, onSymbolNumsResult FuncOnResult)
InitGameModTag2 - new RTPNode
func InitSymbol ¶
InitSymbol - new RTPNode
func InitSymbol2 ¶
func InitSymbol2(node *RTPNode, tag string, symbol int, nums []int, onSymbolNumsResult FuncOnResult)
InitSymbol2 - new RTPNode
func OnGameModResult ¶
func OnGameModResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
OnGameModResult - on gamemod
func OnRootResult ¶
func OnRootResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
OnRootResult - on root
func OnSymbolNumsResult ¶
func OnSymbolNumsResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
OnSymbolNumsResult - on symbol nums
func OnSymbolResult ¶
func OnSymbolResult(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
OnSymbolResult - on symbol
func StartRTP ¶
func StartRTP(game sgc7game.IGame, rtp *RTP, worknums int, spinnums int64, stake *sgc7game.Stake, numsTimer int, ontimer FuncOnRTPTimer, needVariance bool, limitPayout int64) time.Duration
StartRTP - start RTP
func StartRTP2 ¶ added in v0.12.274
func StartRTP2(game sgc7game.IGame, rtp *RTP, worknums int, spinnums int64, stake *sgc7game.Stake, numsTimer int, ontimer FuncOnRTPTimer, needVariance bool, limitPayout int64) time.Duration
StartRTP2 - start RTP
Types ¶
type FeatureNode ¶
type FeatureNode struct {
TagName string
BetNums int64
TriggerNums int64
FuncOnResults FuncFeatureOnResults
}
FeatureNode -
func NewFeatureNode ¶
func NewFeatureNode(tag string, funcOnResults FuncFeatureOnResults) *FeatureNode
NewFeatureNode - new FeatureNode
type FuncFeatureOnResults ¶
type FuncFeatureOnResults func(node *FeatureNode, lst []*sgc7game.PlayResult, gameData any) bool
FuncFeatureOnResults - onResult(*FeatureNode, []*sgc7game.PlayResult, any)
type FuncHROnResult ¶
type FuncHROnResult func(rtp *RTP, node *HitRateNode, i int, prs []*sgc7game.PlayResult) bool
FuncHROnResult - onResult(*RTP, *HitRateNode, *sgc7game.PlayResult)
type FuncOnHitFrequencyBet ¶
type FuncOnHitFrequencyBet func(hfd *HitFrequencyData, bet int64)
FuncOnHitFrequencyBet - onHitFrequencyBet(*HitFrequencyData, int64)
type FuncOnHitFrequencyResult ¶
type FuncOnHitFrequencyResult func(hfd *HitFrequencyData, pr *sgc7game.PlayResult)
FuncOnHitFrequencyResult - onHitFrequencyResult(*HitFrequencyData, *sgc7game.PlayResult)
type FuncOnPlayer ¶
type FuncOnPlayer func(pd *PlayerPoolData, ps sgc7game.IPlayerState)
FuncOnPlayer - onPlayer(*PlayerPoolData, sgc7game.IPlayerState)
type FuncOnRTPResults ¶
type FuncOnRTPResults func(lst []*sgc7game.PlayResult, gameData any)
type FuncOnRTPTimer ¶
FuncOnRTPTimer - on timer for rtp
type FuncOnRTPTimer3 ¶ added in v0.12.2012
type FuncOnRTPTimer3 func(totalnums int64, curnums int64, curtime time.Duration, win int64, bet int64)
FuncOnRTPTimer3 - on timer for rtp
type FuncOnResult ¶
type FuncOnResult func(node *RTPNode, pr *sgc7game.PlayResult, gameData any) bool
FuncOnResult - onResult(*RTPNode, *sgc7game.PlayResult, any)
type FuncRDLOnResults ¶
type FuncRDLOnResults func(rdlst *RTPReturnDataList, lst []*sgc7game.PlayResult) bool
FuncRDLOnResults - onResult(*RTPReturnDataList, []*sgc7game.PlayResult)
type HitFrequencyData ¶
type HitFrequencyData struct {
TagName string
Total int64
TriggerTimes int64
OnHitFrequencyBet FuncOnHitFrequencyBet
OnHitFrequencyResult FuncOnHitFrequencyResult
}
HitFrequencyData -
func NewHitFrequencyData ¶
func NewHitFrequencyData(tag string, onHitFrequencyBet FuncOnHitFrequencyBet, onHitFrequencyResult FuncOnHitFrequencyResult) *HitFrequencyData
NewHitFrequencyData - new HitFrequencyData
func (*HitFrequencyData) Clone ¶
func (hfd *HitFrequencyData) Clone() *HitFrequencyData
Clone - clone
func (*HitFrequencyData) GenString ¶
func (hfd *HitFrequencyData) GenString() string
type HitRateNode ¶
type HitRateNode struct {
TagName string
BetNums int64
TriggerNums int64
TotalNums int64
FuncOnResult FuncHROnResult
}
HitRateNode -
func NewSpecialHitRate ¶
func NewSpecialHitRate(tag string, funcOnResult FuncHROnResult) *HitRateNode
NewSpecialHitRate - new HitRateNode
type PlayerPoolData ¶
type PlayerPoolData struct {
TagName string
Total int64
PlayerNums int64
OnPlayer FuncOnPlayer
}
PlayerPoolData -
func NewPlayerPoolData ¶
func NewPlayerPoolData(tag string, onPlayer FuncOnPlayer) *PlayerPoolData
NewPlayerPoolData - new PlayerPoolData
func (*PlayerPoolData) GenString ¶
func (pd *PlayerPoolData) GenString() string
type RTP ¶
type RTP struct {
WinNums int64
BetNums int64
TotalBet int64
TotalWins int64
Root *RTPNode
MapHR map[string]*HitRateNode
MapFeature map[string]*FeatureNode
Variance float64
StdDev float64
Returns []float64
ReturnWeights []float64
MaxReturn int64
MaxReturnNums int64
MaxReturnRNGs []int
MapPlayerPool map[string]*PlayerPoolData
MapHitFrequencyData map[string]*HitFrequencyData
MapReturn map[string]*RTPReturnDataList
MapStats map[string]*RTPStats
MaxCoincidingWin float64
Stats2 *sgc7stats.Feature
FuncRTPResults FuncOnRTPResults
}
RTP -
func (*RTP) AddFeature ¶
func (rtp *RTP) AddFeature(tag string, funcOnResults FuncFeatureOnResults)
AddFeature -
func (*RTP) AddHitFrequencyData ¶
func (rtp *RTP) AddHitFrequencyData(tag string, onHitFrequencyBet FuncOnHitFrequencyBet, onHitFrequencyResult FuncOnHitFrequencyResult)
AddHitFrequencyData -
func (*RTP) AddHitRateNode ¶
func (rtp *RTP) AddHitRateNode(tag string, funcOnResult FuncHROnResult)
AddHitRateNode -
func (*RTP) AddPlayerPoolData ¶
func (rtp *RTP) AddPlayerPoolData(tag string, funcOnPlayer FuncOnPlayer)
AddPlayerPoolData -
func (*RTP) AddReturnNode ¶
func (rtp *RTP) AddReturnNode(tag string, valRange []float64, funcOnResults FuncRDLOnResults)
AddReturnNode -
func (*RTP) OnPlayerPoolData ¶
func (rtp *RTP) OnPlayerPoolData(ps sgc7game.IPlayerState)
OnPlayerPoolData -
func (*RTP) OnResults ¶
func (rtp *RTP) OnResults(lst []*sgc7game.PlayResult, gameData any)
OnResults -
func (*RTP) SaveAllReturns ¶
SaveAllReturns -
type RTPNode ¶
type RTPNode struct {
NodeType int
TriggerNums int64
TotalWin int64
RTP float64
MapChildren map[string]*RTPNode
GameMod string
Symbol int
SymbolNums int
TagName string
FuncOnResult FuncOnResult
}
RTPNode -
func NewRTPGameModEx ¶
func NewRTPGameModEx(gamemod string, onGameMod FuncOnResult) *RTPNode
NewRTPGameModEx - new RTPNode
func NewRTPGameModTag ¶
func NewRTPGameModTag(gamemod string, tag string, funcTag FuncOnResult) *RTPNode
NewRTPGameModTag - new RTPNode
func NewRTPSymbol ¶
NewRTPSymbol - new RTPNode
func NewRTPSymbol2 ¶
func NewRTPSymbol2(gamemod string, tag string, symbol int, onSymbolResult FuncOnResult) *RTPNode
NewRTPSymbol2 - new RTPNode
func NewRTPSymbolNums ¶
NewRTPSymbolNums - new RTPNode
func NewRTPSymbolNums2 ¶
func NewRTPSymbolNums2(gamemod string, tag string, symbol int, nums int, onSymbolNumsResult FuncOnResult) *RTPNode
NewRTPSymbolNums2 - new RTPNode
func (*RTPNode) ChgSymbolNumsFunc ¶
func (node *RTPNode) ChgSymbolNumsFunc(funcOnResult FuncOnResult)
ChgSymbolNumsFunc -
func (*RTPNode) GenGameModString ¶
GenGameModString -
func (*RTPNode) GenRootString ¶
GenRootString -
func (*RTPNode) GenSymbolString ¶
func (node *RTPNode) GenSymbolString(gamemod string, tag string, symbol int, sn []int, totalbet int64) string
GenSymbolString -
func (*RTPNode) GenTagString ¶
GenTagString -
func (*RTPNode) GetSymbolNumsWon ¶
GetSymbolNumsWon -
type RTPReturnData ¶
type RTPReturnDataList ¶
type RTPReturnDataList struct {
Tag string
Returns []int64
ReturnWeights []int64
MaxReturn int64
MaxReturnNums int64
MaxReturnRNGs []int
ValRange []float64
TotalReturns []float64
// contains filtered or unexported fields
}
func NewRTPReturnDataList ¶
func NewRTPReturnDataList(tag string, valRange []float64, onResults FuncRDLOnResults) *RTPReturnDataList
func (*RTPReturnDataList) AddReturns ¶
func (rdlst *RTPReturnDataList) AddReturns(fret float64, rngs []int)
AddReturns -
func (*RTPReturnDataList) Clone ¶
func (rdlst *RTPReturnDataList) Clone() *RTPReturnDataList
Clone -
func (*RTPReturnDataList) Merge ¶
func (rdlst *RTPReturnDataList) Merge(lst *RTPReturnDataList)
Merge -
func (*RTPReturnDataList) SaveReturns2CSV ¶
func (rdlst *RTPReturnDataList) SaveReturns2CSV(fn string) error
SaveReturns2CSV -