项目作者: hankpan-dev

项目描述 :
Slot machine library
高级语言: Go
项目地址: git://github.com/hankpan-dev/slotkit.git
创建时间: 2020-08-28T16:45:52Z
项目社区:https://github.com/hankpan-dev/slotkit

开源协议:

下载


slotkit

Slot machine library

範例 : 建立一個 5x3 的滾輪

  1. // 創建 slot 物件 (5x3)
  2. slot := slotkit.NewSlot(5, 3)
  3. slot := slotkit.NewSlotFlex(3, 3, 3, 3, 3)
  4. // 設定 slot 上的圖騰
  5. slot.Cells()[0].Symbol = SymbolA
  6. slot.Reel(0)[0].Symbol = SymbolA
  7. // 計算 slot 相同 id 的圖騰數量
  8. slot.CountID(SymbolWild.Id)
  9. // 取得滾輪
  10. reel := slot.Reel(0)
  11. // 設定滾輪上的圖騰
  12. reel.SetSymbols(0, SymbolA, SymbolWild, ...)
  13. // 計算滾輪上相同 id 的圖騰數量
  14. reel.CountID(SymbolWild.Id)

< Slot 排列規則 >

R0 R1 R2 R3 R4
00 03 06 09 12
01 04 07 10 13
02 05 08 11 14
  1. // slot 最後一個位置, 相當於最後一個滾輪的最後位置, 以下幾個寫法結果相同
  2. slot.SetSymbol(14, Symbol)
  3. slot.Reel(4)[2].Symbol = Symbol
  4. // 列舉所有圖騰
  5. for i, cell := range slot {
  6. // i = 0 ~ 14 (參考 slot 排列規則)
  7. fmt.Println(cell.Symbol)
  8. }
  9. // 列舉所有 reel
  10. for _, reel := range slot.Reels() {
  11. // 列舉 reel 的 symbol
  12. for i, cell := range reel {
  13. // ...
  14. }
  15. }

範例 : Payline

建立 Payline 樣式
  1. // 建立 Payline 樣式為 - Slot 的 00, 03, 07, 11, 14 號位置
  2. payline := slotkit.NewPayline(0, 0, 1, 2, 2)
  3. // 取得 payline 對應於 slot 上的圖騰到
  4. line := payline.FetchSymbols(slot)
  5. // 取得反向圖騰
  6. line := payline.FetchSymbols(slot).Reverse()
  7. // 尋找符合條件的圖騰 (Mask=0x00ff, 尋找 flag=0x0000 ~ 0x00ff 之間的任意一個圖騰)
  8. index := line.FindMatch(0xff, 0)
  9. // 計算連線長度
  10. combins := line.Combinations(SymbolA.Flag()|SymbolWild.Flag())
  11. // 計算 Payline 上相同 id 的圖騰數量
  12. count := line.CountID((SymbolWild.Id()))

範例 : Symbol

Symbol 包含 Id, Flag, String

Id() : 定義圖騰唯一編號
Flag() : 定義圖騰旗標, 例如 normal, scatter, wild…
Sting() : 圖騰名稱

  1. var (
  2. SymbolJ = slotkit.NewSymbol(1, 0x0001, "J") // Normal symbol
  3. SymbolQ = slotkit.NewSymbol(2, 0x0002, "Q") // Normal symbol
  4. SymbolK = slotkit.NewSymbol(3, 0x0004, "K") // Normal symbol
  5. SymbolA = slotkit.NewSymbol(4, 0x0008, "A") // Normal symbol
  6. SymbolScatter = slotkit.NewSymbol(9, 0x4000, "Satter") // Scatter
  7. SymbolWild = slotkit.NewSymbol(10, 0x8000, "Wild") // Wild
  8. )

以上圖騰範例
可用使用 CountMatch(0x000f) 計算 Normal symbols 數量
可以使用 CountMatch(0x800f) 計算 Normal & Wild symbols 數量


範例 : Cell

Cell 包含 Symbol 與 Param

Symbol : 圖騰
Param : 自訂義參數

  1. // 例: 設定 wild 圖騰格倍數
  2. for _, cell := range slot.Cells() {
  3. if cell.Symbol.Id() == wild {
  4. cell.Param = 2
  5. }
  6. }
  7. // 例: 標記中獎的 payline
  8. line := payline.FetchSymbols(slot)
  9. for _, cell := range line {
  10. cell.Param = true
  11. }