====== Reversi I ====== ===== Program ===== * Dotazy a odpovědi * Testík * Zadání úlohy Reversi a diskuse * 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? ===== Testík ===== [[courses:b4b33rph:internal:kratke_testiky:list_2d_find|zadání]] ===== Zadání úlohy Reversi ===== * Zadání úlohy Reversi naleznete [[courses:b4b33rph:cviceni:reversi:start|zde]] * Vyjasnění pravidel Reversi a validnosti tahů * Predstavení testování korektnosti tahů pomocí datasetu [[courses:b4b33rph:cviceni:reversi:start#instrukce_pro_ulohu_reversi|zde]] ===== Hádanka ===== > {{page>courses:b4b33rph:internal:puzzles#cviceni_5}} ===== Programovací úlohy ===== * Naimplementujte funkci ''line_column_size(r , c, data)'' rozšířením [[courses:b4b33rph:cviceni:program_po_tydnech:tyden_04#domaci_ukol|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. * Pakliže máte hotovou funkci ''line_column_size(r , c, data)'', zkuste přidat hledání po diagonálách jako například funkce ''region_size(r , c, data)''. * 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ě.