diff --git a/piskvorky.py b/piskvorky.py index 38ece98..badb395 100644 --- a/piskvorky.py +++ b/piskvorky.py @@ -1,41 +1,66 @@ -board = [[" ", " ", " "],[" ", " ", " "],[" ", " ", " "]] +board = [[" ", " ", " "], [" ", " ", " "], [" ", " ", " "]] player_marks = ["x", "y"] -def print_board(board): - print(f""" 1 2 3 + +def print_board(): + print(f""" 1 2 3 1 |{board[0][0]}|{board[0][1]}|{board[0][2]}| 2 |{board[1][0]}|{board[1][1]}|{board[1][2]}| 3 |{board[2][0]}|{board[2][1]}|{board[2][2]}| """) + def player(x_or_y): - player_move = input("Zvol si radu a sloupec ") - while length(player_move) != 3: - print("spatny pocet znaku") - else: - try: - if board[int(player_move[0]) - 1][int(player_move[2]) - 1] == " ": - board[int(player_move[0]) - 1][int(player_move[2]) - 1] = x_or_y - else: - print("Moznost nelze vybrat") - player_move = input("Zvol si radu a sloupec ") - except: - print("Moznost nelze vybrat") - player_move = input("Zvol si radu a sloupec ") + player_move = input("Zvol si radu a sloupec ") + while 3 != len(player_move): + print("spatny pocet znaku") + player_move = input("Zvol si radu a sloupec ") + else: + try: + if board[int(player_move[0]) - 1][int(player_move[2]) - 1] == " ": + board[int(player_move[0]) - 1][int(player_move[2]) - 1] = x_or_y + else: + print("Moznost nelze vybrat") + player_move = input("Zvol si radu a sloupec ") + except: + print("Moznost nelze vybrat") + player_move = input("Zvol si radu a sloupec ") + def check_win(): - for i in range(3): #Kontrola sloupcu - if board[i][0] in player_marks and board[i][1] in player_marks and board[i][2] in player_marks: - print(f"Vyhral hrac {board[i][0]}") - return False - for i in range(3): # Kontrola rad - if board[0][i] in player_marks and board[1][i] in player_marks and board[2][i] in player_marks: - print(f"Vyhral hrac {board[0][i]}") - return False - if + for i in range(3): # Kontrola sloupcu + if board[i][0] in player_marks and board[i][1] in player_marks and board[i][2] in player_marks: + print(f"Vyhral hrac {board[i][0]}") + return False + for i in range(3): # Kontrola rad + if board[0][i] in player_marks and board[1][i] in player_marks and board[2][i] in player_marks: + print(f"Vyhral hrac {board[0][i]}") + return False + 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"Vyhral hrac {board[0][i]}") # z prava do leva + return False + 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"Vyhral hrac {board[0][i]}") # z leva do prava + return False + return True x_or_y = "x" -player(x_or_y) -print_board(board) -check_win() + +rounds = 0 + + +def main(rounds): + while rounds < 9: + if rounds % 2 == 0: + x_or_y = "x" + else: + x_or_y = "o" + print_board() + player(x_or_y) + rounds += 1 + if not check_win(): + break +main(rounds) \ No newline at end of file