From b4fa6a518073a1f7f4dae870f88dcadf41bcbce6 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 21 Jan 2021 19:36:41 +0100 Subject: [PATCH] Fixed bug that didn't write the player's input --- piskvorky.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/piskvorky.py b/piskvorky.py index 80de2aa..109b50a 100644 --- a/piskvorky.py +++ b/piskvorky.py @@ -11,17 +11,15 @@ def print_board(): # Funkce vytiskne pole v momentálním stavu hry def player(x_or_y): # Input hráče, ve stylu X_Y souřadnice, mělo by mít 3 charaktery a to čísla od 1 do 3 - player_move = input("Zvol si řadu a sloupec ") - while 3 != len(player_move): # Zda-li má hráč 3 charaktery - print("špatný počet znaků") - player_move = input("Zvol si řadu a sloupec ") - else: + repeater = True # Pokud to zachytí chybu/obsazené pole, loop poběží znovu + while repeater: try: - if board[int(player_move[0]) - 1][int(player_move[2]) - 1] == " ": # Funguje jen pokud je pole prázdné - board[int(player_move[0]) - 1][int(player_move[2]) - 1] = x_or_y - else: + player_move = input("Zvol si řadu a sloupec ") + if 3 != len(player_move) or board[int(player_move[0]) - 1][int(player_move[2]) - 1] != " ": # Zda-li má hráč 3 charaktery print("Možnost nelze vybrat") - player_move = input("Zvol si řadu a sloupec ") + else: + repeater = False + board[int(player_move[0]) - 1][int(player_move[2]) - 1] = x_or_y except: print("Možnost nelze vybrat") player_move = input("Zvol si řadu a sloupec ") @@ -35,12 +33,10 @@ def check_win(): # Kontrola, jestli některý z hráčů nevyhrál kolo if board[0][i] in player_marks and board[1][i] in player_marks and board[2][i] in player_marks: print(f"Vyhrál hráč {board[0][i]}") return True - if board[0][0] in player_marks and board[1][1] in player_marks and board[2][ - 2] in player_marks: # Kontrola diagonaly + if board[0][0] in player_marks and board[1][1] in player_marks and board[2][2] in player_marks: # Kontrola diagonaly print(f"Vyhrál hráč {board[0][i]}") # z prava do leva return True - elif board[0][2] in player_marks and board[1][1] in player_marks and board[2][ - 0] in player_marks: # Kontrola diagonaly + elif board[0][2] in player_marks and board[1][1] in player_marks and board[2][0] in player_marks: # Kontrola diagonaly print(f"Vyhrál hráč {board[0][i]}") # z leva do prava return True return False