98
Kapitola 7 Balíčky, knihovny, robot Karel a jeho svět
Na řádku 1 se importují všechny veřejné atributy modulu (a zde současně balíčku) robotcz. A protože jeho atributy importujeme přímo (předpokládáme, že se nebudou měnit), nebudeme je muset kvalifikovat. Příkaz na řádku 2 vytvoří prázdný svět o jednom řádku a pěti sloupcích (ověřte si to). Potvrzuje to ostatně i vytištěný podpis na řádku 3. Příkaz na řádcích 4–5 tento svět odstraní a vytvoří svět, na jehož políčkách jsou různé počty značek a v jeho pravém dolním rohu je zeď. Jak vidíte, v prvním řádku jsem počty značek na jednotlivých polích prvního řádku zadával prostřednictvím číslic, počty na polích druhého řádku prostřednictvím „tečkových znaků“. Sami si ve svých programech vyberte, jaký způsob vám bude sympatičtější. Podpis světa na řádku 6 prozrazuje, že ve světě ještě není žádný robot. Změní to až příkaz na řádku 7, který vytvoří nového robota a (jak si záhy vysvětlíme) umístí jej do levého spodního rohu. Výsledek odpovídá obrázku 7.1. Protože poslední příkaz není výrazový, hodnota pomocné proměnné _ se nezměnila a stále odkazuje na vytvořený svět. Příkaz na řádku 8 proto tiskne jeho podpis, z nějž se dozvíme, že svět ví, že se po něm pohybuje jeden robot.
Obrázek 7.1: Svět robotů vytvořený programem z výpisu 7.1 doplněný o robota příkazy z výpisu
Vytvoření robota Roboti jsou instancemi třídy Karel z balíčku robotcz. Vytvoříme je proto zavoláním příslušného konstruktoru, tj. zavoláním jejich třídy jako funkce. Signatura tohoto konstruktoru je: Karel(row:int =-1, col:int = 0, dir4:Direction4 = DEFAULT_DIR, color:Color = DEFAULT_COLOR)
Zavoláte-li konstruktor jako bezparametrický, vytvoří se modrý, na východ (doprava) otočený robot, který bude umístěn do levého dolního (jihozápadního) rohu aktuálního světa, jak je tomu na obrázku 7.1. Pozice Řádek, na nějž bude robot umístěn, se zadává v argumentu row. Řádky se počítají od horního řádku, který je chápán jako nultý a jeho index roste směrem dolů. Sloupec, na nějž bude robot umístěn, se zadává v argumentu col. Sloupce se počítají od levého krajního sloupce, který je opět chápán jako nultý, a sloupcový index roste směrem doprava. 70_Python_NZ2_ZLOM.doc; verze 1.02.8964_2022-02-17_čt_15-48
Strana 98 z 316 Ukázka elektronické knihy, UID: KOS507029