# Zdar, tady Lukáš # Taky je v tvém kódu přímo vidět nějaký ten vliv toho C# nebo tak něčeho, # protože pojmenováváš věci s velkým písmenem na začátku. Dále jsi také s pojmenováváním trošku nekonzistentní. # V Pythonu jsou zvyky trochu jiné, ale chyba to samozřejmě není. # Dobrý, akorát k tomu mám jednu připomínku – # tady ukládáš data rovnou v jejich výsledném formátu, ale smysluplnější je ukládat # data v nějakém jednodušším formátu, který je pak před vypsáním do výsledného formátu převeden, # protože takto musíš porovnávat políčka s jejich výslednými formáty board = ["[ ]", "[ ]", "[ ]", "[ ]", "[ ]", "[ ]", "[ ]", "[ ]", "[ ]"] player_2 = False Hra = True kolo = 1 winner_2 = None # Lukáš - Docela fajn, vypadá to čitelně #spuští funkce ve správném pořadí def tah(): Tah = Input_pos() while Input_chack(Tah) == False: # gay protoze input chack vraci bool - Dawid Tah = Input_pos() Move(Tah) Show() #zobarí hrací desku def Show(): # Lukáš - bylo by lepší, kdyby Show bralo board jako argument print(board[0], board[1], board[2], sep="") print(board[3], board[4], board[5], sep="") print(board[6], board[7], board[8], sep="") print("_________") #vrátí array s xy informací o tahu def Input_pos(): player = int(player_2) + 1 print("hráč", player, "hraje") vert = int(input("zadej sloupec (max 3)")) while vert > 3: print("vstup nesmí být větší než 3") vert = int(input("zadej sloupec (max 3)")) hor = int(input("zadej řádek (max 3)")) while hor > 3: hor = int(input("zadej řádek (max 3)")) print("vstup nesmí být větší než 3") tah = [vert, hor] return To_Index(tah) #změní políčko # Lukáš - tady bereš tah jako argument, ale proč ne board? je to pak takový podivně globální def Move(tah): if Input_chack(tah): if player_2: x = "O" else: x = "X" board[tah] = "[" + x + "]" else: pass # Lukáš - a v tvém komentáři je děsivá pravopisná chyba :^) # Lukáš - i programátor musí umět pravopis, i když všichni už víme, že programovací jazyky dávají mnohem větší smysl # Lukáš - (jedna kamarádka mi pořád opravuje chyby, takže už mi to teď taky dost vadí) #skontroluje platnost vstupu def Input_chack(index): if not board[index] == "[ ]": print("pole je již obsazené") return Falsetsko else: return True #převede array s xy pozicí do indexu def To_Index(tah): index = tah[0] + ((tah[1] - 1) * 3) - 1 return index # Lukáš - tohle by se dalo udělat za pomocí cyklů mnohem snadněji, příště to zkus nějak chytřeji # Lukáš - jakmile začneš psát kód, který se nějak podivně opakuje, tak zkus popřemýšlet, jak by to šlo lépe # Lukáš - taky by bylo lepší, kdyby Chack bralo board jako argument, je to flexibilnější a znovu použitelné #skontroluje zde hráč nevyhrál # Lukáš - další děsivá pravopisná chyba def Chack(): if board[0] == board[1] and board[0] == board[2] and not board[0] == "[ ]": #123 if board[0] == "[X]": return True else: return False elif board[3] == board[4] and board[3] == board[5] and not board[3] == "[ ]": #456 if board[3] == "[X]": return True else: return False elif board[6] == board[7] and board[6] == board[8] and not board[6] == "[ ]": #789 if board[6] == "[X]": return True else: return False elif board[0] == board[3] and board[0] == board[6] and not board[0] == "[ ]": #147 if board[0] == "[X]": return True else: return False elif board[1] == board[4] and board[1] == board[7] and not board[1] == "[ ]": #258 if board[1] == "[X]": return True else: return False elif board[2] == board[5] and board[2] == board[8] and not board[2] == "[ ]": #369 if board[2] == "[X]": return True else: return False elif board[0] == board[4] and board[0] == board[8] and not board[0] == "[ ]": #159 if board[0] == "[X]": return True else: return False elif board[2] == board[4] and board[2] == board[6] and not board[2] == "[ ]": #357 if board[2] == "[X]": return True else: return False else: return None Show() while Hra: tah() if not Chack() == None: # Lukáš - tohle je neskutečně matoucí, nechápu proč ti Chack vrací None nebo bool a ne True/False, to by bylo mnohem srozumitelnější # Lukáš - ty dokonce ten možný True/False výsledek z Chack ani nevyužiješ # Lukáš - mimochodem, když porovnáváš == None, tak je vhodnější použít is None (porovnání identity objektu), protože None existuje pouze jenom jedno pro celý vesmír Hra = False if player_2: print("Hráč 2 wyhrál v kole", kolo) else: print("Hráč 1 wyhrál v kole", kolo) player_2 = not player_2 # Lukáš - inteligentní kolo += 1 if kolo > 8: # Lukáš - taky inteligentní Hra = False print("Hra skončila bez výsledku")