Ahoj,
Som v kapitole https://naucse.python.cz/course/pyladies/beginners/testing/,
a nerozumiem, prečo mi test_tah_chyba nefunguje...
V príkazovom riadku sa mi program zasekne na modro podčiarknutej časti, a
musím to ukončiť ctrl+C...
Chýba mi niečo v piskvorky.py? Nakoniec som tam doplnila túto časť (aj keď
v materiáloch to vyslovene povedané nie je, ale naznačené to asi je):
Ale nepomohlo to. Nedáva mi to aj tak moc zmysel, pretože vtedy, keď je na
rade počítač, nemôže mať plné pole... pretože najprv hrá hráč, potom
počítač, obaja doplňujú po jednom písmene, a pole má párny počet polí...
Moc díky za radu :) snažím sa to pochopiť, a z materiálov mi nie je jasné,
čo je zle a prečo sa mi to cyklí/zasekáva.
Heli
--
--
E-mailová skupina [email protected]
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs
ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete
e-mail na adresu [email protected].
Chcete-li zobrazit tuto diskusi na webu, navštivte
https://groups.google.com/d/msgid/django-cs/4403eb9d-877d-427f-86c0-f581b550e876%40googlegroups.com.
from random import randrange
def vyhodnot(pole):
if "xxx" in pole:
return "x"
# vyhral X
elif "yyy" in pole:
return "y"
# vyhral Y
elif "-" not in pole:
return "!"
# remíza
else:
return "-"
# nikto nevyhral a stále tam je nejaké -, takže sa stále hrá
def tah(pole, cisloPolicka, symbol):
# Vrátí herní pole s daným symbolem umístěným na danou pozici
return pole[:cisloPolicka] + symbol + pole[cisloPolicka + 1:]
def tah_hrace(pole):
# Vrátí herní pole se zaznamenaným tahem hráče
while True:
try:
pozicia = int(input("Na ktorej pozícii chceš hrať? (0-19)"))
except ValueError:
print("To nebolo číslo, skús to znovu")
else:
if pozicia < 0 or pozicia >= len(pole):
print("Nemôžeš hrať mimo poľa")
elif pole[pozicia] != "-":
print("Táto pozícia je už obsadená")
else:
break
return tah(pole, pozicia, "x")
def tah_pocitace(pole):
# Vrátí herní pole se zaznamenaným tahem počítače
while True:
try:
"-" in pole == True
except ValueError:
print("Pole je plné")
pozicia = int(randrange(0, 20))
if pole[pozicia] == "-" and (pozicia == 0 or pozicia == 19):
return tah(pole, pozicia, "y")
break
elif pole[pozicia] == "-" and (pole[pozicia-1] != "-" or pole[pozicia+1] != "-"):
return tah(pole, pozicia, "y")
break
else:
continue
def piskvorky1d():
pole = "--------------------"
while vyhodnot(pole) == "-":
pole = tah_hrace(pole)
print(pole)
if vyhodnot(pole) == "x":
print("Vyhral si :) ")
break
pole = tah_pocitace(pole)
print(pole)
if vyhodnot(pole) == "y":
print("Vyhral počítač")
break
elif vyhodnot(pole) == "!":
print("A máme tu remízu :) ")
import pytest
import piskvorky
def test_tah_na_prazdne_pole():
pole = piskvorky.tah_pocitace('--------------------')
assert len(pole) == 20
assert pole.count('y') == 1
assert pole.count('-') == 19
def test_tah_chyba():
with pytest.raises(ValueError):
piskvorky.tah_pocitace('oxoxoxoxoxoxoxoxoxox')import piskvorky
piskvorky.piskvorky1d()