# variables for state var state[4] = [0,0,0,0] var new_state[4] = [0,0,0,0] # reset outputs call sound.system(-1) call leds.top(0,0,0) call leds.bottom.left(0,0,0) call leds.bottom.right(0,0,0) call leds.circle(0,0,0,0,0,0,0,0) # subroutine to display the current state sub display_state call leds.circle(0,state[1]*32,0,state[3]*32,0,state[2]*32,0,state[0]*32) onevent buttons when button.center == 1 do new_state[0] = 0 new_state[1] = 1 new_state[2] = 0 new_state[3] = 0 call leds.top(0,0,0) emit pair_run 0 end when button.forward == 1 do if state[1] == 1 then new_state[1] = 0 new_state[3] = 1 call leds.top(32,0,0) emit pair_run 1 end end when button.forward == 1 do if state[3] == 1 then new_state[2] = 1 new_state[3] = 0 call leds.top(0,0,0) emit pair_run 2 end end when button.forward == 1 do if state[2] == 1 then new_state[0] = 1 new_state[2] = 0 call leds.top(10,0,0) emit pair_run 3 end end when button.forward == 1 do if state[0] == 1 then new_state[0] = 0 new_state[1] = 1 call leds.top(0,0,0) emit pair_run 4 end end call math.copy(state, new_state) callsub display_state