Interaktivní procvičování

Programovací svět

Ovládej postavu v mřížkovém světě pomocí bezpečné podmnožiny Pythonu.

Herní kapitola

21 misí v 6 kapitolách: od prvních příkazů po rekurzi

V minihře píšeš krátké programy v Pythonu, které vedou postavu mřížkovým světem k cíli.

První mise tě provedou základními příkazy, cykly a podmínkami. Další už nejdou vyřešit naučeným vzorcem - musíš vymyslet obecný postup.

Většina misí ověřuje program i na dalších mapách, které předem nevidíš. Po spuštění si je prohlédneš a uvidíš, na které program selhal.

Když se zasekneš, otevři nápovědu: nejdřív dostaneš jen nápad, další nápovědy prozradí víc.

Kód běží jen v tvém prohlížeči a nikam se neodesílá. Splněné mise i rozepsaný kód si prohlížeč pamatuje.

Procvičuješ

Úkol

    Mapa Start
    zem kámen cíl postava prošlá cesta
    Tab odsadí · Ctrl+Enter spustí · Esc a Tab opustí editor
    Připraveno.

    Výstup programu

    Sem se vypíše text z print().

    Tahák

    Příkazy postavy a co Python tady umí

    move()

    Postava udělá jeden krok dopředu, tam kam se dívá. Když je před ní kámen nebo okraj mapy, program skončí chybou.

    turn_left()

    Postava se otočí o 90° doleva. Zůstane na stejném políčku.

    turn_right()

    Postava se otočí o 90° doprava. Zůstane na stejném políčku.

    front_is_clear()

    Vrátí True, když je před postavou volno (žádný kámen ani okraj mapy), jinak False. Postava se nepohne.

    at_goal()

    Vrátí True, když postava stojí v cíli.

    print(hodnota)

    Vypíše hodnotu do okna Výstup programu. Hodí se k ladění a v některých misích je potřeba.

    for i in range(n):

    Zopakuje odsazený blok n-krát; i postupně nabývá hodnot 0, 1, ..., n - 1.

    while podmínka:

    Opakuje odsazený blok, dokud podmínka platí. Pozor na nekonečný cyklus.

    if / elif / else

    Provede jen tu větev, jejíž podmínka platí; else se provede, když neplatí žádná.

    def jmeno(parametr):

    Definuje vlastní funkci. return hodnota ji ukončí a hodnotu vrátí volajícímu.

    Můžeš používat

    • proměnné, čísla, True a False, text v uvozovkách
    • počítání + - * / // % a porovnání == != < > <= >=
    • and, or, not
    • if / elif / else
    • while
    • for i in range(...)
    • vlastní funkce: def, parametry a return
    • print()

    Tady nefunguje

    • import a knihovny
    • seznamy [ ] a slovníky { }
    • class, lambda, try / except, with
    • global a nonlocal
    • input() - program běží bez zadávání z klávesnice
    • metody přes tečku, třeba text.upper()
    • jména začínající __