Reversi I

Výsledky učení

Po tomto cvičení student

  • chápe pravidla hry Reversi a umí posoudit platnost tahu;
  • rozumí rozhraní, které třída MyPlayer musí mít;
  • umí spustit dodané kódy a otestovat svého hráče na datové sadě;
  • umí procházet matici (2D seznam) v určitém směru pomocí cyklu while.

Program

  • Dotazy a odpovědi
  • Krátký programovací testík
  • Zadání úlohy Reversi a diskuze
  • Hádanka
  • Programovací úlohy

Dotazy a odpovědi

  • Kolik lidí implementovalo funkci line_size(r,c,data) pro počítání velikosti oblasti v řádku?
  • Napadlo někoho univerzální řešení pro hledání v libovolném směru?

Programovací testík

Zadání 3. testíku se dozvíte na cvičení.

Zadání úlohy Reversi

Hádanka

Zadání hádanky se dozvíte na cvičení.

Programovací úlohy

  • Naimplementujte funkci line_column_size(r, c, data) rozšířením domácího úkolu tak, aby funkce hledala velikost oblasti nejen v řádku, ale také ve sloupci.
  • Snažte se o co nejobecnější prohledávání v daném směru.
  • Máte-li hotovou funkci line_column_size(r, c, data), zkuste implementovat i funkci region_size(r, c, data), která bude kromě řádků a sloupců hledat i v diagonálách.
  • Jak souvisí tato funkce s hrou reversi a hledáním validních tahů?

Příklad: line_column_size

r=5
c=5
data = [
[0, 1, 1, 1, 1, 0, 0, 0 ] ,
[1, 1, 0, 1, 0, 1, 1, 1 ] ,
[0, 1, 1, 0, 0, 1, 0, 1 ] ,
[1, 1, 1, 0, 1, 1, 0, 1 ] ,
[0, 1, 0, 0, 0, 0, 1, 1 ] ,
[1, 0, 1, 1, 0, 0, 0, 0 ] ,
[0, 1, 1, 1, 0, 1, 1, 1 ] ,
[1, 1, 0, 1, 0, 1, 1, 1 ]]
reg_size = line_column_size(r , c, data)
print(reg_size)
5

Příklad: region_size

r=2
c=6
data = [
[1, 0, 0, 0, 1, 1, 0, 0 ] ,
[1, 1, 1, 0, 0, 1, 1, 1 ] ,
[0, 1, 0, 0, 1, 1, 1, 1 ] ,
[0, 1, 0, 1, 0, 1, 1, 1 ] ,
[0, 1, 1, 0, 0, 0, 1, 1 ] ,
[1, 0, 0, 0, 1, 1, 0, 0 ] ,
[0, 0, 1, 0, 1, 1, 1, 0 ] ,
[0, 0, 1, 0, 1, 0, 1, 0 ]]
reg_size = region_size(r , c, data)
print(reg_size)
12

Domácí úkol

  • Dodělat programovací úlohy z dnešního cvičení.
  • Začít pracovat na řešení úlohy reversi, tedy na hráči, který umí hrát validně.
courses/b4b33rph/cviceni/program_po_tydnech/tyden_05.txt · Last modified: 2024/10/21 11:31 by xposik