Untitled

 avatar
unknown
plain_text
18 days ago
3.9 kB
0
Indexable
from tkinter import *
import random
def tic_tac_toe_game():
    def next_turn(row, column):
        global player
        if buttons[row][column]['text'] == "" and check_winner() is False:

            if player == players[0]:

                buttons[row][column]['text'] = player

                if check_winner() is False:
                    player = players[1]
                    label.config(text=(players[1]+" turn"))

                elif check_winner() is True:
                    label.config(text=(players[0]+" wins"))

                elif check_winner() == "Tie":
                    label.config(text="Tie!")

            else:

                buttons[row][column]['text'] = player

                if check_winner() is False:
                    player = players[0]
                    label.config(text=(players[0]+" turn"))

                elif check_winner() is True:
                    label.config(text=(players[1]+" wins"))

                elif check_winner() == "Tie":
                    label.config(text="Tie!")

    def check_winner():

        for row in range(3):
            if buttons[row][0]['text'] == buttons[row][1]['text'] == buttons[row][2]['text'] != "":
                buttons[row][0].config(bg="green")
                buttons[row][1].config(bg="green")
                buttons[row][2].config(bg="green")
                return True

        for column in range(3):
            if buttons[0][column]['text'] == buttons[1][column]['text'] == buttons[2][column]['text'] != "":
                buttons[0][column].config(bg="green")
                buttons[1][column].config(bg="green")
                buttons[2][column].config(bg="green")
                return True

        if buttons[0][0]['text'] == buttons[1][1]['text'] == buttons[2][2]['text'] != "":
            buttons[0][0].config(bg="green")
            buttons[1][1].config(bg="green")
            buttons[2][2].config(bg="green")
            return True

        elif buttons[0][2]['text'] == buttons[1][1]['text'] == buttons[2][0]['text'] != "":
            buttons[0][2].config(bg="green")
            buttons[1][1].config(bg="green")
            buttons[2][0].config(bg="green")
            return True

        elif empty_spaces() is False:

            for row in range(3):
                for column in range(3):
                    buttons[row][column].config(bg="yellow")
            return "Tie"

        else:
            return False


    def empty_spaces():

        spaces = 9

        for row in range(3):
            for column in range(3):
                if buttons[row][column]['text'] != "":
                    spaces -= 1

        if spaces == 0:
            return False
        else:
            return True

    def new_game():

        global player

        player = random.choice(players)

        label.config(text=player+" turn")

        for row in range(3):
            for column in range(3):
                buttons[row][column].config(text="",bg="#F0F0F0")


    window = Tk()tic_tac_toe_game()
    window.title("Tic-Tac-Toe")
    players = ["x","o"]
    player = random.choice(players)
    buttons = [[0,0,0],
               [0,0,0],
               [0,0,0]]

    label = Label(text=player + " turn", font=('consolas',40))
    label.pack(side="top")

    reset_button = Button(text="restart", font=('consolas',20), command=new_game)
    reset_button.pack(side="top")

    frame = Frame(window)
    frame.pack()

    for row in range(3):
        for column in range(3):
            buttons[row][column] = Button(frame, text="",font=('consolas',40), width=5, height=2,
                                          command= lambda row=row, column=column: next_turn(row,column))
            buttons[row][column].grid(row=row,column=column)

    window.mainloop()
tic_tac_toe_game()
Leave a Comment