Morseova abeceda
Zadání
Vytvořte program pro DT-Box, který zadaný řetězec převede do morseovy abecedy a následně přečte pomocí pípání. Mezi jednotlivými písmeny by měla být krátká pauza a mezi slovy o něco delší pauza.
Rozšíření
- Oproti jednoduššímu způsobu, kdy slovník obsahuje i číslice, číslice ze slovníku vyřaďte a místo toho vytvořte algoritmus, který převede číslici podle její hodnoty.
Evokace
Morseova abeceda se využívala hlavně v armádě.
- Proč se využívala zrovna morseova abeceda? (snadný převod do binární soustavy (.-) → (01))
- Jak vypadá ovládání takového zařízení? (jedno tlačítko, které rozpozná krátký a dlouhý stisk)
Uvědomění
- Jaké periferie knihovny dtbox budeme potřebovat?
- Buzzer
Jak převést řetězec na velká písmena?
string.upper()
- Jaké datové reprezentace budeme potřebovat?
- slovník morseovy abecedy:
Jak získám prvek ze slovníku?
MORSE_DICT[‘A’]
>>> ‘.-’
Jak zjistím, zda je znak písmeno?
character.isalpha()
Jak zjistím, zda je znak číslice?
character.isdigit()
Jaká bude hlavní struktura kódu?
- Konstanta pro reprezentaci slovníku morseovy abecedy
- Funkce
char_to_morse()
, která každý znak převede do morseovy abecedy - Funkce
get_morse(phrase)
, která pomocí předchozí metody vytvoří řetězec s celou frází převedenou do morseovy abecedy - Funkce
play_morse(code)
, která vypípá danou větu
Jaké jsou rizikové stavy?
- Neznámý znak (např. ‘á, @, atd…’). Je potřeba takové znaky zcela vypustit.
Reflexe
Co se vám na řešení líbí/nelíbí?
Kde si dokážete představit použití vašeho řešení? (kontrola s odpověďmi u evokace)
Jak byste pozměnili projekt, aby byl lépe použitelný v praxi?
Které části implementace byly nejnáročnější?
Co byste poradili někomu, kdo se chystá vytvořit podobný projekt?