Exemple #1
0
def test_tah_pocitace_prazdne_pole():
    try:
        tah_pocitace('', 'x')
    except Exception:
        pass
    else:
        assert False
def test_tah_pocitace_pole_ruzne_delky():
    """
    Hra na pole ruzne delky.
    """
    # pole = ""
    # with pytest.raises(ValueError):
    #    tah_pocitace(pole, "o", "x", 0)

    # pole = "-"
    # with pytest.raises(ValueError):
    #     tah_pocitace(pole, "o", "x", 1)

    # pole = "---"
    # with pytest.raises(ValueError):
    #     tah_pocitace(pole, "o", "x", 3)

    for i in range(6):
        pole = i * "-"
        with pytest.raises(ValueError):
            tah_pocitace(pole, "o", "x", i)

    for i in range(6, 50):
        pole = i * "-"
        result = tah_pocitace(pole, "o", "x", i)
        assert len(result) == i
        assert result.count("o") == 1
        assert result.count("-") == i - 1
Exemple #3
0
def test_tah_PC_na_pole_delky_0():
    '''
    Test funkce tah_pocitace: funkce vyvolá vyjímku ValueError,
    pokud dostane pole s délkou 0.
    '''
    with pytest.raises(ValueError):
        ai.tah_pocitace('', 'x')
Exemple #4
0
def test_tah_pocitace_plne_pole():
    try:
        tah_pocitace('xoxoooxoxo', 'x')
    except Exception:
        pass
    else:
        assert False
def test_tah_pocitace_plne_pole():
    """
    Hra na plne pole.
    """
    pole = "xoxoxoxoxoxoxoxoxoxo"
    with pytest.raises(ValueError):
        tah_pocitace(pole, "o", "x", 20)
Exemple #6
0
def test_tah_PC_nespravny_symbol():
    '''
    Test funkce tah_pocitace: funkce vyvolá vyjímku ValueError,
    pokud dostane jako symbol_hrac něco jiného než "x" nebo "o".
    '''
    for symbol_hrac in 'aBXO10-_*.':
        with pytest.raises(ValueError):
            ai.tah_pocitace('----------', symbol_hrac)
def test_tah_pocitace_prasit_1():
    akce = tah_pocitace("--------o--------x--", "x")
    assert akce == "--------o--------xx-"

    akce = tah_pocitace("--------o--------xo-", "x")
    assert akce == "--------ox-------xo-"

    akce = tah_pocitace("--xoo---o--------xo-", "x")
    assert akce == "--xoox--o--------xo-"
def test_tah_pocitace_branit_hasit1():

    akce = tah_pocitace("-oo-oxoxoxoxxoxoxxoo", "x")
    assert akce == "xoo-oxoxoxoxxoxoxxoo"

    akce = tah_pocitace("oxxo-------------o-o", "x")
    assert akce == "oxxo-------------oxo"

    akce = tah_pocitace("oo--oxoxoxoxxoxoxxoo", "x")
    assert akce == "oox-oxoxoxoxxoxoxxoo"
def test_tah_pocitace_dlouhy():

    akce = tah_pocitace("-------------------------------", "o")
    vysledek_akce = "o" in akce
    assert vysledek_akce == True

    akce = tah_pocitace("----------------------xx", "x")
    assert akce == "---------------------xxx"

    akce = tah_pocitace("oxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxxox-", "o")
    assert akce == "oxoxoxoxoxoxoxoxoxoxoxoxoxoxoxoxxoxo"
Exemple #10
0
def test_musi_vyhrat():
    pole = ai.tah_pocitace('o-xx--------------o-', 'x', 'o')
    assert pole[1] == 'x' or pole[4] == 'x'
    assert ai.tah_pocitace('o-x-x-------------o-', 'x', 'o').find('xxx') == 2

    for pole in (
            'o-x--x-----x-x----o-',
            'o-xx--------------o-',
            'o-x-x-x--x-x---xx-----o-',
            'o-ox-x-----x-x----o-',
    ):
        assert ai.tah_pocitace(pole, 'x', 'o').find('xxx') != -1
def test_tah_pocitace_vyhravat():
    akce = tah_pocitace("-xx-----xx-------oxo", "x")
    assert akce == "xxx-----xx-------oxo"

    akce = tah_pocitace("oxxo---x-x--------oo", "x")
    assert akce == "oxxo---xxx--------oo"

    akce = tah_pocitace("oxx--------------o-o", "x")
    assert akce == "oxxx-------------o-o"

    akce = tah_pocitace("oxx--------------o-o", "o")
    assert akce == "oxx--------------ooo"
def test_tah_pocitace_skoro_plne_zacatek():
    """Tah počítače na skoro plné pole (volno na začátku)"""
    from ai import tah_pocitace
    pole = '-xoxoxoxoxoxoxoxoxox'
    result = tah_pocitace(pole, 'o')
    # Je jen 1 možnost kam hrát.
    assert result == 'oxoxoxoxoxoxoxoxoxox'
def piskvorky1d():
    prubeh_hry = '--------------------'  # aktualni herni pole, defaultni hodnota je prazdne pole
    cislo_tahu = 1  # defaultni cislo tahu
    vysledek = '-'  # defaultni vysledek

    while vysledek == '-':  # dokud hra neskoncila, cyklus pokracuje
        if cislo_tahu % 2 == 1:  # hru zacina hrac
            prubeh_hry = tah_hrace(prubeh_hry)  #pridame tah hrace
            print("Hráč:", prubeh_hry)
        else:  # pokracuje pocitac
            prubeh_hry = ai.tah_pocitace(
                prubeh_hry)  # do listu pridame tah pocitace
            print("Počítač:", prubeh_hry)

        vysledek = vyhodnot(prubeh_hry)  # vyhodnoti vysledek

        # pokud hra skoncila, vypise vysledek a posledni hrane pole, jinak zvysi cislo tahu a cyklus pookracuje
        if vysledek == '-':
            cislo_tahu += 1
            continue
        elif vysledek == 'x':
            print("Vyhral hrac!", prubeh_hry)
            break
        elif vysledek == 'o':
            print("Vyhral pocitac!", prubeh_hry)
            break
        elif vysledek == '!':
            print("Remiza", prubeh_hry)
            break
Exemple #14
0
def piskvorky1d():
    pole = "-" * 20

    znak_hrace = "o"
    znak_pocitace = "x"
    symbol = znak_pocitace

    print("Hráč má ", znak_hrace)
    print("Počítač má", znak_pocitace)

    print(pole)
    while True:
        pole = tah_hrace(pole)
        pole = tah_pocitace(pole, symbol)

        vysledek = vyhodnot(pole)
        if vysledek != "-": # už není volné pole
            if vysledek == "o":
                print("Vyhral jsi.")
            elif vysledek == "x":
                print("Vyhrál počítač.")
            elif vysledek == "!":
                print("Remíza.")
            break
        print(pole)
Exemple #15
0
def piskvorky1d():
    DELKA_POLE = 10
    if DELKA_POLE < 5:
        raise ValueError('Číslo hracího pole musí být větší nebo rovno 5')

    pole = DELKA_POLE * "-"
    while True:
        print(pole)
        pole = tah_hrace(pole, "x")
        print(pole)
        if vyhodnot(pole) != "-":
            break
        pole = tah_pocitace(pole, "o")
        if vyhodnot(pole) != "-":
            break

        pass
    """
    Hraje 1D piškvorky.
    """
    pass

    if vyhodnot(pole) == "x":
        print("Vyhrál člověk")
    elif vyhodnot(pole) == "o":
        print("Vyhrál počítač")
    elif vyhodnot(pole) == "!":
        print("Remíza")
Exemple #16
0
def piskvorky1d():

    delka_pole = 10
    if delka_pole <= 0:
        print('Delka pole je < 0. Hra nemuze zacit.')
        exit()

    retezec = '-' * delka_pole

    symbol_pocitace = 'o'
    symbol_hrac = 'x'

    print(retezec)

    while True:
        retezec = tah_hrace(retezec, symbol_hrac)
        print(retezec)
        vyhodnot(retezec)
        retezec = tah_pocitace(retezec, symbol_pocitace)
        print('PC zahral:')
        print(retezec)
        vyhodnot(retezec)


#piskvorky1d()
Exemple #17
0
def test_long(ai):
    """Hra na dlouhé pole"""
    for symbol in "ox":
        result = ai.tah_pocitace("-" * 100, symbol)
        assert len(result) == 100
        assert result.count("-") == 99
        assert result.count(symbol) == 1
def test_tah_pocitace_skoro_plne():
    """Tah počítače na skoro plné pole (volno uprostřed)"""
    from ai import tah_pocitace
    pole = 'xoxoxoxoxo-xoxoxoxox'
    result = tah_pocitace(pole, 'o')
    # Je jen 1 možnost kam hrát.
    assert result == 'xoxoxoxoxooxoxoxoxox'
Exemple #19
0
def test_empty(ai):
    """Hra na prázdné pole"""
    for symbol in "ox":
        result = ai.tah_pocitace("-" * 20, symbol)
        assert len(result) == 20
        assert result.count("-") == 19
        assert result.count(symbol) == 1
def test_tah_pocitace_skoro_plne_konec():
    """Tah počítače na skoro plné pole (volno na konci)"""
    from ai import tah_pocitace
    pole = 'oxoxoxoxoxoxoxoxoxo-'
    result = tah_pocitace(pole, 'x')
    # Je jen 1 možnost kam hrát.
    assert result == 'oxoxoxoxoxoxoxoxoxox'
Exemple #21
0
def test_short(ai):
    """Hra na krátké pole"""
    for symbol in "ox":
        result = ai.tah_pocitace("-" * 5, symbol)
        assert len(result) == 5
        assert result.count("-") == 4
        assert result.count(symbol) == 1
Exemple #22
0
def test_almost_full(ai):
    """Hra na skoro plné pole (volno uprostřed)"""
    pole = "xoxoxoxoxo-xoxoxoxox"
    result = ai.tah_pocitace(pole, "o")
    assert len(result) == 20
    assert result.count("x") == 10
    assert result.count("o") == 10
Exemple #23
0
def piskvorky1d(velikost, symbol_hrace):
    "Funkce volá tah hráče a tah počítače, dokud hra neskončí výhrou nebo remízou."
    akt_pole = velikost * "-"
    hra = vyhodnot(akt_pole)
    while hra == "-":  # ani vítězství, ani remíza
        akt_pole = tah_hrace(akt_pole, symbol_hrace)
        hra = vyhodnot(akt_pole)
        if hra != "-":
            break
        print("Pole vypadá takto:", akt_pole, end="\n")
        print("\nHraje počítač.\n")
        akt_pole, symbol_pocitace = tah_pocitace(akt_pole, symbol_hrace)
        print("Pole vypadá takto:", akt_pole, end="\n")
        hra = vyhodnot(akt_pole)
        print()

    if hra == symbol_hrace:
        print("Pole vypadá takto:", akt_pole, end="\n")
        vysledek = "Gratuluji! Vyhrál jsi!\n"
    elif hra == symbol_pocitace:
        vysledek = "Je mi líto. Vyhrál počítač.\n"
    elif hra == "!":
        vysledek = "Remíza.\n"
    print(vysledek)
    return vysledek
Exemple #24
0
def test_almost_full(ai):
    """Hra na skoro plné pole (volno uprostřed)"""
    pole = 'xoxoxoxoxo-xoxoxoxox'
    result = ai.tah_pocitace(pole, 'o')
    assert len(result) == 20
    assert result.count('x') == 10
    assert result.count('o') == 10
Exemple #25
0
def test_almost_full_beginning(ai):
    """Hra na skoro plné pole (volno na začátku)"""
    pole = '-xoxoxoxoxoxoxoxoxox'
    result = ai.tah_pocitace(pole, 'o')
    assert len(result) == 20
    assert result.count('x') == 10
    assert result.count('o') == 10
Exemple #26
0
def test_short(ai):
    """Hra na krátké pole"""
    for symbol in 'ox':
        result = ai.tah_pocitace('-' * 5, symbol)
        assert len(result) == 5
        assert result.count('-') == 4
        assert result.count(symbol) == 1
Exemple #27
0
def test_long(ai):
    """Hra na dlouhé pole"""
    for symbol in 'ox':
        result = ai.tah_pocitace('-' * 100, symbol)
        assert len(result) == 100
        assert result.count('-') == 99
        assert result.count(symbol) == 1
Exemple #28
0
def test_empty(ai):
    """Hra na prázdné pole"""
    for symbol in 'ox':
        result = ai.tah_pocitace('-' * 20, symbol)
        assert len(result) == 20
        assert result.count('-') == 19
        assert result.count(symbol) == 1
Exemple #29
0
def test_almost_full_end(ai):
    """Hra na skoro plné pole (2× volno na konci)"""
    pole = "xooxxooxoxoxoxooxx--"
    result = ai.tah_pocitace(pole, "x")
    assert len(result) == 20
    assert result.count("x") == 10
    assert result.count("o") == 9
Exemple #30
0
def test_almost_full_beginning(ai):
    """Hra na skoro plné pole (volno na začátku)"""
    pole = "-xoxoxoxoxoxoxoxoxox"
    result = ai.tah_pocitace(pole, "o")
    assert len(result) == 20
    assert result.count("x") == 10
    assert result.count("o") == 10
Exemple #31
0
def test_almost_full_end2(ai):
    """Hra na skoro plné pole (2× volno na konci)"""
    pole = 'xooxxooxoxoxoxooxx--'
    result = ai.tah_pocitace(pole, 'x')
    assert len(result) == 20
    assert result.count('x') == 10
    assert result.count('o') == 9
def piskvorky1d():
    """
    Hraje 1D piškvorky.
    """

    delka_pole = 21
    symbol_hrace = 'x'
    symbol_pocitace = 'o'
    pole = delka_pole * '-'
    stav_hry = '-'
    hraje_pocitac = False
    while stav_hry == '-':
        if hraje_pocitac:
            pole = tah_pocitace(pole, symbol_pocitace, symbol_hrace,
                                delka_pole)
        else:
            pole = tah_hrace(pole, symbol_hrace, delka_pole)
        print(pole)
        stav_hry = vyhodnot(pole, symbol_hrace, symbol_pocitace)
        hraje_pocitac = not hraje_pocitac

    if stav_hry == symbol_hrace:
        print('Vyhral jsi!')
    elif stav_hry == symbol_pocitace:
        print('Vyhral pocitac!')
    elif stav_hry == '!':
        print('Remiza')
    return symbol_hrace, symbol_pocitace, delka_pole
Exemple #33
0
def test_almost_full_beginning(ai):
    """Hra na skoro plné pole (volno na začátku)"""
    pole = '-xoxoxoxoxoxoxoxoxox'
    result = ai.tah_pocitace(pole, 'o')
    assert len(result) == 20, result + ': Špatná délka pole'
    assert result.count('x') == 10, result + ': Špatný počet symbolů x'
    assert result.count('o') == 10, result + ': Špatný počet symbolů o'
Exemple #34
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")
Exemple #35
0
def main():
    global vyhra
    global pole
    while vyhra == '-':
        policko = int(input('Na které políčko chceš hrát? (0-19)'))
        pole = tah_hrace(pole, policko)

        print(pole)
        print('teď hraje počítač')

        pole = tah_pocitace(pole)
        print(pole)

        vyhra = vyhodnot_stav(pole)
        print(vyhra)

    vyhra = vyhodnot_stav(pole)
    if vyhra == '!':
        print('Remíza')
    elif vyhra == 'x':
        print('Vyhrál jsi!')
    elif vyhra == 'o':
        print('Vyhrál počítač!')
    else:
        print('Máš kód na houby a koukej si tam najít chybu'
              )  # kontrolní řádka pro mě
Exemple #36
0
def test_almost_full_end(ai):
    """Hra na skoro plné pole (2× volno na konci)"""
    pole = 'xooxxooxoxoxoxooxx--'
    result = ai.tah_pocitace(pole, 'x')
    assert len(result) == 20, result + ': Špatná délka pole'
    assert result.count('x') == 10, result + ': Špatný počet symbolů x'
    assert result.count('o') == 9, result + ': Špatný počet symbolů o'
def test_tah_pocitace_prazdne():
    """Tah počítače na prázdné pole"""
    from ai import tah_pocitace
    for symbol in 'ox':
        result = tah_pocitace('-' * 20, symbol)
        assert len(result) == 20, result + ': Špatná délka pole'
        assert result.count('-') == 19, result + ': Špatný počet pomlček'
        assert result.count(symbol) == 1, result + ': Špatný počet symbolů ' + symbol
def test_tah_pocitace_skoro_plne_zacatek():
    """Tah počítače na skoro plné pole (volno na začátku)"""
    from ai import tah_pocitace
    pole = '-xoxoxoxoxoxoxoxoxox'
    result = tah_pocitace(pole, 'o')
    assert len(result) == 20, result + ': Špatná délka pole'
    assert result.count('x') == 10, result + ': Špatný počet symbolů x'
    assert result.count('o') == 10, result + ': Špatný počet symbolů o'
def test_tah_pocitace_skoro_plne_konec2():
    """Tah počítače na skoro plné pole (2× volno na konci)"""
    from ai import tah_pocitace
    pole = 'xooxxooxoxoxoxooxx--'
    result = tah_pocitace(pole, 'x')
    assert len(result) == 20, result + ': Špatná délka pole'
    assert result.count('x') == 10, result + ': Špatný počet symbolů x'
    assert result.count('o') == 9, result + ': Špatný počet symbolů o'
Exemple #40
0
def piskvorky1d(turn, game_table, user_char, pc_char):
    while not piskvorky.evaluate(game_table, user_char, pc_char, free_positions):
        if starting_user:
            game_table = piskvorky.man_turn(game_table, game_table_char, user_char, free_positions)
            game_table = tah_pocitace(game_table, game_table_char, pc_char, user_char, free_positions, hardness)
            print('{}. kolo: {} | {}'.format(turn, game_table, game_table.count(pc_char)))
        else:
            game_table = tah_pocitace(game_table, game_table_char, pc_char, user_char, free_positions, hardness)
            print('{}. kolo: {} | {}'.format(turn, game_table, game_table.count(pc_char)))
            if piskvorky.evaluate(game_table, user_char, pc_char, free_positions):
                break
            game_table = piskvorky.man_turn(game_table, game_table_char, user_char, free_positions)
        turn = turn + 1
    if piskvorky.evaluate(game_table, user_char, pc_char, free_positions) == user_char:
        print('Vyhrals')
    elif piskvorky.evaluate(game_table, user_char, pc_char, free_positions) == pc_char:
        print('Pocitac vyhral')
    else:
        print('Remiza, uz neni kam hrat')
Exemple #41
0
def piskvorky1D():
    pole = "-" * 20
    while "-" == vyhodnot(pole):
        pole = tah_hrace(pole)
        print(pole)
        pole = tah_pocitace(pole)
        print(pole)
    
    if "o"== vyhodnot(pole):
        print("Vyhral hrac")
    elif "x" == vyhodnot(pole):
        print("Vyhral pocitac")
    else:
        print("Remiza")
Exemple #42
0
def piskvorky1d(pole):
    while True:         # velmi častý případ použití while, prostě dokud podmínka bude platit!
        print("POLE:", pole)
        pole = tah_hrace(pole)
        vysledek = vyhodnot(pole)
        if vysledek == "x":
            print("Výsledný stav:", pole)
            print("Vyhrál jsi!")
            break
        elif vysledek == "o":
            print("Výsledný stav:", pole)
            print("Počítač vyhrál")
            break
        pole = ai.tah_pocitace(pole)
        vysledek = vyhodnot(pole)
        if vysledek == "x":
            print("vyhrál jsi!")
            break
        elif vysledek == "o":
            print("Počítač vyhrál")
            break
Exemple #43
0
def test_zero(ai):
    """Hra na pole nulové délky"""
    for symbol in "ox":
        with pytest.raises(rozumne_vyjimky):
            result = ai.tah_pocitace("", symbol)
def test_tah_pocitace_plne():
    """Tah počítače na plné pole musí vyvolat výjimku"""
    from ai import tah_pocitace
    for symbol in 'ox':
        with pytest.raises(ValueError):
            result = tah_pocitace('x' * 20, symbol)
Exemple #45
0
def test_ai():
    assert tah_pocitace("","x") == ""
    assert tah_pocitace("---", "x") ==  "---"
Exemple #46
0
def test_tah():
    pole = ai.tah_pocitace('--------------------')
    assert len(pole) == 20
    assert pole.count('o') == 1
    assert pole.count('-') == 19
Exemple #47
0
def test_tah_chyba():
    with pytest.raises(ValueError):
        ai.tah_pocitace('oxoxoxoxoxoxoxoxoxox')
Exemple #48
0
def test_full(ai):
    """Hra na plné pole"""
    for symbol in "ox":
        with pytest.raises(rozumne_vyjimky):
            result = ai.tah_pocitace("x" * 20, symbol)