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'
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)
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
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")
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')
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)
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)
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')
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))
def test_tah(): assert tah("--------------------", 5, 'o') == '-----o--------------'
def test_tah(): assert ai.tah("----------------K---", 4, "N") == "----N-----------K---" # poz test assert ai.tah("--------------------", 12, "C") == "------------C-------" # poz test
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)