예제 #1
0
def test_tah_symbol_na_spravna_pozice():
    '''
    Test funkce tah: funkce vrátí herní pole se symbolem na správné pozici
    '''
    pole = ai.tah('----------', 0, 'x')
    assert pole == 'x---------'

    pole = ai.tah('----------', 9, 'o')
    assert pole == '---------o'

    pole = ai.tah('AAAAAAAAAA', 2, 'x')
    assert pole == 'AAxAAAAAAA'
예제 #2
0
def tah_hrace(pole):
    try:
        pozice = int(input('Na jakou pozici chces hrat?: '))
    except ValueError:
        pozice = random.randrange(0, len(pole))

    symbol = 'x'
    return tah(pole, pozice, symbol)
예제 #3
0
def piskvorky1d():
    pole = "-" * 20
    print(pole)
    while True:
        zadani = False
        while zadani == False:
            vstup = input("Zadej cislo 1 - 20, kam chces hrat. ")
            cislo_indexu, zadani, hlaska = tah_hrace(pole, vstup)
            if len(hlaska) > 1:
                print(hlaska)
        pole = ai.tah(pole, cislo_indexu, "x")
        pole = ai.tah_pocitace(pole, "o")
        print(pole)
        if vyhodnot(pole) == True:  #call fce v podmince
            break
예제 #4
0
def tah_hrace(pole):
    """Zeptá se na tah a doplní do herního pole"""

    while True:
        cislo_policka = input(
            "Zadej číslo pole, na které chceš hrát, tj. 0 až 19: ")
        cislo_policka = int(cislo_policka)
        if cislo_policka > 19 or cislo_policka < 0:
            print(
                "Hahaha, asi máš nějaké větší herní pole než já. Zkus to znovu! Věřím, že teď to dáš!"
            )
        elif 0 <= cislo_policka <= 19 and pole[cislo_policka] != "-":
            print("Tam už někdo hrál, zkus to znovu")
        else:
            return ai.tah(pole, cislo_policka, "x")
예제 #5
0
def tah_hrace(pole):
    """Získá od uživatele pozici, kam chce táhnout, a vrátí pole se zaznamenaným tahem hráče."""
    while True:

        try:
            pozice = int(input('Kam chceš hrát? (0..{})'.format(len(pole) -
                                                                1)))
        except ValueError:
            print('To neni číslo!')
        else:
            if pozice < 0 or pozice >= len(pole):
                print('Nemůžeš hrát venku z pole!')
            elif pole[pozice] != '-':
                print('Tam není volno!')
            else:
                return tah(pole, pozice, 'o')
예제 #6
0
def tah_hrace(pole):
    symbol = "x"
    invalid = True
    while invalid:
        try:
            pozice = int(input("Na kterou pozici chces hrat? "))
            if pozice < 0 or pozice > len(pole) - 1:
                print("Jsi mimo (pole)...")
                invalid = True
            elif pole[pozice] != "-":
                print("To jdes s 'krizkem' po funuse!")
            else:
                invalid = False

        except ValueError:
            print("Toto neni platny vstup, vyber cislo z pole: ")

    return ai.tah(pole, pozice, symbol)
예제 #7
0
def tah_hrace(pole):
    symbol = "x"
    invalid = True
    while invalid:
        try:
            pozice = int(input("Na kterou pozici chces hrat? "))
            if pozice < 0 or pozice > len(pole)-1:
                print("Jsi mimo (pole)...")
                invalid = True
            elif pole[pozice] != "-":
                print("To jdes s 'krizkem' po funuse!")
            else:
                invalid = False

        except ValueError:
            print("Toto neni platny vstup, vyber cislo z pole: ")

    return ai.tah(pole, pozice, symbol)
예제 #8
0
def tah_hrace(pole):
    """hráč táhne na pozici, kterou si vybral"""

    while True:
        #zadáme pozici podle toho, jak je velké pole. uděláme to po lidsku od 1.
        position = input("Na jaké pozici chceš táhnout? 1-{0} ".format(ai.delka_pole))

        try:
            pozice = int(position) - 1
        except ValueError:
            print("Mělo by to být číslo...")
        else:

            if (pozice < 0) or (pozice > ai.delka_pole):
                print("Má to být číslo od 1 do {0}".format(ai.delka_pole))
            elif pole[pozice] != "-":
                print("Tam už někdo hrál.")
            else:
                return ai.tah(pole, pozice, 'H')
예제 #9
0
def tah_hrace(pole, symbol_hrac, hrac_zadal):
    '''
    Vrátí herní pole po tahu hráče.
    '''
    if len(pole) == 0 or pole.count('-') == 0 or symbol_hrac not in ['x', 'o']:
        raise ValueError(
            'Chyba: Bylo zadáno pole s délkou O, nebo je pole plné, nebo byl zadán jiný herní symbol.'
        )
    try:
        hrac_zadal = int(hrac_zadal)
        if pole[hrac_zadal - 1] == '-':
            return tah(pole, hrac_zadal - 1, symbol_hrac), 'ok'
        else:
            return pole, 'Pole {} je obsazené, vyber si jiné'.format(
                hrac_zadal)
    except ValueError:
        return pole, 'Nezadal jsi číslo, ale text, zkus to znovu.'
    except IndexError:
        return pole, 'Nezadal jsi číslo od 1 do {}, zkus to znovu.'.format(
            len(pole))
예제 #10
0
def test_tah():
    assert tah("--------------------", 5, 'o') == '-----o--------------'
예제 #11
0
def test_tah():
    assert ai.tah("----------------K---", 4,
                  "N") == "----N-----------K---"  # poz test
    assert ai.tah("--------------------", 12,
                  "C") == "------------C-------"  # poz test
예제 #12
0
def test_tah_vyjimka():
    '''
    Test funkce tah: funkce vyvolá výjimku:
    --> ValueError - když dostane prázné pole nebo když jako symbol dostane
                    více znaků,
    --> IndexError - když má zapsat symbol na pozici mimo pole, když
                    jako pozice INT,
    --> TypeError - když dostane jako symbol, který má zapsat INT místo STR
    '''
    with pytest.raises(ValueError):
        ai.tah('', 0, 'x')
        ai.tah('---', 0, 'abc')

    with pytest.raises(IndexError):
        ai.tah('---', 10, 'x')
        ai.tah('---------', 'A', 'x')
        ai.tah('---------', 10.5, 'x')

    with pytest.raises(TypeError):
        ai.tah('---------', 0, 5)
        ai.tah('---------', 0, 10.5)