7. Reflexes

Press A when the screen is about to be filled.
from microbit import *

score = 0
start = 100
sleep_delay = start
while True:
    x = 0
    y = 0
    while y < 5:
        display.set_pixel(x, y, 5)
        if button_a.was_pressed():
            sleep(1000)
            break
        x = x + 1
        if x == 5:
            x = 0
            y = y + 1
        # a little bit of help
        if y == 0:
            sleep(sleep_delay // 4)
        elif y == 1:
            sleep(sleep_delay // 3)
        elif y == 2:
            sleep(sleep_delay // 2)
        elif y == 3:
            sleep(sleep_delay)
        else:
            if x < 3:
                sleep(sleep_delay * 2)
            else:
                sleep(sleep_delay * 3)
    if x == 4 and y == 4:
        # hit; speed it up
        sleep_delay = sleep_delay - 4
        display.show(Image.YES)
        score = score + 1
        sleep(1000)
    else:
        # miss
        display.show(Image.NO)
        sleep(1000)
        display.show(str(score))
        sleep_delay = start
        score = 0
        sleep(1000)
        a = button_a.was_pressed()  # clears was pressed
    display.clear()
    sleep(500)

Tasks

  1. Adjust the code to use a list with sleep times for each row.

  2. Adjust the code to use levels with sleep times stored in a list for each level.