Ejemplo n.º 1
0
def test_tah_hrace_vyjimky():
    '''
    Test funkce tah_hrace: testuje tah hráče po zadání STR místo INT
    jako pozice, kam chce umístit svůj symbol nebo pokud hraje mimo
    herní pole.
    '''
    pole, vysledek = piskvorky.tah_hrace('abc---abc', 'o', 'blbost')
    assert pole == 'abc---abc'
    assert vysledek == 'Nezadal jsi číslo, ale text, zkus to znovu.'

    pole, vysledek = piskvorky.tah_hrace('abc---abc', 'o', 25)
    assert pole == 'abc---abc'
    assert vysledek == 'Nezadal jsi číslo od 1 do 9, zkus to znovu.'
Ejemplo n.º 2
0
def piskvorky1D():
    
    pole = "-" * 20
    
    # kdo ma jaky znak 0:PC-x a hrac-o, 1:PC-o a hrac-x
    if randrange(0, 2):
        znakPC = "x"
        znakHrac = "o"        
    else:
        znakPC = "o"
        znakHrac = "x"
    
    print("Hrac ma", znakHrac)
    
    while True:            
       
        pole = tah_pocitace(pole, znakPC)
        print(pole)
        if "-" != vyhodnot(pole, znakHrac, znakPC):
            # j*z neni volne pole
            break
        pole = tah_hrace(pole, znakHrac)
        print(pole)
        if "-" != vyhodnot(pole, znakHrac, znakPC):
            # j*z neni volne pole
            break
    
    if "o" == vyhodnot(pole, znakHrac, znakPC):
        print("Vyhral hrac s kolecky")
    elif "x" == vyhodnot(pole, znakHrac, znakPC):
        print("Vyhral hrac s krizky")
    else:
        print("Remiza")
Ejemplo n.º 3
0
def test_tah_hrace_na_obsazenou_pozici():
    '''
    Test funkce tah_hrace: testuje tah hráče na obsazenou pozici - musí vrátit
    původní pole a řetězec 'Pole {} je obsazené, vyber si jiné'
    '''
    pole, vysledek = piskvorky.tah_hrace('abc---abc', 'o', 1)
    assert pole == 'abc---abc'
    assert vysledek == 'Pole 1 je obsazené, vyber si jiné'
Ejemplo n.º 4
0
def test_tah_hrace_na_volnou_pozici():
    '''
    Test funkce tah_hrace: testuje tah hráče na volnou pozici - musí
    vrátit jako výsledek pole a řetězec "ok"
    '''
    pole, vysledek = piskvorky.tah_hrace('abc---abc', 'o', 5)
    assert pole == 'abc-o-abc'
    assert len(pole) == 9
    assert vysledek == 'ok'
Ejemplo n.º 5
0
def test_tah_hrace_pre_pokrocilych():
    original_input = p.input_pre_tah_hrace

    # vytvorime iterator z (n-tic) == tuple
    iterator = iter(("a", -1, 20, 0, 2, 1,  # vstup pre 1. volanie p.tah_hrace
                     0,                     # vstup pre 2. volanie p.tah_hrace
                     0))                    # vstup pre 3. volanie p.tah_hrace

    # vytvorime funkciu ktora zavola next vzdy ked volame input
    # posledna hodnota musi byt validna, aby sme predisli nekonecnemu cyklu!!!
    def input_iterator_predefinovanych_hodnot(_):
        return next(iterator)
    p.input_pre_tah_hrace = input_iterator_predefinovanych_hodnot
    assert p.tah_hrace("x-xoo") == "xxxoo"  # pouzi nevalidne hodnoty ("a", -1, 20, 0, 2) a potom 1
    assert p.tah_hrace("--xoo") == "x-xoo"  # pouzi 0, ktora nebola validna pre predosly vstup, ale je validna teraz
    assert p.tah_hrace("-----") == "x----"  # pouzi poslednu 0, tiez validny vstup

    p.input_pre_tah_hrace = original_input
Ejemplo n.º 6
0
def test_tah_hrace_ruzna_delka_pole():
    '''
    Test funkce tah_hrace: testuje tah hráče na různě velké hrací pole, tah
    hráče je generován náhodně
    '''
    for delka_pole in range(1, 10000):
        pole, vysledek = piskvorky.tah_hrace('-' * delka_pole, 'x',
                                             randrange(1, delka_pole + 1))
        assert len(pole) == delka_pole
        assert pole.count('x') == 1
        assert pole.count('-') == delka_pole - 1
Ejemplo n.º 7
0
def test_tah_hrace_dalsi_pripady_vyjimek():
    '''
    Test funkce tah_hrace: testuje nesmyslně zadané argumenty a vyvolání
    vyjímek (další, které nebyly zachyceny výše)
    '''
    with pytest.raises(TypeError):
        piskvorky.tah_hrace(10, 'x', 1)
        piskvorky.tah_pocitace(10.5, 'x', 1)

    with pytest.raises(ValueError):
        piskvorky.tah_hrace('---------', 'X', 1)
        piskvorky.tah_hrace('---------', '', 1)
        piskvorky.tah_hrace('---------', 'abc', 1)
Ejemplo n.º 8
0
def test_tah_hrace():
    # nahradime funkciu input, aby sa nic nepytala uzivatela
    # ignorujeme vstupny parameter funkcie input("...") pomocou _
    original_input = p.input_pre_tah_hrace

    def dummy_input_0(_):
        return 0
    p.input_pre_tah_hrace = dummy_input_0
    assert p.tah_hrace("-----") == "x----"
    assert p.tah_hrace("-ox--") == "xox--"

    def dummy_input_4(_):
        return 4
    p.input_pre_tah_hrace = dummy_input_4
    assert p.tah_hrace("-----") == "----x"
    assert p.tah_hrace("-ox--") == "-ox-x"

    # nemozeme vsak pouzit negativny test, pretoze by sme sa dostali to nekonecneho cyklu
    # def dummy_input_minus1():
    #     return -1

    # vratime vsetko do povodneho stavu, ak treba
    p.input_pre_tah_hrace = original_input
Ejemplo n.º 9
0
def test_tah_hrace_na_plne_pole():
    '''
    Test funkce tah_hrace: po tahu hráče na plné pole (= znamená, že zde
    není žádné "-") dojde k vyvolání výjimky
    '''
    with pytest.raises(ValueError):
        piskvorky.tah_hrace('xoxoxoxoxoxoxox', 'x', 1)
        piskvorky.tah_hrace('               ', 'x', 1)
        piskvorky.tah_hrace('123456789', 'x', 5)
Ejemplo n.º 10
0
def test_tah_hrace_obsazeno(podstrc_vstup):
    """Tah hráče: plné pole není uznáno, zeptá se znova"""
    from piskvorky import tah_hrace
    podstrc_vstup('0', '1')
    assert tah_hrace('x-------------------', 'o') == 'xo------------------'
Ejemplo n.º 11
0
def test_tah_hrace_ukazka(podstrc_vstup):
    """Tah hráče: test ukázky zezadání"""
    from piskvorky import tah_hrace
    podstrc_vstup('nevím', '0', '-1', '151', '2')
    assert tah_hrace('o-------------------', 'x') == 'o-x-----------------'
Ejemplo n.º 12
0
def test_tah_hrace2():
    with pytest.raises(Exception):
        assert tah_hrace('--', 8)
Ejemplo n.º 13
0
def test_tah_hrace_necislo(podstrc_vstup):
    """Tah hráče: odpověď 'řeřicha' není uznána, zeptá se znova"""
    from piskvorky import tah_hrace
    podstrc_vstup('řeřicha', '2')
    assert tah_hrace('--------------------', 'o') == '--o-----------------'
Ejemplo n.º 14
0
def test_tah_hrace_obsazeno(podstrc_vstup):
    """Tah hráče: plné pole není uznáno, zeptá se znova"""
    from piskvorky import tah_hrace
    podstrc_vstup('0', '1')
    assert tah_hrace('x-------------------', 'o') == 'xo------------------'
Ejemplo n.º 15
0
def test_tah_hrace_o_19(podstrc_vstup):
    """Tah hráče: O na pozici 19 na prázdné pole"""
    from piskvorky import tah_hrace
    podstrc_vstup('19')
    assert tah_hrace('--------------------', 'o') == '-------------------o'
Ejemplo n.º 16
0
def test_tah_hrace_na_pole_delky_O():
    '''
    Test funkce teh_hrace: testuje tah hráče na pole délky 0
    '''
    with pytest.raises(ValueError):
        piskvorky.tah_hrace('', 'x', 1)
Ejemplo n.º 17
0
from piskvorky import tah_hrace, vyhodnot
from ai import tah_pocitace

pole = "-" * 20
na_tahu = "x"

while True:
    if na_tahu == "x":
        cislo_policka = int(input("""Zadej pozici od 0 do 19: """))
        pole = tah_hrace(pole)
        na_tahu = "o"
    elif na_tahu == "o":
        pole = tah_pocitace(pole)
        na_tahu = "x"

    vysledek = vyhodnot(pole)
    print(pole)

    if vysledek != "-":
        if vysledek == "!":
            print("Remiza! {}".format(pole))
        elif vysledek == "x":
            print("Vyhravas nad pocitacem! {}".format(pole))
        elif vysledek == "o":
            print("Bohuzel, pocitac vyhral. {}".format(pole))
        else:
            raise ValueError("Nepripustny vysledek hry '{}'".format(vysledek))
        break
Ejemplo n.º 18
0
def test_tah_na_prazdne_pole():
    pole = tah_hrace("--------------------", "x")
    assert len(pole) == 20
    assert pole.count("x") == 1
    assert pole.count("-") == 19
Ejemplo n.º 19
0
def test_tah_chyba():
    with pytest.raises(ValueError):
        tah_hrace("xoxoxoxoxoxoxoxoxoxo", "x")
Ejemplo n.º 20
0
def test_tah_hrace():
    assert piskvorky.tah_hrace("----------", "x", 5) == "----x-----"
Ejemplo n.º 21
0
# 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.

#Nejdrive se vytvori herni plan, pote se strida tah hrace a pociace, dokud nekdo nevyhraje.

herni_pole = "-" * 20
na_tahu = "x"

while True:
    if na_tahu == "x":
        herni_pole = tah_hrace(herni_pole)
        na_tahu = "o"
    elif na_tahu == "o":
        herni_pole = tah_pocitace(herni_pole)
        na_tahu = "x"

    vysledek = vyhodnot(herni_pole)
    print(herni_pole)

    if vysledek != "-":
        if vysledek == "!":
            print(f"Remiza! {herni_pole}")
        elif vysledek == "x":
            print(f"Vyhravas nad pocitacem! {herni_pole}")
        elif vysledek == "o":
            print(F"Bohuzel, pocitac vyhral. {herni_pole}")
Ejemplo n.º 22
0
def test_tah_hrace():
    pole = "----------o---------"
    assert piskvorky.tah_hrace(pole,
                               -4) == (0, False,
                                       "Cislo uvedeno spatne, vyber 1 - 20.")
    assert piskvorky.tah_hrace(pole,
                               55) == (0, False,
                                       "Cislo uvedeno spatne, vyber 1 - 20.")
    assert piskvorky.tah_hrace(
        pole, 11) == (0, False, "Hrajes na obsazene pole, zkus to znova.")
    assert piskvorky.tah_hrace(pole, 7) == (6, True, "")
    assert piskvorky.tah_hrace(pole,
                               "mlp") == (0, False,
                                          "Zadavas blbosti, zadej cislo!")
    assert piskvorky.tah_hrace(pole, " ") == (0, False,
                                              "Zadavas blbosti, zadej cislo!")
    assert piskvorky.tah_hrace(pole, "d1") == (0, False,
                                               "Zadavas blbosti, zadej cislo!")
    assert piskvorky.tah_hrace(pole,
                               "@#//") == (0, False,
                                           "Zadavas blbosti, zadej cislo!")
    assert piskvorky.tah_hrace(pole, ",") == (0, False,
                                              "Zadavas blbosti, zadej cislo!")
    assert piskvorky.tah_hrace(pole, "a8") == (0, False,
                                               "Zadavas blbosti, zadej cislo!")
    with pytest.raises(ValueError):  # neg test
        piskvorky.tah_hrace(pole, "::")
Ejemplo n.º 23
0
def test_tah_hrace_x_0(podstrc_vstup):
    """Tah hráče: X na pozici 0 na prázdné pole"""
    from piskvorky import tah_hrace
    podstrc_vstup('0')
    assert tah_hrace('--------------------', 'x') == 'x-------------------'
Ejemplo n.º 24
0
def test_tah_hrace_x_0(podstrc_vstup):
    """Tah hráče: X na pozici 0 na prázdné pole"""
    from piskvorky import tah_hrace
    podstrc_vstup('0')
    assert tah_hrace('--------------------', 'x') == 'x-------------------'
Ejemplo n.º 25
0
def test_tah_hrace_necislo(podstrc_vstup):
    """Tah hráče: odpověď 'řeřicha' není uznána, zeptá se znova"""
    from piskvorky import tah_hrace
    podstrc_vstup('řeřicha', '2')
    assert tah_hrace('--------------------', 'o') == '--o-----------------'
Ejemplo n.º 26
0
def test_tah_hrace_o_19(podstrc_vstup):
    """Tah hráče: O na pozici 19 na prázdné pole"""
    from piskvorky import tah_hrace
    podstrc_vstup('19')
    assert tah_hrace('--------------------', 'o') == '-------------------o'
Ejemplo n.º 27
0
def test_tah_hrace_ukazka(podstrc_vstup):
    """Tah hráče: test ukázky zezadání"""
    from piskvorky import tah_hrace
    podstrc_vstup('nevím', '0', '-1', '151', '2')
    assert tah_hrace('o-------------------', 'x') == 'o-x-----------------'
Ejemplo n.º 28
0
def test_tah_hrace():
    assert tah_hrace('--', 1) == '-x'