Práce s řetězci.
Napiš program, který se zeptá na příjmení uživatelky/uživatele a zkusí podle něj uhodnout její/jeho pohlaví.
Najdi na internetu text své oblíbené písně, zkopíruj si ho do řetězce a zjisti, kolikrát je v něm použito písmeno K.
Napiš funkci, která vrátí počet znaků (bez mezer) v řetězci, který je
zadaný jako argument funkce. Výsledek funkce vypiš v těle hlavního programu
pomocí print
.
Výzva Napiš funkci, která v zadaném řetězci zamění první písmeno za velké. Obdobně můžeš zkusit jiné záměny, např. poslední písmeno, třetí písmeno, atd.
Práce se soubory. Připrav si 2 krátké textové soubory s několika řádky
(např. prvni.txt
a druhy.txt
)
Napiš program, který vypíše obsah souboru prvni.txt
na obrazovku.
Napiš program, který ze souboru prvni.txt
určí: počet řádků v souboru, počet
znaků v souboru. Tyto hodnoty zapiš do nového souboru. Při počítání znaků v souboru
nezapoměň vynechat tzv. bílé znaky, abys dostala správný počet písmen, číslic a případně
speciálních znaků, které jsou v souboru. Ujisti se také, že jsi správně spočítala počet
řádků (že např. výsledný počet není o 1 menší než skutečný počet řádků v souboru).
Nakonec souboru prvni.txt
přidej obsah souboru druhy.txt
.
Nakonec trošku delší projekt. Budeme na něm stavět dál; nedokončíš-li ho teď, budeš ho muset dodělat před příští sadou projektů.
1-D piškvorky se hrají na řádku s dvaceti políčky. Hráči střídavě přidávají kolečka (`o`) a křížky (`x`), třeba:1. kolo: -------x------------ 2. kolo: -------x--o--------- 3. kolo: -------xx-o--------- 4. kolo: -------xxoo--------- 5. kolo: ------xxxoo---------Hráč, která dá tři své symboly vedle sebe, vyhrál.
Pro usnadnění orientace v celém projektu jsme připravili kostru, kterou najdeš tady
Napiš funkci vyhodnot
, která dostane řetězec
s herním polem 1-D piškvorek
a vrátí jednoznakový řetězec podle stavu hry:
"x"
– Vyhrál hráč s křížky (pole obsahuje "xxx"
)"o"
– Vyhrál hráč s kolečky (pole obsahuje "ooo"
)"!"
– Remíza (pole neobsahuje "-"
, a nikdo nevyhrál)"-"
– Ani jedna ze situací výše (t.j. hra ještě neskončila)Napiš funkci tah
, která dostane řetězec s herním polem,
číslo políčka (0-19), a symbol (x
nebo o
)
a vrátí herní pole (t.j. řetězec) s daným symbolem umístěným na danou pozici.
Hlavička funkce by tedy měla vypadat nějak takhle:
def tah(pole, cislo_policka, symbol):
"Vrátí herní pole s daným symbolem umístěným na danou pozici"
...
Můžeš využít nějakou funkci, kterou jsme napsaly už na sraze?
Napiš funkci tah_hrace
, která dostane řetězec s herním polem,
zeptá se hráče, na kterou pozici chce hrát, a vrátí herní pole
se zaznamenaným tahem hráče.
Funkce by měla odmítnout záporná nebo příliš velká čísla
a tahy na obsazená políčka.
Pokud uživatel zadá špatný vstup, funkce mu vynadá a zeptá se znova.
Napiš funkci tah_pocitace
, která dostane řetězec s herním polem,
vybere pozici, na kterou hrát, a vrátí herní pole
se zaznamenaným tahem počítače.
Použij jednoduchou náhodnou „strategii”:
Hlavička funkce by tedy měla vypadat nějak takhle:
def tah_pocitace(pole):
"Vrátí herní pole se zaznamenaným tahem počítače"
...
Napiš funkci piskvorky1d
, která vytvoří řetězec s herním polem
a střídavě volá funkce tah_hrace
a tah_pocitace
,
dokud někdo nevyhraje nebo nedojde k remíze.
Nezapomeň kontrolovat stav hry po každém tahu.
Poslední projekt je nepovinný, ale, jak to u podobných projektů bývá, můžeš na něj dostat zpětnou vazbu. Doporučuju toho využít!
Výzva Zvládneš pro počítač naprogramovat lepší strategii? Třeba aby se snažil hrát vedle svých existujících symbolů nebo aby bránil protihráčovi?
Stačí jen docela malé vylepšení!