Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from random import randint
- root = Tk()
- field = [[None] * 4 for i in range(4)]
- for i in range(4):
- Label(root, text = " ", font = "Arial 48").grid(row = 4, column = i)
- Label(root, text = " ", font = "Arial 48").grid(row = i, column = 4)
- def add_tile(event):
- i = randint(0,3)
- j = randint(0,3)
- if not field[i][j]:
- field[i][j] = Label(root, text = "2", font = "Arial 48", bg="lightblue")
- field[i][j].grid(row = i, column = j)
- else:
- add_tile(event)
- def left(event):
- for i in range(4):
- for j in range(1,4):
- if field[i][j]:
- k = j - 1
- while k >= 0 and field[i][k] == None:
- k -= 1
- if k == -1:
- field[i][j], field[i][0] = field[i][0], field[i][j]
- field[i][0].grid(row = i, column = 0)
- elif field[i][j]["text"] == field[i][k]["text"]:
- field[i][k]["text"] = str(int(field[i][k]["text"]) * 2)
- field[i][j].destroy()
- field[i][j] = None
- else:
- field[i][j], field[i][k + 1] = field[i][k + 1], field[i][j]
- field[i][k + 1].grid(row = i, column = k + 1)
- add_tile(event)
- def top(event):
- for j in range(4):
- for i in range(1,4):
- if field[i][j]:
- k = i - 1
- while k >= 0 and field[k][j] == None:
- k -= 1
- if k == -1:
- field[i][j], field[0][j] = field[0][j], field[i][j]
- field[0][j].grid(row = 0, column = j)
- elif field[i][j]["text"] == field[k][j]["text"]:
- field[k][j]["text"] = str(int(field[k][j]["text"]) * 2)
- field[i][j].destroy()
- field[i][j] = None
- else:
- field[i][j], field[k + 1][j] = field[k + 1][j], field[i][j]
- field[k + 1][j].grid(row = k + 1, column = j)
- add_tile(event)
- def right(enent):
- pass
- root.bind("<Left>", left)
- root.bind("<Up>", top)
- root.bind("<Right>", right)
- root.bind("<Down>", down)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement