The one-armed bandit (fruit machine)
Posted: Sun Aug 04, 2024 1:58 pm
This fruitmachine is programmed entirely as a function. It may be simply called from a host app, and removed by touching the “Boss!” Button. It leaves the background of the host app unchanged.
It requires the graphics mode, and will use the current “draw color” in the host app.
It fits on the iPad and on the iPhone.
It requires the graphics mode, and will use the current “draw color” in the host app.
It fits on the iPad and on the iPhone.
Code: Select all
graphics ! draw color 0,0,0
bandit()
end
def bandit()
ob=option_base() ! option base 0
dim tok(7),rol(13),r_s(3),r_n(3),end(3),win(5),pay(5)
for i=0 to 6 ! read tok(i) ! next i
data 9884,58181,58182,58183,58184,58185,58186
for i=0 to 12 ! read rol(i) ! next i
data 2,5,4,6,1,3,0,3,6,5,1,2,4
for i=0 to 4 ! read pay(i) ! next i
data 1,3,2,5,10
xp=100 ! yp=100
if device_type$()="iPhone" then
get orientation orient
set orientation landscape
xp=10 ! yp=10
end if
page "band" set
page "band" frame xp,yp,560,325
page "band" color .5,.7,.7,1
set buttons custom
set buttons font size 100
button "w0" text chr$(tok(2)) at 20,20 size 160,120
button "w1" text chr$(tok(3)) at 200,20 size 160,120
button "w2" text chr$(tok(4)) at 380,20 size 160,120
set buttons font size 30
t$="Bet (€ 1) "&chr$(10137)
button "pay" text t$ at 60,155 size 200,40
button "h0" text "€ 1" at 300,155 size 60,40
button "h1" text "€ 5" at 390,155 size 60,40
button "h2" text "€ 20" at 480,155 size 60,40
button "win" text "" at 20,210 size 240,40
button "pot" text "Pot: € 100" at 20,270 size 240,40
set buttons font size 40
button "rol" text "start" at 300,210 size 100,100
button "bos" text "Boss!" at 420,210 size 120,100
init=1 ! running=0 ! inzet=1 ! winst=100
for i=0 to 4 ! win(i)=int(inzet*pay(i)) ! next i
randomize()
page "band" show
do slowdown
if bp("bos") then
page "band" hide
if orient>0 then set orientation orient
option base ob
return
end if
for i=0 to 2
if bp("h"&i) then
if i=0 then inzet=1
if i=1 then inzet=5
if i=2 then inzet=20
t$="Inzet (€ "&inzet&") "&chr$(10137)
button "pay" text t$
for j=0 to 4 ! win(j)=int(inzet*pay(j)) ! next j
end if
next i
if not running and bp("rol")=1 then
running=1 ! tour=1 ! button "win" text ""
winst-=inzet ! button "pot" text "Pot: € "&winst
for i=0 to 2 ! r_s(i)=rnd(13) ! r_n(i)=3+rnd(4) ! next i
while running
for i=0 to 2
if r_n(i)=0 then continue
k=r_s(i)%13 ! r_s(i)+=1
end(i)=rol(k)
button "w"&i text chr$(tok(end(i)))
next i
pause .3
running=0
for i=0 to 2
if r_n(i)>0 then
running=1 ! r_n(i)-=1 ! break
end if
next i
end while
bwin=0
if end(0)=end(1) then ' check winnende combi
if end(2)=end(1) then trip(end(1)) else dub(end(1))
else ! if end(1)=end(2) then dub(end(1))
end if
skull=0
for i=0 to 2 ! if end(i)=0 then skull+=1 ! next i
bwin+=skull*win(1) ! winst+=bwin
button "pot" text "Pot: € "&winst
if bwin>0 then
button "win" text "Win: € "&bwin
beep
end if
end if
until forever
end def
def dub(k)
if k=0 then res=bandit.win(2)
if k=1 then res=bandit.win(1)
if k>1 then res=bandit.win(0)
bandit.bwin=res ! bandit.winst+=res
button "pot" text "Pot: € "&bandit.winst
button "win" text "Win: € "&res
end def
def trip(k)
if k=0 then res=bandit.win(4)
if k=1 then res=bandit.win(3)
if k>1 then res=bandit.win(1)
bandit.bwin=res ! bandit.winst+=res
button "pot" text "Pot: € "&bandit.winst
button "win" text "Win: € "&res
end def
def db ! debug pause ! end def
def bp(a$) = button_pressed(a$)