Warning
This page is located in archive. Go to the latest version of this course pages.

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]
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