def tah_hrace (pole):
'Vrátí herní pole se zaznamenaným tahem hráče'
t = 0
while t == 0:
pozice = int(input('Na které políčko chceš hrát? '))
if (pozice > 0) and (pozice<=20) and (pole[pozice-1] == '-'):
return tah(pole,pozice,'x')
t = 1
else:
print('Špatně zadaná pozice, zkus to znovu.')
def tah_hrace(pole):
'Vrátí herní pole se zaznamenaným tahem hráče'
while True:
pozice = int(input('Na které políčko chceš hrát? '))
if (pozice > 0) and (pozice<=20) and (pole[pozice-1] == '-'):
return tah(pole,pozice,'x')
else:
print('Špatně zadaná pozice, zkus to znovu.')
def vyhodnot(pole):
"Vyhodnotí stav pole."
krizek = "xxx"
kolecko = "ooo"
volno = "-"
if krizek in pole and kolecko not in pole:
return("x")
elif kolecko in pole and krizek not in pole:
return("o")
elif volno not in pole and krizek not in pole and kolecko not in pole:
return("!")
else:
None
def vyhodnot(pole):
"Vyhodnotí stav pole."
if 'xxx' in pole:
return("x")
elif 'ooo' in pole:
return("o")
elif '-' not in pole:
return("!")
else:
return '-'
from random import randrange
def vyhodnot(pole):
"Vyhodnotí stav pole."
if 'xxx' in pole:
return("x")
elif 'ooo' in pole:
return("o")
elif '-' not in pole:
return("!")
else:
return '-'
def tah(pole, pozice, symbol):
"Vrátí herní pole s daným symbolem umístěným na danou pozici."
return pole[:pozice] + symbol + pole[pozice + 1:]
def tah_hrace(herni_pole):
"Ptá se hráče na kterou pozici chce hrát a vrací herní pole se zaznamenaným tahem"
while True:
cislo_pozice = int(input("Na kterou pozici chceš hrát? "))
if cislo_pozice >= 0 and cislo_pozice < len(herni_pole) and herni_pole[cislo_pozice] == "-":
return tah(herni_pole, cislo_pozice, "x")
else:
print("Špatná pozice, zkus to znovu. ")
def tah_pocitace(herni_pole):
"Vrátí herní pole se zaznamenaným tahem počítače. "
while True:
cislo_pozice = randrange(len(herni_pole))
if herni_pole[cislo_pozice] == "-":
return tah(herni_pole, cislo_pozice, "o")
def piskvorky():
"Vygeneruje prázdné pole a střídá tah hráče a počítače. "
pole = "-" * 20
while True:
print(pole)
pole = tah_hrace(pole)
print(pole)
if vyhodnot(pole) != '-':
break
pole = tah_pocitace(pole)
if vyhodnot(pole) != '-':
break
print(pole)
if vyhodnot(pole) == '!':
print('Remíza!')
elif vyhodnot(pole) == 'x':
print('Vyhrála jsi!')
elif vyhodnot(pole) == 'o':
print('Vyhrál počítač!')
piskvorky()
Nejdříve chyby v syntaxi, na které si Python stěžuje ihned po přečtení programu.
def piskvorky1d(symbol):
symbol_hrac = input('Chces o nebo x?)
pole= '-' * 20
print(pole)
vysledek == '-'
while vysledek =='-'
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek == vyhodnot(pole)
print(vysledek)
def piskvorky1d(symbol):
symbol_hrac = input('Chces o nebo x?')
pole= '-' * 20
print(pole)
vysledek == '-'
while vysledek =='-'
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek == vyhodnot(pole)
print(vysledek)
def piskvorky1d(symbol):
symbol_hrac = input('Chces o nebo x?')
pole= '-' * 20
print(pole)
vysledek == '-'
while vysledek =='-':
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek == vyhodnot(pole)
print(vysledek)
def piskvorky1d(symbol):
symbol_hrac = input('Chces o nebo x?')
pole= '-' * 20
print(pole)
vysledek == '-'
while vysledek =='-':
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek == vyhodnot(pole)
print(vysledek)
Pro řešení těch dalších už musíme kód v naší funkci spustit, jinak se o jeho chování nic nedozvíme.
def piskvorky1d(symbol):
symbol_hrac = input('Chces o nebo x?')
pole= '-' * 20
print(pole)
vysledek == '-'
while vysledek =='-':
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek == vyhodnot(pole)
print(vysledek)
piskvorky1d()
def piskvorky1d():
symbol_hrac = input('Chces o nebo x?')
pole= '-' * 20
print(pole)
vysledek == '-'
while vysledek =='-':
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek == vyhodnot(pole)
print(vysledek)
piskvorky1d()
def piskvorky1d():
symbol_hrac = input('Chces o nebo x?')
pole= '-' * 20
print(pole)
vysledek = '-'
while vysledek =='-':
tah_hrace(pole,symbol_hrac)
print(pole)
if symbol_hrac == 'o':
symbol_pocitac == 'x'
else:
symbol_pocitac == 'o'
tah_pocitace(pole,symbol_pocitac)
print(pole)
vysledek = vyhodnot(pole)
print(vysledek)
piskvorky1d()
#Program by měl vypisovat všechny hody a nakonec napsat, kdo vyhrál.
def hazeni(hrac):
'''Tato funkce generuje náhodné hody kostkou hráče.
Výsledkem je počet hodů dokud nepadla šestka.'''
#hodnota jedna, protože vždycky se alespoň jednou hodí kostkou
pocet = 1
while True:
#hod generuje náhodná čísla 1-6
hod = randrange(1,7)
# print(hod, 'tohle jsem hodil')
#v každém případě, kdy není hozena šestka, se připočítává k hodnotě počet jednička
if hod != 6:
pocet += 1
# print(pocet, 'tolik hodů')
#když šestka padne, vypíše se v rámci funkce text a vrátí se hodnota (dále se s ní počítá jako s vyslB)
else:
print(hrac, '. hráč potřeboval ', pocet, ' hodů na hození šestky.', sep='')
return pocet
def obsah_elipsy(a, b):
obsah = pi * a * b # Přiřazení do `obsah`
a = a + 3 # Přiřazení do `a`
return obsah
Ano
, ANO
, ano
, A
atp.