CourseWare Wiki
Switch Term
Winter 2023 / 2024
Winter 2022 / 2023
Winter 2021 / 2022
Winter 2020 / 2021
Winter 2019 / 2020
Winter 2018 / 2019
Older
Search
Log In
b191
courses
b4b33rph
cviceni
program_po_tydnech
tyden_06
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.
View differences:
Side by Side
Inline
Go
Link to this comparison view
Go
Go
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