champagne

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: May 28, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Bottles = [36]float64{
	10, 10, 10, 10, 10, 10,
	20, 20, 20, 20, 20, 20,
	30, 30, 30, 30, 30, 30,
	50, 50, 50, 50, 50, 50,
	100, 100, 100, 100,
	150, 150, 150, 150,
	300, 300,
	500, 500,
}

len = 36, count = 630, avr bottle gain = 90.555556, M = 193.65079365079

View Source
var Emjc float64 // Bottle game calculated expectation
View Source
var Jackpot = [12][5]int{
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, jid},
	{0, 0, 0, 0, 0},
}

Jackpot win combinations.

View Source
var LineBonus = [12][5]int{
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, 0},
	{0, 0, 0, 0, mjc},
}

Lined bonus games

View Source
var LinePay = [12][5]float64{
	{0, 0, 0, 0, 0},
	{0, 3, 5, 20, 100},
	{0, 3, 5, 20, 100},
	{0, 0, 5, 20, 100},
	{0, 0, 5, 20, 100},
	{0, 0, 5, 20, 100},
	{0, 0, 5, 20, 100},
	{0, 0, 5, 20, 100},
	{0, 5, 10, 20, 1000},
	{0, 7, 10, 20, 1000},
	{0, 10, 100, 2000, 10000},
	{0, 0, 0, 0, 0},
}

Lined payment.

View Source
var Reels964 = game.Reels5x{
	{12, 1, 5, 2, 12, 11, 2, 11, 12, 3, 2, 8, 12, 3, 4, 6, 12, 2, 5, 10, 3, 9, 7, 8, 4, 3, 7, 9, 2, 3, 4, 6},
	{2, 5, 10, 12, 9, 6, 3, 4, 12, 2, 6, 8, 3, 12, 11, 2, 11, 12, 5, 7, 4, 6, 3, 4, 12, 2, 5, 8, 2, 7, 1, 9},
	{12, 5, 10, 12, 9, 6, 3, 4, 12, 2, 6, 8, 3, 12, 11, 2, 11, 12, 5, 7, 4, 6, 3, 4, 12, 2, 5, 8, 12, 7, 1, 9},
	{12, 8, 2, 12, 6, 5, 2, 4, 12, 2, 1, 3, 2, 9, 7, 12, 11, 11, 11, 11, 12, 5, 2, 12, 8, 6, 2, 3, 10, 12, 2, 4},
	{12, 11, 7, 12, 6, 4, 12, 3, 2, 12, 3, 7, 12, 3, 5, 1, 12, 3, 8, 9, 12, 4, 3, 2, 12, 5, 3, 10, 2, 12, 3, 6},
}

Original reels. *bonus reels calculations* reels lengths [32, 32, 32, 32, 32], total reshuffles 33554432 symbols: 135.5(lined) + 0.7242(scatter) = 136.224294% free games 7171740, q = 0.21373, sq = 1/(1-q) = 1.271835 champagne bonuses: count 11025, rtp = 6.362796% jackpots: count 32, frequency 1/1048576 RTP = sq*(rtp(sym)+rtp(mjc)) = 1.2718*(136.22+6.3628) = 181.347256% *regular reels calculations* reels lengths [32, 32, 32, 32, 32], total reshuffles 33554432 symbols: 69.974(lined) + 0.7242(scatter) = 70.698214% free games 3585870, q = 0.106867 champagne bonuses: count 11025, rtp = 6.362796% jackpots: count 32, frequency 1/1048576 RTP = rtp(sym) + rtp(mjc) + q*rtp(fg) = 70.698 + 6.3628 + 0.10687*181.35 = 96.441093%

View Source
var ReelsMap = map[string]*game.Reels5x{
	"96": &Reels964,
}

Map with available reels.

View Source
var ScatFreespinBon = [5]int{0, 0, 30, 30, 30} // 1 dollar

Scatter freespins table

View Source
var ScatFreespinReg = [5]int{0, 0, 15, 15, 15} // 1 dollar

Scatter freespins table

View Source
var ScatPay = [5]float64{0, 0, 0, 0, 1000} // 1 dollar

Scatters payment.

Not from lined paytable.

Functions

func CalcStatBon

func CalcStatBon(ctx context.Context, rn string) float64

func CalcStatReg

func CalcStatReg(ctx context.Context, rn string) float64

func ChampagneSpawn

func ChampagneSpawn(bet float64) (any, float64)

func ExpBottle

func ExpBottle() float64

Types

type Game

type Game struct {
	game.Slot5x3 `yaml:",inline"`
	FS           int `json:"fs" yaml:"fs" xml:"fs"` // free spin number
}

func NewGame

func NewGame(rd string) *Game

func (*Game) Apply

func (g *Game) Apply(screen game.Screen, sw *game.WinScan)

func (*Game) FreeSpins

func (g *Game) FreeSpins() int

func (*Game) ScanLined

func (g *Game) ScanLined(screen game.Screen, ws *game.WinScan)

Lined symbols calculation.

func (*Game) ScanScatters

func (g *Game) ScanScatters(screen game.Screen, ws *game.WinScan)

Scatters calculation.

func (*Game) Scanner

func (g *Game) Scanner(screen game.Screen, ws *game.WinScan)

func (*Game) SetLines

func (g *Game) SetLines(sbl game.SBL) error

func (*Game) SetReels

func (g *Game) SetReels(rd string) error

func (*Game) Spawn

func (g *Game) Spawn(screen game.Screen, sw *game.WinScan)

func (*Game) Spin

func (g *Game) Spin(screen game.Screen)

type WinBottle

type WinBottle struct {
	Mult float64 `json:"mult" yaml:"mult" xml:"mult,attr"` // bet multiplier
	Pay  float64 `json:"pay" yaml:"pay" xml:"pay,attr"`    // pay by this cell
}

Jump to

Keyboard shortcuts

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