Search
V dnešním cvičení budete mít za úkol naimplementovat jednoduchou hru s názvem Game of Life (Hra života), viz wikipedia nebo dokument na YouTube. Jedná se o jednoduchý dvourozměrný celulární automat s těmito čtyřmi pravidly:
Začněte stažením neúplného programu Game of Life. Nejdůležitějším atributem třídy GameOfLife je self.population která ukládá stav aktuální generace ve 2D seznamu. Živá buňka má hodnotu 1 a mrtvá buňka hodnotu 0. Doimplementujte následující dvě metody třídy GameOfLife:
self.population
num_life_around(self, r, c)
r
c
life(self)
num_life_around
Nadcházející neděli do 23:59:59 je třeba odevzdat první verzi hráče Reversi s korektním pokládáním kamene. specifikace
Pokud vám něco není jasné, váš triviální hráč není schopen hrát, je nejvyšší čas to řešit.
Přečtěte zbytek vašeho vybraného Python tutorialu. Nemusíte úplně rozumět všemu, ani si pamatovat vše zpaměti. Měli byste mít natrénován postup jak si dohledat potřebné informace, mít natrénovanu práci s např. Python 3 tutoriálem, nebo jiným podobným zdrojem veškeré moudrosti
Práce s datovou strukturou dictionary (viz [Pilgrim2009], kapitola 2.7, nebo [Wentworth2012], kapitola 20) Zopakovat: vytvoření prázdného slovníku, přidání páru klíč-hodnota, zjištění hodnoty pro klíč Vyzkoušejte si procházení položek slovníku pomocí metody items():eng_to_cz = {'cat': 'kocka', 'dog': 'pes', 'house': 'dum' } for eng, cz in eng_to_cz.items(): print(eng, ',', cz) Zopakujte si použití sekce if __name__ == "__main__": (viz [Pilgrim2009], kapitola 1.10). Práce se soubory (viz [Pilgrim2009], kapitola 11, nebo [Wentworth2012], kapitola 13 - Ale pozor! Zde autoři zapomínají specifikovat kódování souboru!) Otevření a uzavření textového souboru Použití příkazu with Čtení ze souboru (po řádcích) Načtení celého obsahu souboru do 1 řetězce Metoda split() řetězcových proměnných (viz dokumentace k str.split()) 2018/07/17 13:25
dictionary
items()
eng_to_cz = {'cat': 'kocka', 'dog': 'pes', 'house': 'dum' } for eng, cz in eng_to_cz.items(): print(eng, ',', cz)
if __name__ == "__main__":
with
split()