import time
from machine import Pin

P0=26
P1=27
P2=28
P3=29

A=[P1, P0]
B=[P0, P1]
C=[P3, P2]
D=[P2, P0]
E=[P2, P3]
F=[P2, P1]
G=[P1, P2]

D0=[A, B, C, D, E, F]
D1=[B, C]
D2=[A, B, G, E, D]
D3=[A, B, G, C, D]
D4=[F, B, G, C]
D5=[A, F, G, C, D]
D6=[A, F, G, E, C, D]
D7=[A, B, C]
D8=[A, B, C, D, E, F, G]
D9=[A, F, B, G, C, D]

def show(segs):
    start_time = time.time()
    while time.time() == start_time:
        for seg in segs:
            i = seg[0]
            j = seg[1]
            Pin(i, Pin.OUT).value(0)
            Pin(j, Pin.OUT).value(1)
            Pin(i, Pin.IN)
            Pin(j, Pin.IN)

B0=Pin(3, Pin.IN, Pin.PULL_UP)
B1=Pin(4, Pin.IN, Pin.PULL_UP) # 3 and 4 are swapped on XIAO
B2=Pin(2, Pin.IN, Pin.PULL_UP)
B3=Pin(1, Pin.IN, Pin.PULL_UP)

SEGS=[D0, D1, D2, D3, D4, D5, D6, D7, D8, D9]
d = 1
i = 0
while True:
    # second button makes it go backward
    if B1.value() == 0:
        d = -1
    else:
        d = 1

    # third buttons pauses
    if B2.value() == 1:
        i = (i + d) % len(SEGS)

    # first button resets to 0
    if B0.value() == 0:
        i = 0

    # bottom button hides digit
    if B3.value() == 1:
        show(SEGS[i])
    else:
        time.sleep(1)
