from turtle import shape, forward, left, right, exitonclick
strana = int(input('Pro nakresleni domecku zadej delku strany v celych cislech: '))
def domecek(strana):
from math import sqrt
shape('turtle')
'Podsada a prava strana'
for a in range(2):
forward(strana)
left(90)
forward(strana)
'Otoceni na strechu'
right(180-45)
for b in range(2):
forward((sqrt(strana**2+strana**2))/2)
right(90)
forward(sqrt(strana**2+strana**2))
right(135)
forward(strana)
right(135)
forward(sqrt(strana**2+strana**2))
left(45)
forward(strana)
exitonclick()
domecek(strana)
def tah_hrace(pole):
pozice = int(input('Zadej cislo policka (0-19):'))
if pozice < 0:
print('Policko nemuze byt mensi nez 0. Zadej znovu cislo policka (0-19):')
return tah_hrace(pole)
elif pozice > 19:
print('Policko nemuze byt vetsi nez 19. Zadej znovu cislo policka (0-19):')
return tah_hrace(pole)
else:
if '-' not in pole[pozice]:
print('Tohle policko uz je obsazene! Zadej znovu cislo policka (0-19):')
return tah_hrace(pole)
else:
return tah(pole, pozice, 'o')
def ano_nebo_ne(otazka):
"Vrátí True nebo False, podle odpovědi uživatele"
while True:
odpoved = input(otazka)
if odpoved.strip().lower() == 'ano' or odpoved.strip().lower() == 'a':
return True
elif odpoved.strip().lower() == 'ne' or odpoved.strip().lower() == 'n':
return False
else:
print('Nerozumím! Odpověz "ano" nebo "ne".')
if ano_nebo_ne('Chceš si zahrát hru? '):
print('OK! Ale napřed si ji musíš naprogramovat.')
else:
print('Škoda.')
def ano_nebo_ne(otazka):
"Vrátí True nebo False, podle odpovědi uživatele"
while True:
odpoved = input(otazka).lower().strip()
if odpoved == 'ano' or odpoved == "a":
return True
elif odpoved == 'ne' or odpoved == "n":
return False
else:
print('Nerozumím! Odpověz "ano" nebo "ne".')
vyhodnot()
def vyhodnot(pole):
if "xxx" in pole:
print("X")
elif "ooo" in pole:
print("O")
elif "-" not in pole:
print("!")
else:
print("-")
def vyhodnot(pole):
result = '-'
if 'xxx' not in retezec and 'ooo' not in retezec and '-' not in retezec:
result = '!'
elif 'xxx' in retezec:
result = 'x'
elif 'ooo' in retezec:
result = 'o'
return result
def vyhodnot(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.