1. Výpočet tabulky výher
Výhernost automatu VEGASLOT je řízena výherní tabulkou s nelineární výherností. Zde je popsán návrh výherního systému automatu.
Jako první je potřeba se rozhodnout, kolik bude použito symbolů na válcích a jaké budou výherní kombinace. U některých parametrů automatu přihlédneme k technickému řešení. Počet symbolů omezíme na 6 (počet symbolů zobrazitelných na obrázku grafiky), počet pozic válce použijeme 32 (pozici všech 3 válců je možné snadno vyjádřit 16-bitovým číslem). Pro výherní kombinace použijeme kombinace stejných symbolů. Podle předpisů v České republice bude maximální hodnota výhry 750, takže po rovnoměrném rozdělení použijeme výherní kombinace 10, 20, 50, 100, 200 a 750 (pro stejné symboly třešeň, jablko, švestka, hruška, hrozen a zvonek). Větší interval mezi 200 a 750 je zvolen záměrně pro zvýšení napětí hry (spojené se symbolem zvonku).
Dalším úkonem bude rozvržení symbolů na válcích. Při rozvržení symbolů je hlavním požadavkem, aby bylo dosaženo velké pestrosti kombinací výher (i na více liniích současně), aby byla hra co nejzajímavější a aby se neobjevovaly stále stejné kombinace symbolů. Toho dosáhneme nejlépe rovnoměrným rozmístěním symbolů od nejnižšího k nejvyššímu s lehkým zpřeházením blízkých symbolů. Doplňkovým kritériem je omezení výše výhry na 750, proto musíme zajistit, aby se v oblasti vysokých symbolů neobjevila kombinace poskytující vyšší výhru. Není velký problém vyšší výhru ošetřit programově (přeskočením nepovolené kombinace) nebo herně (bonusovou hrou), ale raději tuto situaci ošetříme již při projektování válců. Upřesnění rozmístění symbolů provedeme později podle tabulek výhernosti.
V dávných dobách (obzvláště u mechanických výherních automatů) byla výhernost automatu řešena rozmístěním symbolů na válcích a otáčením válců na náhodné pozice. V dnešní počítačové době nejsou válce otáčeny na náhodné pozice, ale jsou generovány výherní kombinace tak, aby bylo dosaženo požadované výhernosti. To umožňuje používat pestřejší a zajímavější výherní kombinace s plynulejším rozložením typů výher.
Při generování příští pozice válců používá automat výherní tabulku, ve které jsou uloženy předepsané výhernosti jednotlivých typů výher. Automat nejdříve vygeneruje náhodné číslo a poté prohledává tabulku výher, až nalezne typ výhry, do jehož intervalu výhernosti vygenerované číslo spadá. Následuje vyhledání kombinace válců s daným typem výhry (nebo naopak prohry) a natočení válců na nalezenou pozici.
Pro výpočet tabulky výhernosti si vytvoříme zdrojový soubor GAMETAB.ASM, který budeme překládat příkazem "NASM16.EXE -o GAMETAB.COM GAMETAB.ASM". Jedná se o DOS program, který vypisuje tabulky na konzolový výstup. Přesměrováním výstupu do souboru příkazem "GAMETAB.COM > GAMETAB.INC" se vygeneruje soubor zdrojového kódu, který použijeme v hlavním programu automatu.
Jako první si připravíme obsluhu konzolového výstupu a základní definice podle následujícího výpisu programu (pro přehlednost je program mírně zjednodušen, kód lze stáhnout jako předvariantu A).
|
Výstupem programu je následující text:
SECTION .text
ReelTab: db C,C,C,C,C,A,A,P,P,E,P,A,C,P,A,C,G,E,A,E,G,C,A,G,E,G,A,P,P,B,C,A
db C,C,C,A,C,A,A,P,E,P,A,E,P,A,C,G,E,G,E,P,C,P,A,G,E,G,C,A,E,B,A,C
db C,C,C,G,C,A,A,A,P,C,G,P,E,P,C,E,G,E,C,E,B,G,P,G,E,G,C,E,G,B,P,A
WinVal: dw 10,20,50,100,200,750
Program na svém konci obsahuje tabulku definice rozmístění symbolů na válcích ReelTab, ve které jsou použita symbolická označení symbolů ze začátku programu. Ústřední funkcí pro výpis textu na konzolu je funkce PrintChar, která zobrazí znak v registru AL. Funkce zajišťuje sledování pozice znaku na řádku, což je využíváno při odsazení textu na požadovanou pozici funkcí PrintTabPos. Funkce PrintText zobrazí text z adresy DS:AX ukončený binární nulou. Funkce PrintNum zobrazí číslo z registru AX. Funkce PrintReel zobrazí definici jednoho válce. Načítá definiční bajty z tabulky ReelTab a převádí je na znaky pomocí tabulky TextSymb.
Na první pohled se funkce programu může zdát nelogická - načítat data z programu a zobrazovat je ve stejné formě jako zdrojový text. Důvodem je zajištění snadné modifikovatelnosti programu a zabezpečení, aby byl připraven pro koncový program kompaktní zdrojový kód i po změnách v definičních tabulkách a nedošlo tak k nesynchronitě programů.
V následující části zajistíme vyhodnocení statistiky výher. Připravíme funkce, které projdou všechny kombinace válců, vyhodnotí možné výhry a zařadí je do tabulek typů výher. Doplňte do programu následující části kódu (nebo můžete kód stáhnout jako předvariantu B).
Doplněk do definic v záhlaví programu:
|
Doplněk na konec hlavní funkce programu (před funkci int 20h):
|
Doplněk do funkcí programu:
|
Doplněk do dat na konci programu:
|
Výstupem programu je následující text:
SECTION .text
ReelTab: db C,C,C,C,C,A,A,P,P,E,P,A,C,P,A,C,G,E,A,E,G,C,A,G,E,G,A,P,P,B,C,A
db C,C,C,A,C,A,A,P,E,P,A,E,P,A,C,G,E,G,E,P,C,P,A,G,E,G,C,A,E,B,A,C
db C,C,C,G,C,A,A,A,P,C,G,P,E,P,C,E,G,E,C,E,B,G,P,G,E,G,C,E,G,B,P,A
WinVal: dw 10,20,50,100,200,750
WinTab1: dw 0, 6, 1240, 0 ; Profit 0.00%
dw 10, 8, 576, 1 ; 10
dw 20, 9, 256, 1 ; 20
dw 50, 10, 150, 1 ; 50
dw 100, 11, 144, 1 ; 100
dw 200, 12, 112, 1 ; 200
dw 750, 13, 2, 1 ; 750
WinTab2: dw 0, 13, 2396, 0 ; Profit 0.00%
dw 10, 8, 1082, 1 ; 10
dw 20, 9, 482, 1 ; 20
dw 20, 16, 24, 1 ; 10x2
dw 30, 584, 18, 1 ; 10 20
dw 40, 17, 2, 1 ; 20x2
dw 50, 10, 288, 1 ; 50
dw 70, 649, 8, 1 ; 20 50
dw 100, 11, 260, 1 ; 100
dw 150, 714, 4, 1 ; 50 100
dw 200, 12, 196, 1 ; 200
dw 210, 776, 4, 1 ; 10 200
dw 300, 779, 24, 1 ; 100 200
dw 750, 13, 4, 1 ; 750
WinTab3: dw 0, 29, 3505, 0 ; Profit 0.00%
dw 10, 8, 1547, 1 ; 10
dw 20, 9, 695, 1 ; 20
dw 20, 16, 53, 1 ; 10x2
dw 30, 24, 6, 1 ; 10x3
dw 30, 584, 40, 1 ; 10 20
dw 40, 17, 2, 1 ; 20x2
dw 40, 592, 1, 1 ; 10x2 20
dw 50, 10, 413, 1 ; 50
dw 50, 1096, 1, 1 ; 10 20x2
dw 60, 648, 1, 1 ; 10 50
dw 70, 649, 20, 1 ; 20 50
dw 80, 41544, 2, 1 ; 10 20 50
dw 90, 657, 1, 1 ; 20x2 50
dw 100, 11, 370, 1 ; 100
dw 100, 18, 1, 1 ; 50x2
dw 110, 712, 3, 1 ; 10 100
dw 150, 714, 8, 1 ; 50 100
dw 200, 12, 275, 1 ; 200
dw 200, 19, 2, 1 ; 100x2
dw 200, 722, 1, 1 ; 50x2 100
dw 210, 776, 6, 1 ; 10 200
dw 220, 777, 1, 1 ; 20 200
dw 230, 49736, 1, 1 ; 10 20 200
dw 250, 778, 1, 1 ; 50 200
dw 300, 779, 43, 1 ; 100 200
dw 310, 49864, 1, 1 ; 10 100 200
dw 400, 20, 2, 1 ; 200x2
dw 500, 1291, 2, 1 ; 100 200x2
dw 750, 13, 6, 1 ; 750
WinTab4: dw 0, 31, 4548, 0 ; Profit 0.00%
dw 10, 8, 1809, 1 ; 10
dw 20, 9, 906, 1 ; 20
dw 20, 16, 165, 1 ; 10x2
dw 30, 24, 28, 1 ; 10x3
dw 30, 584, 40, 1 ; 10 20
dw 40, 17, 23, 1 ; 20x2
dw 40, 32, 6, 1 ; 10x4
dw 40, 592, 1, 1 ; 10x2 20
dw 50, 10, 563, 1 ; 50
dw 50, 1096, 1, 1 ; 10 20x2
dw 60, 25, 1, 1 ; 20x3
dw 60, 648, 1, 1 ; 10 50
dw 70, 649, 20, 1 ; 20 50
dw 80, 41544, 2, 1 ; 10 20 50
dw 90, 657, 1, 1 ; 20x2 50
dw 100, 11, 514, 1 ; 100
dw 100, 18, 1, 1 ; 50x2
dw 110, 712, 3, 1 ; 10 100
dw 150, 714, 8, 1 ; 50 100
dw 200, 12, 387, 1 ; 200
dw 200, 19, 2, 1 ; 100x2
dw 200, 722, 1, 1 ; 50x2 100
dw 210, 776, 6, 1 ; 10 200
dw 220, 777, 1, 1 ; 20 200
dw 230, 49736, 1, 1 ; 10 20 200
dw 250, 778, 1, 1 ; 50 200
dw 300, 779, 43, 1 ; 100 200
dw 310, 49864, 1, 1 ; 10 100 200
dw 400, 20, 2, 1 ; 200x2
dw 500, 1291, 2, 1 ; 100 200x2
dw 750, 13, 8, 1 ; 750
WinTab5: dw 0, 32, 5546, 0 ; Profit 0.00%
dw 10, 8, 2053, 1 ; 10
dw 20, 9, 1117, 1 ; 20
dw 20, 16, 269, 1 ; 10x2
dw 30, 24, 46, 1 ; 10x3
dw 30, 584, 40, 1 ; 10 20
dw 40, 17, 44, 1 ; 20x2
dw 40, 32, 16, 1 ; 10x4
dw 40, 592, 1, 1 ; 10x2 20
dw 50, 10, 703, 1 ; 50
dw 50, 40, 6, 1 ; 10x5
dw 50, 1096, 1, 1 ; 10 20x2
dw 60, 25, 2, 1 ; 20x3
dw 60, 648, 1, 1 ; 10 50
dw 70, 649, 20, 1 ; 20 50
dw 80, 41544, 2, 1 ; 10 20 50
dw 90, 657, 1, 1 ; 20x2 50
dw 100, 11, 634, 1 ; 100
dw 100, 18, 6, 1 ; 50x2
dw 110, 712, 3, 1 ; 10 100
dw 150, 714, 8, 1 ; 50 100
dw 200, 12, 483, 1 ; 200
dw 200, 19, 14, 1 ; 100x2
dw 200, 722, 1, 1 ; 50x2 100
dw 210, 776, 6, 1 ; 10 200
dw 220, 777, 1, 1 ; 20 200
dw 230, 49736, 1, 1 ; 10 20 200
dw 250, 778, 1, 1 ; 50 200
dw 300, 779, 43, 1 ; 100 200
dw 310, 49864, 1, 1 ; 10 100 200
dw 400, 20, 10, 1 ; 200x2
dw 500, 1291, 2, 1 ; 100 200x2
dw 750, 13, 10, 1 ; 750
WinTabs: dw WinTab1
dw WinTab2
dw WinTab3
dw WinTab4
dw WinTab5
V této chvíli je možné provést doladění rozmístění a počtu symbolů na válcích - aby byla co nejvyšší pestrost typů výher. A také ověřit, zda některá výhra nepřesahuje povolenou hranici výše výhry.
Na začátku programu je uvedena definice struktury jednoho záznamu tabulky výher WinItem. Záznam se skládá ze 4 položek. První položkou je hodnota výhry příslušného výherního typu. Druhou položkou je typ výhry. Obsahuje seznam symbolů na výherních liniích spakovaný do 16-bitové položky. V seznamu je jeden výherní symbol zastoupen 3 bity, další 3 bity vyjadřují počet linií se stejným symbolem. Celkem mohou být v seznamu 3 typy symbolů. Třetí symbol může mít hodnoty pouze 0 nebo 1, protože při 3 různých symbolech se žádný symbol nemůže vyskytovat ve více liniích.
Hlavní funkce prochází všech 5 výherních linií automatu, tj. sázky 1, 2, 3, 4 a 5. Horní hru není třeba počítat, protože se odvozuje od sázky 5 vynásobením výhry 4x (protože skutečná sázka je 20, tj. 5 credit a 15 bank). Pro každou výherní linii je zavolána funkce CalcWinTab. Funkce prochází všechny možné kombinace pozic válců (vyjádřené 15 bitovým číslem, ve kterém je pozice každého válce zastoupena 5 bity), zjišťuje shodné symboly v jednotlivých liniích pomocí funkce TestSymbol, pro zjištěnou kombinaci symbolů vypočte výhru funkcí GetPrize a kombinaci typů symbolů pomocí funkce GetTypes. Prohledá tabulku výherních typů a buď započítá další výskyt daného typu nebo vytvoří nový typ výhry.
Funkce TestSymbol slouží ke zjištění, zda se v některých liniích vyskytují shodné symboly. Test provádí ve všech možných 5 liniích. Funkce prochází jednotlivé výherní linie, na každé linii nejdříve načte symboly na všech 3 válcích a poté porovná, zda se tyto symboly shodují. K adresaci symbolů na válcích využívá tabulku Lines, která obsahuje offsety jednotlivých pozic oproti středové linii. Jsou-li nalezeny shodné symboly na všech 3 pozicích, je nastaven příslušný bit v registru masky výherních linií.
Funkce GetPrize zjišťuje hodnotu výhry pro danou pozici válců. Využívá při tom výsledky funkce TestSymbol. Prochází jednotlivé výherní linie a vyskytuje-li se na linii výhra, započítá hodnotu výhry podle tabulky výherních kombinací.
Funkce GetTypes slouží ke spakování symbolů na výherních pozicích do 16-bitové položky výherního typu. Využívá při tom výsledky funkce TestSymbol. Prochází jednotlivé linie a narazí-li na linii s výhrou, inkrementuje 3-bitové počitadlo výskytu příslušného symbolu v 32-bitovém registru střadače počtů symbolů. Po zjištění symbolů na všech liniích prochází vytvořený seznam počtu symbolů, narazí-li na symbol s nenulovým výskytem, přidá symbol spolu s počtem výskytů do pakovaného střadače typů výher. Je přitom zajištěno, že výhry nižších symbolů se vyskytují na nižších pozicích střadače.
Po sestavení výherní tabulky je tabulka setříděna funkcí SortWinTab. Třídění probíhá poměrně pomalou nenáročnou metodou "bublinovým tříděním", ale v tomto případě není rychlost důležitá. Hlavním třídicím kritériem je hodnota výhry, vedlejším kritériem typ výhry.
Nakonec jsou tabulky výher zobrazeny funkcí PrintWinTab. Funkce prochází jednotlivé záznamy příslušné tabulky sázek. Nejdříve zobrazí první pomyslný záznam, který obsahuje informace: celkový počet záznamů v tabulce, celkový počet výher, celkovou náhodnost výher a v komentáři výhernost tabulky. Dále následují jednotlivé záznamy tabulky obsahující položky: hodnota výhry, typ výhry (jako běžné dekadické číslo), počet výher tohoto typu a náhodnost výhry. V komentáři se zobrazí jednotlivé složky výhry rozloženě (v pořadí od nižších výher, vícenásobné výhry jsou zobrazeny i s jejich násobky).
Přidejte do programu následující funkci a doplňte její volání do hlavní funkce za volání funkce SortWinTab (nebo můžete kód stáhnout jako předvariantu C).
|
Zkrácený výstup programu:
WinTab1: dw 0, 6, 1240, 0 ; Profit 172.97%
WinTab2: dw 0, 13, 2396, 0 ; Profit 172.97%
WinTab3: dw 0, 29, 3505, 0 ; Profit 172.97%
WinTab4: dw 0, 31, 4548, 0 ; Profit 172.97%
WinTab5: dw 0, 32, 5546, 0 ; Profit 172.97%
Funkce počítá výhernost tabulky.
Výhernost je počítána z náhodností jednotlivých typů
výher (tedy počet výher z celkového možného počtu 65536)
vynásobenou hodnotou výhry a vydělenou celkovou hodnotou
sázek pro celkový počet 65536 sázek. Na rozdíl od koncového
tvaru funkce je funkce nyní upravena tak, aby používala
položku počtu výher namísto pravděpodobnosti výhry
(příkazy "shl
ax,1
" a "mul word [bx+win_num]
"), jedná se o poměr celkové sumy výher k
vložené sázce pro 32768 možných kombinací). Tím bude
vypočítána skutečná výhernost automatu, nebude-li použita
výherní tabulka. Vypočtenou výhernost je možné později
ověřit sledováním statistiky úpravou programu automatu tak,
že k vygenerování pozice bude použito náhodné číslo a
budou zapnuty přepínače DEBUG a FAST.
Nyní budou postupně přidány funkce pro výpočet náhodnosti jednotlivých typů výher. Opravte zpět předešlou funkci na výpočet výhernosti (zrušte zmíněné 2 příkazy a odkomentuje příkaz s "win_rand") a doplňte následující funkci, jejíž volání uveďte před voláním funkce CalcWinProf (nebo můžete kód stáhnout jako předvariantu D).
|
Zkrácený výstup programu:
WinTab1: dw 0, 6, 1240, 1799 ; Profit 93.49%
WinTab2: dw 0, 13, 2396, 3184 ; Profit 100.31%
WinTab3: dw 0, 29, 3505, 4794 ; Profit 137.81%
WinTab4: dw 0, 31, 4548, 5388 ; Profit 114.98%
WinTab5: dw 0, 32, 5546, 5797 ; Profit 98.63%
Funkce počítá pravděpodobnosti jednotlivých typů výher v závislosti na proměnné WinTabMul, což je pomocný násobící koeficient. Pravděpodobnost výhry každého typu je přímo úměrná tomuto koeficientu, nepřímo úměrná hodnotě výhry a se sníženou závislostí též úměrná počtu výher. Jak je patrno z výstupu programu, došlo k srovnání pravděpodobností výskytu výherních kombinací oproti zvela náhodnému generování, při kterém by docházelo příliš často k výskytu podobných a tudíž málo zajímavých kombinací symbolů.
Dále bude provedena první korekce
výhernosti. Doplňte do hlavní funkce, za volání funkce CalcWinProf
, následující kód (nebo můžete kód stáhnout jako předvariantu E).
|
Zkrácený výstup programu:
WinTab1: dw 0, 6, 1240, 1805 ; Profit 93.61%
WinTab2: dw 0, 13, 2396, 3028 ; Profit 95.83%
WinTab3: dw 0, 29, 3505, 3518 ; Profit 99.49%
WinTab4: dw 0, 31, 4548, 4334 ; Profit 91.85%
WinTab5: dw 0, 32, 5546, 5307 ; Profit 89.84%
Kód zajistí opravu násobícího koeficientu podle rozdílu požadované výhernosti (konstanta PROFIT) a skutečné výhernosti. Jak je patrné, přesnost výhernosti se již více přiblížila požadované výhernosti.
Pokračujte dále doplněním dalšího kódu (nebo můžete kód stáhnout jako předvariantu F).
|
Zkrácený výstup programu:
WinTab1: dw 0, 6, 1240, 1817 ; Profit 94.10%
WinTab2: dw 0, 13, 2396, 2982 ; Profit 93.86%
WinTab3: dw 0, 29, 3505, 3345 ; Profit 94.24%
WinTab4: dw 0, 31, 4548, 4447 ; Profit 94.00%
WinTab5: dw 0, 32, 5546, 5539 ; Profit 94.03%
Kód pomocí iterace postupně upřesňuje násobící koeficient tak, aby se výhernost co nejvíce přiblížila požadované výhernosti. Je vidět, že chybovost výhernosti činí teď již jen kolem 0.5%. Projevuje se zde nepřesnost vyjádření pravděpodobností pomocí celých čísel, výhernost proto nelze již tímto způsobem více upřesnit.
Poslední úprava spočívá v doplnění následující koncové iterace (nebo můžete kód stáhnout jako koncovou variantu).
|
Koncový výstup programu:
Don't edit this file, it is generated by program.
SECTION .text
; ------------- Symbols on reels
; C=cherry, A=apple, P=plum, E=pear, G=grape, B=bell
ReelTab: db C,C,C,C,C,A,A,P,P,E,P,A,C,P,A,C,G,E,A,E,G,C,A,G,E,G,A,P,P,B,C,A
db C,C,C,A,C,A,A,P,E,P,A,E,P,A,C,G,E,G,E,P,C,P,A,G,E,G,C,A,E,B,A,C
db C,C,C,G,C,A,A,A,P,C,G,P,E,P,C,E,G,E,C,E,B,G,P,G,E,G,C,E,G,B,P,A
; ------------- Winning values (3 equal symbols)
WinVal: dw 10,20,50,100,200,750
; ------------- Winning tables
; Head of one table: zero win, items in table, total wins, total randomness
; One item of table: win value, types, wins, randomness
WinTab1: dw 0, 6, 1240, 1811 ; Profit 94.00%
dw 10, 8, 576, 948 ; 10
dw 20, 9, 256, 469 ; 20
dw 50, 10, 150, 199 ; 50
dw 100, 11, 144, 117 ; 100
dw 200, 12, 112, 68 ; 200
dw 750, 13, 2, 10 ; 750
WinTab2: dw 0, 13, 2396, 3000 ; Profit 94.00%
dw 10, 8, 1082, 1027 ; 10
dw 20, 9, 482, 489 ; 20
dw 20, 16, 24, 375 ; 10x2
dw 30, 584, 18, 250 ; 10 20
dw 40, 17, 2, 184 ; 20x2
dw 50, 10, 288, 219 ; 50
dw 70, 649, 8, 107 ; 20 50
dw 100, 11, 260, 138 ; 100
dw 150, 714, 4, 50 ; 50 100
dw 200, 12, 196, 85 ; 200
dw 210, 776, 4, 36 ; 10 200
dw 300, 779, 24, 30 ; 100 200
dw 750, 13, 4, 10 ; 750
WinTab3: dw 0, 29, 3505, 3298 ; Profit 94.00%
dw 10, 8, 1547, 845 ; 10
dw 20, 9, 695, 426 ; 20
dw 20, 16, 53, 266 ; 10x2
dw 30, 24, 6, 169 ; 10x3
dw 30, 584, 40, 178 ; 10 20
dw 40, 17, 2, 126 ; 20x2
dw 40, 592, 1, 126 ; 10x2 20
dw 50, 10, 413, 204 ; 50
dw 50, 1096, 1, 101 ; 10 20x2
dw 60, 648, 1, 84 ; 10 50
dw 70, 649, 20, 77 ; 20 50
dw 80, 41544, 2, 63 ; 10 20 50
dw 90, 657, 1, 56 ; 20x2 50
dw 100, 11, 370, 142 ; 100
dw 100, 18, 1, 50 ; 50x2
dw 110, 712, 3, 46 ; 10 100
dw 150, 714, 8, 35 ; 50 100
dw 200, 12, 275, 93 ; 200
dw 200, 19, 2, 25 ; 100x2
dw 200, 722, 1, 25 ; 50x2 100
dw 210, 776, 6, 25 ; 10 200
dw 220, 777, 1, 23 ; 20 200
dw 230, 49736, 1, 22 ; 10 20 200
dw 250, 778, 1, 20 ; 50 200
dw 300, 779, 43, 26 ; 100 200
dw 310, 49864, 1, 16 ; 10 100 200
dw 400, 20, 2, 12 ; 200x2
dw 500, 1291, 2, 10 ; 100 200x2
dw 750, 13, 6, 7 ; 750
WinTab4: dw 0, 31, 4548, 4447 ; Profit 94.00%
dw 10, 8, 1809, 1076 ; 10
dw 20, 9, 906, 538 ; 20
dw 20, 16, 165, 353 ; 10x2
dw 30, 24, 28, 215 ; 10x3
dw 30, 584, 40, 218 ; 10 20
dw 40, 17, 23, 161 ; 20x2
dw 40, 32, 6, 157 ; 10x4
dw 40, 592, 1, 156 ; 10x2 20
dw 50, 10, 563, 264 ; 50
dw 50, 1096, 1, 124 ; 10 20x2
dw 60, 25, 1, 104 ; 20x3
dw 60, 648, 1, 104 ; 10 50
dw 70, 649, 20, 94 ; 20 50
dw 80, 41544, 2, 78 ; 10 20 50
dw 90, 657, 1, 69 ; 20x2 50
dw 100, 11, 514, 190 ; 100
dw 100, 18, 1, 62 ; 50x2
dw 110, 712, 3, 56 ; 10 100
dw 150, 714, 8, 43 ; 50 100
dw 200, 12, 387, 127 ; 200
dw 200, 19, 2, 31 ; 100x2
dw 200, 722, 1, 31 ; 50x2 100
dw 210, 776, 6, 30 ; 10 200
dw 220, 777, 1, 28 ; 20 200
dw 230, 49736, 1, 27 ; 10 20 200
dw 250, 778, 1, 24 ; 50 200
dw 300, 779, 43, 30 ; 100 200
dw 310, 49864, 1, 20 ; 10 100 200
dw 400, 20, 2, 15 ; 200x2
dw 500, 1291, 2, 12 ; 100 200x2
dw 750, 13, 8, 10 ; 750
WinTab5: dw 0, 32, 5546, 5531 ; Profit 94.00%
dw 10, 8, 2053, 1260 ; 10
dw 20, 9, 1117, 656 ; 20
dw 20, 16, 269, 444 ; 10x2
dw 30, 24, 46, 262 ; 10x3
dw 30, 584, 40, 261 ; 10 20
dw 40, 17, 44, 199 ; 20x2
dw 40, 32, 16, 192 ; 10x4
dw 40, 592, 1, 188 ; 10x2 20
dw 50, 10, 703, 326 ; 50
dw 50, 40, 6, 152 ; 10x5
dw 50, 1096, 1, 151 ; 10 20x2
dw 60, 25, 2, 125 ; 20x3
dw 60, 648, 1, 125 ; 10 50
dw 70, 649, 20, 112 ; 20 50
dw 80, 41544, 2, 94 ; 10 20 50
dw 90, 657, 1, 83 ; 20x2 50
dw 100, 11, 634, 233 ; 100
dw 100, 18, 6, 76 ; 50x2
dw 110, 712, 3, 68 ; 10 100
dw 150, 714, 8, 52 ; 50 100
dw 200, 12, 483, 157 ; 200
dw 200, 19, 14, 40 ; 100x2
dw 200, 722, 1, 37 ; 50x2 100
dw 210, 776, 6, 36 ; 10 200
dw 220, 777, 1, 34 ; 20 200
dw 230, 49736, 1, 32 ; 10 20 200
dw 250, 778, 1, 30 ; 50 200
dw 300, 779, 43, 35 ; 100 200
dw 310, 49864, 1, 24 ; 10 100 200
dw 400, 20, 10, 20 ; 200x2
dw 500, 1291, 2, 15 ; 100 200x2
dw 750, 13, 10, 12 ; 750
; ------------- List of winning tables
WinTabs: dw WinTab1
dw WinTab2
dw WinTab3
dw WinTab4
dw WinTab5
Tato poslední upřesňující iterace provádí jemné dokorigování výhernosti modifikací výhernosti prvního (nejpočetnějšího) výherního typu. Dosažená přesnost je 0.02%.
Download zdrojových textů výpočtu tabulky výher.