Differences

This shows you the differences between two versions of the page.

Link to this comparison view

courses:b4b33rph:cviceni:program_po_tydnech:tyden_06 [2018/11/08 10:09] (current)
Line 1: Line 1:
 +====== Reversi II ======
 +
 +===== Program =====
 +  * Dotazy a odpovědi ​
 +  * Hádanka ​
 +  * Diskuse Reversi, cvičný upload korektně hrajícího hráče
 +  * Programovací úlohy
 +===== Hádanka =====
 +> {{page>​courses:​b4b33rph:​internal:​puzzles#​cviceni_6}}
 +
 +===== Diskuse Reversi =====
 +    * Formulace a implementace funkce hodnotící proveditelnost tahu.
 +    * Jaké jsou základní strategie?
 +    * Jaká jsou důležitá pole? 
 +    * Jaké vlastnosti by měla mít má strategie (krom toho, že každého vždy porazí)?
 +
 +> {{page>​courses:​b4b33rph:​internal:​cviceni:​program_po_tydnech:​tyden_06#​reversi_gui_tool}}
 +===== Programovací úlohy - Game of Life =====
 +V dnešním cvičení budete mít za úkol naimplementovat jednoduchou hru s názvem Game of Life (Hra života), viz [[https://​cs.wikipedia.org/​wiki/​Hra_%C5%BEivota|wikipedia]]. Jedná se o jednoduchý dvourozměrný celulární automat mající tyto čtyři pravidla:
 +  - každá živá buňka s méně než dvěma živými sousedy zemře,
 +  - každá živá buňka se dvěma nebo třemi živými sousedy zůstává žít,
 +  - každá živá buňka s více než třemi živými sousedy zemře,
 +  - každá mrtvá buňka s právě třemi živými sousedy oživne.
 +
 +Začněte stažením neúplného programu {{:​courses:​b4b33rph:​cviceni:​program_po_tydnech:​game_of_life.py|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:
 +  * ''​num_life_around(self,​ r, c)''​ - určí počet živých buňek v okolí buňky na pozici ''​r''​-tého řádku a ''​c''​-tého sloupce. ​
 +  * ''​life(self)''​ - vytvoří novou generaci pomocí výše uvedených čtyř pravidel a uloží ji do ''​self.population''​. Všimněte si že je v této metodě dobré využít předem implementovanou metodu ''​num_life_around''​.
 +
 +
 +> {{page>​courses:​b4b33rph:​internal:​cviceni:​program_po_tydnech:​tyden_06#​game_of_life}}
 +===== Domácí úkol =====
 +
 +
 +
 +==== Odevzdání ====
 +
 +<WRAP important>​
 +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.
 +[[courses:​b4b33rph:​cviceni:​reversi:​specifikace|specifikace]]
 +</​WRAP>​
 +Pokud vám něco není jasné, váš triviální hráč není schopen hrát, je nejvyšší čas to řešit.
 +
 +==== Příprava na další cvičení ====
 +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ř. [[http://​docs.python.org/​py3k/​tutorial/​index.html|Pyhon 3 tutoriálem]],​ nebo jiným podobným zdrojem veškeré moudrosti ;-)
 +
 +/*Na příštím cvičení budeme využívat následující věci:*/
 +
 +> {{section>​courses:​b4b33rph:​cviceni:​spam:​krok1#​priprava&​noheader}}
  
courses/b4b33rph/cviceni/program_po_tydnech/tyden_06.txt · Last modified: 2018/11/08 10:09 by xposik