Výherní automat DAYTONA GAMBLER pro dosbox který stáhnete z domovské stránky dosboxu
Delphi & Pascal (česká wiki)
Kategórie: KMP (Programy mladých programátorů)
Autor: Martin Koleček
Program: Daytona.pas, Default.pas, Histher.pas, Jackpot.pas, Loading.pas, Main.pas, Maingame.pas, Misc.pas, Mys.pas, Ovladani.pas
Soubor exe: Gambler.zip
Potřebné: Plus1000.pas, Plus500.pas, Prodat.pas, Riskscr.pas, Roll.pas, Rollpre.pas, Rollproc.pas, Rolsetup.pas, Rskdolni.pas, Rskhorni.pas
Příklady: Saveload.pas, Score.pas, Screen.pas, Servis.pas, Setbet.pas, Testwin.pas, Update5.pas, Waitbtn.pas, Winblink.pas, Wrivalce.pas, Zisky.pas
Autor: Martin Koleček
Program: Daytona.pas, Default.pas, Histher.pas, Jackpot.pas, Loading.pas, Main.pas, Maingame.pas, Misc.pas, Mys.pas, Ovladani.pas
Soubor exe: Gambler.zip
Potřebné: Plus1000.pas, Plus500.pas, Prodat.pas, Riskscr.pas, Roll.pas, Rollpre.pas, Rollproc.pas, Rolsetup.pas, Rskdolni.pas, Rskhorni.pas
Příklady: Saveload.pas, Score.pas, Screen.pas, Servis.pas, Setbet.pas, Testwin.pas, Update5.pas, Waitbtn.pas, Winblink.pas, Wrivalce.pas, Zisky.pas
Výherní automat podle skutečného stroje Daytona 750. Podporuje Sound Blaster.
Rychlost hry je konfigurovatelná. Experimentálně podporuje ovládání dotykovým displayem pro Androidy.
POZOR:
O dosboxu:
Nastavení výhernosti:
V servisní obrazovce klávesou TAB měníte switch a nahoru dolů manipupuje s výherností rozsahy jsou 0 až 65000 vechny switche a číslo na něm vyrábí poměr mezi dvěma stavy, obvykle to bývá jestli je výhra nebo není výhra a číslo teda dělí na poměr mezi těmito stavy, vždy "0 až číslo" je jedna část, třeba jestli se riskovani povede nebo nepovede a "číslo a 65000" je druhá část moného výsledku. Nakonec rozhodne náhodné číslo z rozsahu "0 a 65535" , ale záleí na poměru na switchi co je pravděpodobnějí interval.
SWITCHE:
Rychlost hry je konfigurovatelná. Experimentálně podporuje ovládání dotykovým displayem pro Androidy.
POZOR:
- než se objeví hra tak se to načítá poměrně velmi velmi dlouho takže buďte trpěliví
- pokud nevíte co přesně děláte tak servisní nastavení raději nechte bez povšimnutí
- reset v servisním nastavení resetuje pouze počítadlo výher a vkladů, ne nastavení hry
- pokud už jste stačili popřehazovat servisní nastavení a hra je špatně hratelná, tak vymažte soubor GAMBLER.DAT, hra se uvede do "továrního nastavení"
O dosboxu:
- pokud nevíte a neumíte tak se zeptejte někoho kdo ví a umí nebo si najděte informace o dosboxu na internetu
- hodnota cycles pro GAMBLERA na PC je tak 10000 až 20000
- hodnota cycles na mobilních zařízeních (tam pouívejte legální dosbox turbo) je tak 7000
- nedávejte cycles max nebo cycles auto, párkrát to zkuste a najděte si správnou přesnou hodnotu
- hra by neměla kazit zvuk nebo cukat obraz, pokud je cycles nastaveno optimálně ve jede hladce
- DAYTONA GAMBLER je podomácku vyrobený freeware takže ho bezestrachu iřte a ukazujte druhým jak se to hraje
- totéž dosbox pro PC je freeware, dosbox turbo je komerční ale stojí jen 60 korun tak nebuďte piráti
Nastavení výhernosti:
V servisní obrazovce klávesou TAB měníte switch a nahoru dolů manipupuje s výherností rozsahy jsou 0 až 65000 vechny switche a číslo na něm vyrábí poměr mezi dvěma stavy, obvykle to bývá jestli je výhra nebo není výhra a číslo teda dělí na poměr mezi těmito stavy, vždy "0 až číslo" je jedna část, třeba jestli se riskovani povede nebo nepovede a "číslo a 65000" je druhá část moného výsledku. Nakonec rozhodne náhodné číslo z rozsahu "0 a 65535" , ale záleí na poměru na switchi co je pravděpodobnějí interval.
SWITCHE:
- 2kč výhry = šance na výhru ve dvoukorunové hře {RollSetup bet 2, čím menší tím míň výher}
- 4kč výhry = šance na výhru ve čtyřkorunové hře {RollSetup bet 4, čím menší tím míň výher}
- 5kč výhry = šance na výhru v pětikorunové hře {RollSetup bet 5, čím menší tím míň výher}
- 2kč Joker A = pravděpodobnost výsměchu Jokera na dvoukorunové hře {TestWin bet 2J, čím menší tím víc výher}
- 2kč Joker B = pravděpodobnost zdvojnásobení Jokerem na dvoukorunové hře {TestWin bet 2J, čím menší tím míň výher}
- 4kč Joker A = pravděpodobnost výsměchu Jokera na čtyřkorunové hře {TestWin bet 4J, čím menší tím víc výher}
- 4kč Joker B = pravděpodobnost zdvojnásobení Jokerem na čtyřkorunové hře {TestWin bet 4J, čím menší tím míň výher}
- 5kč Joker = pravděpodobnost zdvojnásobení Jokerem na pětikorunové hře {TestWin bet 5J, čím menší tím míň výher} (na 5kč hře se joker neposmívá)
- riskovani = šance na zdvojnásobení riskem strany mince při náhodném risku {Risking vyhernost čím menší tím míň výher} (neplatí při risku postřehem; nebo při risku autostartem tam je poměr 1:1)
Procedure SetupSymboly(I: Byte); Begin If I=0 then Begin If Valec[I].SymbolCounter<=MaxSymbolu-4 then Begin Valec[I].Symbol[0]:=SymbolyA[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyA[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyA[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyA[Valec[I].SymbolCounter+3]; Valec[I].Symbol[4]:=SymbolyA[Valec[I].SymbolCounter+4]; End; If Valec[I].SymbolCounter=MaxSymbolu-3 then Begin Valec[I].Symbol[0]:=SymbolyA[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyA[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyA[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyA[Valec[I].SymbolCounter+3]; Valec[I].Symbol[4]:=SymbolyA[0]; End; If Valec[I].SymbolCounter=MaxSymbolu-2 then Begin Valec[I].Symbol[0]:=SymbolyA[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyA[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyA[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyA[0]; Valec[I].Symbol[4]:=SymbolyA[1]; End; If Valec[I].SymbolCounter=MaxSymbolu-1 then Begin Valec[I].Symbol[0]:=SymbolyA[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyA[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyA[0]; Valec[I].Symbol[3]:=SymbolyA[1]; Valec[I].Symbol[4]:=SymbolyA[2]; End; If Valec[I].SymbolCounter=MaxSymbolu then Begin Valec[I].Symbol[0]:=SymbolyA[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyA[0]; Valec[I].Symbol[2]:=SymbolyA[1]; Valec[I].Symbol[3]:=SymbolyA[2]; Valec[I].Symbol[4]:=SymbolyA[3]; End; End; If I=1 then Begin If Valec[I].SymbolCounter<=MaxSymbolu-4 then Begin Valec[I].Symbol[0]:=SymbolyB[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyB[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyB[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyB[Valec[I].SymbolCounter+3]; Valec[I].Symbol[4]:=SymbolyB[Valec[I].SymbolCounter+4]; End; If Valec[I].SymbolCounter=MaxSymbolu-3 then Begin Valec[I].Symbol[0]:=SymbolyB[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyB[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyB[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyB[Valec[I].SymbolCounter+3]; Valec[I].Symbol[4]:=SymbolyB[0]; End; If Valec[I].SymbolCounter=MaxSymbolu-2 then Begin Valec[I].Symbol[0]:=SymbolyB[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyB[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyB[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyB[0]; Valec[I].Symbol[4]:=SymbolyB[1]; End; If Valec[I].SymbolCounter=MaxSymbolu-1 then Begin Valec[I].Symbol[0]:=SymbolyB[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyB[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyB[0]; Valec[I].Symbol[3]:=SymbolyB[1]; Valec[I].Symbol[4]:=SymbolyB[2]; End; If Valec[I].SymbolCounter=MaxSymbolu then Begin Valec[I].Symbol[0]:=SymbolyB[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyB[0]; Valec[I].Symbol[2]:=SymbolyB[1]; Valec[I].Symbol[3]:=SymbolyB[2]; Valec[I].Symbol[4]:=SymbolyB[3]; End; End; If I=2 then Begin If Valec[I].SymbolCounter<=MaxSymbolu-4 then Begin Valec[I].Symbol[0]:=SymbolyC[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyC[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyC[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyC[Valec[I].SymbolCounter+3]; Valec[I].Symbol[4]:=SymbolyC[Valec[I].SymbolCounter+4]; End; If Valec[I].SymbolCounter=MaxSymbolu-3 then Begin Valec[I].Symbol[0]:=SymbolyC[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyC[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyC[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyC[Valec[I].SymbolCounter+3]; Valec[I].Symbol[4]:=SymbolyC[0]; End; If Valec[I].SymbolCounter=MaxSymbolu-2 then Begin Valec[I].Symbol[0]:=SymbolyC[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyC[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyC[Valec[I].SymbolCounter+2]; Valec[I].Symbol[3]:=SymbolyC[0]; Valec[I].Symbol[4]:=SymbolyC[1]; End; If Valec[I].SymbolCounter=MaxSymbolu-1 then Begin Valec[I].Symbol[0]:=SymbolyC[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyC[Valec[I].SymbolCounter+1]; Valec[I].Symbol[2]:=SymbolyC[0]; Valec[I].Symbol[3]:=SymbolyC[1]; Valec[I].Symbol[4]:=SymbolyC[2]; End; If Valec[I].SymbolCounter=MaxSymbolu then Begin Valec[I].Symbol[0]:=SymbolyC[Valec[I].SymbolCounter+0]; Valec[I].Symbol[1]:=SymbolyC[0]; Valec[I].Symbol[2]:=SymbolyC[1]; Valec[I].Symbol[3]:=SymbolyC[2]; Valec[I].Symbol[4]:=Symbolyc[3]; End; End; End; Procedure RollProc; Var I: Byte; Begin For I:=0 to 2 do Begin If Valec[I].Rotate=True then Begin If Valec[I].Counter>0 then Dec(Valec[I].Counter) else Begin Valec[I].Rotate:=False; If DatRec.SBEnable=True then SBPlayRaw(21+SoundValce) else PlaySound(11+SoundValce); Inc(SoundValce); End; If Valec[I].Scroll<23 then Inc(Valec[I].Scroll) else Valec[I].Scroll:=0; If Valec[I].Scroll=0 then Begin If Valec[I].SymbolCounter>0 then Dec(Valec[I].SymbolCounter) else Valec[I].SymbolCounter:=MaxSymbolu; SetupSymboly(I); End; End; If ((Valec[0].Rotate=False) and (Valec[1].Rotate=False) and (Valec[2].Rotate=False)) then AllStoped:=True; End; End;