Tic Tac Toe Game

 this is a tic tac toe game using python 




from tkinter import *

import random


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()

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()

Comments