Dnešní projekty jsou součástí projektu 1D Piškvorky. Dělej je jeden po druhém.
Rozděl 1D Piškvorky na čtyři moduly:
ai.py
, kde bude funkce tah_pocitace
,piskvorky.py
, kde budou ostatní funkce,hra.py
, kde bude import a volání hlavní funkce z piskvorky.py
(a nic jiného),test_piskvorky.py
, kde budou testy.Jak se do importů nezamotat? Podívej se do materiálů na sekci cyklické importy.
Pokud jsi byla na workshopu Gitu, dej to do Gitu! A kdybys něco nedopatřením rozbila, git diff HEAD
ukáže změny od poslední revize.
Napiš aspoň dva testy na každou funkci z Piškvorek, ke které testy napsat umíš.
Testy pravděpodobně neumíš napsat na funkci input
a všechny funkce, které ji (byť nepřímo) volají.
A taky asi neumíš otestovat účinek funkce print
.
Zkus program přepsat tak, aby část, která není pokrytá automatickými testy, byla co nejmenší.
Místo volání print
můžeš často vrátit řetězec
a print
zavolat až na návratovou hodnotu.
Podobně input
můžeš zavolat před zavoláním funkce,
která pak může příkaz od uživatele brát jako argument.
Doplň funkci tah_pocitace
tak, aby brala jako argument symbol, za který má počítač hrát – buď 'x'
, nebo 'o'
.
Dopiš testy.
Nezapomínáš na Git (pokud jsi byla na workshopu Gitu)?
Ověř, že se funkce tah_pocitace
se umí vyrovnat s jinou délkou hracího pole než 20.
„Ověření” znamená napsání příslušného testu.
Ověř si, že se tah_pocitace
chová rozumně když dostane plné hrací pole, nebo pole s délkou 0.
Rozumné chování v tomto případě znamená vyvolání rozumné výjimky.
Podle toho, jak jste se na sraze domluvili, pošli
soubor ai.py
(s funkcí tah_pocitace
)
e-mailem (např. organizátorům, koučovi, nebo vůbec).
Posílej ho jako přílohu, nekopíruj ho do textu e-mailu.
Jestli procházíš kurz sama a můžeš programování konzultovat s někým
zkušenějším, je tento úkol na takovou konzultaci ideální téma.
Dozvíš se, jak si tvá strategie stojí proti ostatním – a proti testům, které napíše organizátor. :) Strategii je možné i vylepšovat a poslat několik různých verzí. Neboj se poslat i první nástřel! Stejně tak se neboj funkci poslat, i kdyby ještě nebyla úplně dodělaná.
Na některém dalším srazu bude turnaj o ceny!
Máš-li Piškvorky hotové, můžeš si naprogramovat ještě jednu hru! Jestli na to tedy máš čas a chuť.
Vytvoř hru sibenice
podle následujícího popisu.
Snaž se projekt rozdělit do funkcí a modulů s hezkými jmény,
piš testy a dokumentační řetězce, funkční kousky dávej postupně do Gitu.
index_
a funkce zamen
z piškvorek.+---. | | | O | --|-- | / | ~~~~~~~ p_t__n
Funguje-li ti předchozí hra, můžeš ji vylepšit.
ABC
nebo !
), nepovažuj to za tah.