'Symbols/Aliases
'Pins
symbol plus_1run = pinb.1
symbol plus_4runs = pinb.4
symbol plus_6runs = pinb.6
symbol minus_1run = pinb.7
symbol plus_1wicket = pinb.0
symbol plus_1ball = pinb.2
symbol minus_1ball = pinb.5
'vars
symbol score = w0
symbol balls = b2
symbol wickets = b3
symbol overs = b4
symbol centuries = b5
dirsB = 0
'Init variables
score = 0
balls = 0
wickets = 0
overs = 0
centuries = 0
do 'Main loop
if plus_1run = 1 then
inc score
gosub debounce
elseif plus_4runs = 1 then
score = score + 4
gosub debounce
elseif plus_6runs = 1 then
score = score + 6
gosub debounce
elseif plus_1wicket = 1 then
inc wickets
gosub debounce
elseif plus_1ball = 1 then
inc balls
gosub debounce
elseif minus_1ball = 1 then
dec balls
gosub debounce
elseif minus_1run = 1 then
dec score
gosub debounce
endif
overs = balls / 6 'Calculate number of Overs
if wickets = 10 then
gosub last_innings
endif
'Check for new centuries scored up to 5 - Only execute each once
If score >= 100 and centuries = 0 then
inc centuries
gosub flash
elseif score >= 200 and centuries = 1 then
inc centuries
gosub flash
elseif score >= 300 and centuries = 2 then
inc centuries
gosub flash
elseif score >= 400 and centuries = 3 then
inc centuries
gosub flash
elseif score >= 500 and centuries = 4 then
inc centuries
gosub flash
endif
loop 'Repeat Main Loop
last_innings:
' do something here!
return
debounce: 'Try to ensure only one button press registered
gosub log_updates
pause 30 'Debounce (value may need tweaking)
return
flash:
gosub log_updates
high C.6,C.7
pause 500
low C.6,C.7
high C.6,C.7
pause 500
low C.6,C.7
high C.6,C.7
pause 500
low C.6,C.7
high C.6,C.7
pause 500
low C.6,C.7
return
log_updates:
sertxd ("Balls: ",#balls," Overs: ",#overs," Wickets: ",#wickets,cr,lf)
sertxd ("Score: ",#score," Centuries: ",#centuries,cr,lf)
return