Nápisy v Pythonu

Skládání nápisů z písmen a posílání zpráv na druhý microbit.

Na začátku stačí pouze zopakovat práci s řetězcem a zbytek už nechat jako projekt. Zadání i řešení vymyslí žáci sami a může tedy vypadat zcela jinak. 
abeceda = "ACBDEFGHIJKLMNOPQRSTUVWXYZ .,!?"
display.show(abeceda[0])

1. Písmena 

Při stisku tlačítek cyklicky měň zobrazené písmeno abecedy.
from microbit import *

abeceda = "ACBDEFGHIJKLMNOPQRSTUVWXYZ .,!?"
poradi = 0
display.show(abeceda[poradi])

while True:
    sleep(50)
    a = button_a.was_pressed()
    b = button_b.was_pressed()
    if a:
        poradi-=1
        display.show(abeceda[poradi])   
    elif b:
        poradi+=1
        display.show(abeceda[poradi])

Vylepšete tak, aby se po posledním znaku opět zobrazilo A a naopak. Např.:
    if a:
        if poradi==0:
            poradi=len(abeceda)
        poradi-=1
        display.show(abeceda[poradi])  
    elif b:
        poradi+=1
        if poradi==len(abeceda):
            poradi=0
        display.show(abeceda[poradi])

2. Nápisy

Při stisku A+B přidej písmeno k nápisu. Při zatřesení nápis zobraz.

...
napis = ""

while True:
    sleep(50)
    a = button_a.was_pressed()
    b = button_b.was_pressed()
 
    if a and b:
        napis+=abeceda[poradi]
    elif a:
        ...
    elif b:
        ...
    if accelerometer.was_gesture("shake"):
        display.scroll(napis)

3. Posílání zpráv

Při zatřesení odešli zprávu. Při přijetí zprávy ji zobraz.

...
    if accelerometer.was_gesture("shake"):
        display.scroll(napis)
        radio.send(napis)
     
    zprava = radio.receive()
    if zprava:
        display.scroll(zprava)

Doplnit nastavení kanálu.
Možno přidat např. obrázek obálky před přijatou zprávou. 

4. Posílání pokynů

Při přijetí některých zpráv udělej akci (např. zobraz obrázek, animaci, blikej apod.)
Např.:
    if zprava:
        if zprava=="HEART":
            for i in range(3):
                display.show(Image.HEART)
                sleep(200)
                display.clear()
                sleep(200)
        if zprava=="SQUARE":
            for x in range(5):
                for y in range(5):
                    display.set_display(x,y,9)
                    sleep(100)
        else:
            display.scroll(zprava)

Při testování zjistíme, že kratší kódy jsou praktičtější a také že je dobré přidat číslice.



>>> Začínáme s Pythonem
>>> Kreslení s Pythonem
>>> Tlačítka s Pythonem

Komentáře

Populární příspěvky z tohoto blogu

V čem programovat micro:bit?

Úvod ve škole i v kroužku

Začínáme v MakeCode

Obrázky

Začínáme s Pythonem