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
b3b33alp
cviceni
t06
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
2019/11/04 09:37 stepan created
2019/09/21 11:39 stepan removed
2018/11/23 17:21 external edit
Go
Next revision
Previous revision
2019/11/04 09:37 stepan created
2019/09/21 11:39 stepan removed
2018/11/23 17:21 external edit
Go
courses:b3b33alp:cviceni:t06 [2018/11/23 17:21]
127.0.0.1
external edit
courses:b3b33alp:cviceni:t06 [2019/11/04 09:37]
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
a
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 . .
+
x
o .
x x
.
x
-
o o
. o . .
+
x
. o . .
x o
-
x o x
x
o
.
+
o
x o x o
o x
-
. .
o
x
.
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
v
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 .
. .
+
o
.
o
x .
o o
-
x
. . x
. o
. .
+
.
o
. x
x
. .
-
.
. x
o o x .
o
+
x
. 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
o
+
. . . . .
+
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
. x .
+
x
o
. o . .
-
. .
. o
x x
. .
+
x o
o
x o .
-
x
x o
.
x o
.
.
+
. o
o .
o x
-
. o o x o .
.
.
+
o .
x x o
.
-
.
. x
o .
. . .
+
. x . .
x
.
</code>
</code>
-
Výstup: ''
x
''
+
Výstup: ''
0 4
''
Vstup:
Vstup:
<code>
<code>
-
. o
x x
. . . .
+
. o
o
. .
o
. .
-
o
o
x x
.
. . .
+
x
o
.
x x . . .
-
.
o x
o x . . .
+
.
.
o x
.
. . .
-
. . x . . x . .
+
o .
. . x . .
o
-
. . . x x x . .
+
x
o x o
.
o
.
x
+
.
x x o . o o .
+
. . x
o . o x .
+
.
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