Warning
This page is located in archive.

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
courses:b3b33alp:cviceni:t06 [2019/09/21 11:39]
stepan removed
courses:b3b33alp:cviceni:t06 [2019/11/04 09:37] (current)
stepan created
Line 129: Line 129:
  
 ==== Lehká varianta ==== ==== Lehká varianta ====
-  * Napište a odevzdejte program **tic_tac_toe.py**,​ který načte hrací pole piškvorek určí vítězného hráče+  * Napište a odevzdejte program **tic_tac_toe.py**,​ který načte hrací pole piškvorek ​určí ​souřadnice ​vítězného ​tahu hráče ​na řadě ​
   * **Vstup**   * **Vstup**
     * Přes příkazovou řádku bude programu předána cesta k souboru s hracím polem (použijte ''​sys.argv[1]''​)     * Přes příkazovou řádku bude programu předána cesta k souboru s hracím polem (použijte ''​sys.argv[1]''​)
     * Soubor obsahuje znaky ''​.'',​ ''​x''​ a ''​o''​ které značí postupně prázdné pole, křížek (malé písmeno x) a kolečko (malé písmeno o).     * Soubor obsahuje znaky ''​.'',​ ''​x''​ a ''​o''​ které značí postupně prázdné pole, křížek (malé písmeno x) a kolečko (malé písmeno o).
     * Znaky na řádce jsou oddělené mezerou, jiné znaky se v souborech nevyskytují. Pole ale nemusí nutně být čtvercové     * Znaky na řádce jsou oddělené mezerou, jiné znaky se v souborech nevyskytují. Pole ale nemusí nutně být čtvercové
 +    * Hráč s ''​o''​ vždy začíná, tedy pro určení hráče na tahu platí
 +      * pokud je v poli stejný počet ''​x''​ a ''​o'',​ pak je na tahu ''​o''​
 +      * pokud je ''​x''​ o jednu méně, než ''​o'',​ pak hraje ''​x''​
     * Příklad vstupního souboru <​code>​     * Příklad vstupního souboru <​code>​
-o . x x . +o . . o o o o 
-. o o o . . +o . x x x 
-o o . o . . +. o . . x o 
-x o x . +x o x o o x 
-. . x +. . x x . .
-. . . x .+
 </​code>​ </​code>​
   * **Výstup**   * **Výstup**
-    * ''​x''​ pokud hráč s křížky má 5 znaků ​v řadě +    * dvě celá čísla oddělená mezerou, která určují indexy souřadnic hracím poli (2D pole po řádcích) <​code>​ 
-    * ''​o'' ​pokud hráč s kolečky má 5 znaků v řadě +0 2 
-    * ''​None'' ​pokud žádný z hráčů nemá 5 svých znaků v řadě  (jako u příkladu výše) +</​code>​ 
-  * +    * V poli je stejný počet ''​o''​ a ''​x''​ (12), na tahu je ''​o''​ 
 +    * Hráč ​''​o'' ​hru vyhrává, když hraje na první ​řádek do třetího sloupce, tj. index v poli ''​0 2''​
  
 === Příklady === === Příklady ===
 Vstup: Vstup:
 <​code>​ <​code>​
-. . x x . . . +x . o o 
-. . x . o . . +. x . . 
-. x o o x . o +. o o x . . 
-. o o o o o x . +o o o x . x 
-o o . . x x .+. x . . x x
 </​code>​ </​code>​
-Výstup: ''​o''​+Na tahu je hráč ''​o'',​ vítězná řada je v diagonále 
 +Výstup: ''​4 4''​ 
 + 
 +Vstup: 
 +<​code>​ 
 +x . . 
 +. . . . . 
 +o . x o . 
 +o . x . . 
 +o x x x o 
 +. o x . . 
 +</​code>​ 
 +Na tahu je hráč ''​x'',​ doplnit může řadu ve třetím sloupci 
 +Výstup: ''​1 2''​ 
  
 Vstup: Vstup:
 <​code>​ <​code>​
-. o o x . . . +x x . . . . 
-. . x x . x . +. o . . 
-. . . o x x . . +x o x o . 
-x o x o +. o o . o x 
-. o o x o . +o . x x o 
-. x o . . . .+. x . . .
 </​code>​ </​code>​
-Výstup: ''​x''​+Výstup: ''​0 4''​
  
 Vstup: Vstup:
 <​code>​ <​code>​
-. o x x . . . . +. o . . . . 
-x x . . . +x x . . . 
-o x o x . . . +o x . . . 
-. . x . . x . . +o . . . x . . 
-. . . x x x . .+o x o x 
 +x x o . o o . 
 +. . x o . o x . 
 +x x . . o
 </​code>​ </​code>​
-Výstup''​None''​+Výstup ''​3 2''​
  
 ==== Těžká varianta ====  ==== Těžká varianta ==== 
Line 186: Line 206:
  
   * Výstupem programu jsou souřadnice levého horního rohu a pravého dolního rohu podmatice. Na prvním řádku výstupu je levý horní roh ve formátu řádek sloupec, na druhém řádku pravý dolní roh. Řádky i sloupce se číslují od 0.    * Výstupem programu jsou souřadnice levého horního rohu a pravého dolního rohu podmatice. Na prvním řádku výstupu je levý horní roh ve formátu řádek sloupec, na druhém řádku pravý dolní roh. Řádky i sloupce se číslují od 0. 
-  * Velikost podmatice je určena jejím počet prvků.+  * Velikost podmatice je určena jejím počtem prvků.
   * Snažte se, aby Váš program byl co nejefektivnější,​ ideálně, aby jeho časová složitost odpovídala velikosti matice. Bodové ohodnocení této úlohy bude záviset na efektivnosti (rychlosti) Vašeho algoritmu.   * Snažte se, aby Váš program byl co nejefektivnější,​ ideálně, aby jeho časová složitost odpovídala velikosti matice. Bodové ohodnocení této úlohy bude záviset na efektivnosti (rychlosti) Vašeho algoritmu.
   * Pokud existuje více řešení, vypište libovolné z nich.   * Pokud existuje více řešení, vypište libovolné z nich.
courses/b3b33alp/cviceni/t06.txt · Last modified: 2019/11/04 09:37 by stepan