Untitled
unknown
plain_text
4 years ago
3.6 kB
7
Indexable
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="blue")
buttons[row][1].config(bg="blue")
buttons[row][2].config(bg="blue")
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="blue")
buttons[1][column].config(bg="blue")
buttons[2][column].config(bg="blue")
return True
if buttons[0][0]["text"] == buttons[1][1]["text"] == buttons[2][2]["text"] != "":
buttons[0][0].config(bg="blue")
buttons[1][1].config(bg="blue")
buttons[2][2].config(bg="blue")
return True
elif buttons[0][2]["text"] == buttons[1][1]["text"] == buttons[2][0]["text"] != "":
buttons[0][2].config(bg="blue")
buttons[1][1].config(bg="blue")
buttons[2][0].config(bg="blue")
return True
elif empty_space() is False:
for row in range(3):
for column in range(3):
buttons[row][column].config(bg="red")
return "Tie"
else:
return False
def empty_space():
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")
icon = PhotoImage(file="R.png")
window.iconphoto(True, icon)
font = (("Consolas",40))
players = ["X", "O"]
player = random.choice(players)
buttons = [[0,0,0],
[0,0,0],
[0,0,0]]
label = Label(window, text=player + " turn", font=font)
label.pack(side="top")
restart_btn = Button(window, text="Restart", font=font, command=new_game)
restart_btn.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=font, width=6, height=2,
command=lambda row=row, column=column: next_turn(row, column))
buttons[row][column].grid(row=row, column=column)
window.mainloop()Editor is loading...