alenka_v_říši_divů píše:... k čemu ti ten "Karlo kurz" je?
Karel rozvine tvoje logické myšlení směrem k počítačovému, a naučí tě základy strukturovaného programování, dělení programů do bloků a správné použití rekurze. Přitom se nemusíš zabývat nějakými typy proměnných, syntaktickými obezličkami (stačí mu jen KONEC) ani záhadnými slovy v cizím jazyce... A k tomu přidej pár dalších věcí, například je to docela zábavná hra

Hodně zajímavé je porovnávat svoje řešení a postupy s jinými programátory, protože "je víc způsobů jak stáhnout kočku z kůže", neboli "tisíc programátorů napíše stejný program tisíci různými způsoby".
Příklad - Karel dojde ke zdi, klasicky iterací:
Kód: Vybrat vše
KE-ZDI-I
DOKUD NENÍ ZEĎ
KROK
KONEC
KONEC
a stejná činnost rekurzivně:
Kód: Vybrat vše
KE-ZDI-R
KDYŽ NENÍ ZEĎ
KROK
KE-ZDI-R
KONEC
KONEC
Jak bys naučil Karla namalovat přesně takovýhle domeček, a pak přidáním jednoho nového příkazu program změnil na ten panelák vedle něj? V ideálním případě využij toho že se oba domy skládají z pater a na každém patře jsou dva pokoje
Kód: Vybrat vše
╔══════════╗ ╔══════════╗
║ ║ ║ ║
║ ║ ║ ███████ ║
║ █ ║ ║ █ █ █ █ ║
║ █ █ ║ ║ ███████ ║
║ █ █ ║ ║ █ █ █ █ ║
║ ███████ ║ ║ ███████ ║
║ █ █ █ █ ║ ║ █ █ █ █ ║
║ ███████ ║ ║ ███████ ║
║ █ █ █ █ ║ ║ █ █ █ █ ║
║ ███_███ ║ ║ ███_███ ║
╚══════════╝ ╚══════════╝
Jako perličku můžeš po skončení práce Karla nechat dojít do dveří (počítej s tím že u každého domu skončí někde jinde a jinak postavený ale proveď to stejným příkazem) a otočit se směrem k člověku, podívat se ti do očí.
Tohle je zrovna můj oblíbený úkol, používám ho když někomu Karla (aneb jak se vlastně ty počítače programují) předvádím. A abych pravdu řekl, pokaždé jsem to naprogramoval trochu jinak

memphisto píše:[OT]To víš, chlap má jenom 4,5 litru krve a hold to je málo na prokrvení obou orgánů[/OT]
A proto programátor musí používání obou velmi důkladně oddělit, nejlépe když si napíše program co mu bude hlídat časový rozvrh

Jako je to v tom starém vtipu:
Proč má programátor vedle manželky ještě milenku?
Manželka si myslí, že je u milenky a milenka si myslí, že je u manželky... a on si zatím může v klidu programovat.
jirislav: Musíš otestovat DOMOV nejen na začátku, ale pokaždé než se Karel z daného pole někam pohne. Pěkně sis usnadnil práci příkazy P a L, ale zase si jí třeba komplikuješ zbytečnostmi, jako je RYCHLE, na to se klidně vykašli (navíc čím méně řádků, tím je program přehlednější a pochopitelnější), nastav si posuvníkem vpravo dole rychlost kterou stihneš sledovat a pozoruj jak Karel tančí. Přitom se snaž odhadnout ve které části programu se zrovna nachází.
Pro srovnání ta moje verze se značkami:
Kód: Vybrat vše
NAJDI-DOMOV
KDYŽ NENÍ DOMOV
POLOŽ
OPAKUJ 4-KRÁT
KDYŽ NENÍ DOMOV
KDYŽ NENÍ ZEĎ
KROK
KDYŽ NENÍ ZNAČKA
NAJDI-DOMOV
KONEC
KDYŽ NENÍ DOMOV
COUVNI
KONEC
KONEC
VLEVO-VBOK
KONEC
KONEC
KONEC
KONEC
Kód: Vybrat vše
COUVNI
ČELEM-VZAD
KROK
ČELEM-VZAD
KONEC
Kód: Vybrat vše
ČELEM-VZAD
VLEVO-VBOK
VLEVO-VBOK
KONEC
Podívej se kde všude testuji jestli už Karel není doma, to vrtění na konci nevadí, tam se jen dokončují cykly a vrací se z jednotlivých vnoření.
Je to psané trochu narychlo, takže by to šlo ještě dost optimalizovat, například aby Karel nezkoušel směr ze kterého přišel, nebo přeskočil zbývající část cyklů OPAKUJ, to couvání by se dalo rozdělit, aby neprováděl celou otočku navíc...