Advertisement
snowden_web

Untitled

Aug 28th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.30 KB | None | 0 0
  1. from tkinter import *
  2. from random import randint
  3.  
  4. root = Tk()
  5.  
  6. field = [[None] * 4 for i in range(4)]
  7.  
  8. for i in range(4):
  9.     Label(root, text = "        ", font = "Arial 48").grid(row = 4, column = i)
  10.     Label(root, text = " ", font = "Arial 48").grid(row = i, column = 4)
  11.    
  12.  
  13. def add_tile(event):
  14.     i = randint(0,3)
  15.     j = randint(0,3)
  16.     if not field[i][j]:
  17.         field[i][j] = Label(root, text = "2", font = "Arial 48", bg="lightblue")
  18.         field[i][j].grid(row = i, column = j)
  19.     else:
  20.         add_tile(event)
  21.        
  22. def left(event):
  23.     for i in range(4):
  24.         for j in range(1,4):
  25.             if field[i][j]:
  26.                 k = j - 1
  27.                 while k >= 0 and field[i][k] == None:
  28.                     k -= 1
  29.                 if k == -1:
  30.                     field[i][j], field[i][0] = field[i][0], field[i][j]
  31.                     field[i][0].grid(row = i, column = 0)
  32.                 elif field[i][j]["text"] == field[i][k]["text"]:
  33.                     field[i][k]["text"] = str(int(field[i][k]["text"]) * 2)
  34.                     field[i][j].destroy()
  35.                     field[i][j] = None
  36.                 else:
  37.                     field[i][j], field[i][k + 1] = field[i][k + 1], field[i][j]
  38.                     field[i][k + 1].grid(row = i, column = k + 1)
  39.            
  40.     add_tile(event)
  41.    
  42.    
  43. def top(event):
  44.     for j in range(4):
  45.         for i in range(1,4):
  46.             if field[i][j]:
  47.                 k = i - 1
  48.                 while k >= 0 and field[k][j] == None:
  49.                     k -= 1
  50.                 if k == -1:
  51.                     field[i][j], field[0][j] = field[0][j], field[i][j]
  52.                     field[0][j].grid(row = 0, column = j)
  53.                 elif field[i][j]["text"] == field[k][j]["text"]:
  54.                     field[k][j]["text"] = str(int(field[k][j]["text"]) * 2)
  55.                     field[i][j].destroy()
  56.                     field[i][j] = None
  57.                 else:
  58.                     field[i][j], field[k + 1][j] = field[k + 1][j], field[i][j]
  59.                     field[k + 1][j].grid(row = k + 1, column = j)
  60.            
  61.     add_tile(event)
  62.        
  63.        
  64. def right(enent):
  65.     pass
  66.  
  67.  
  68. root.bind("<Left>", left)
  69. root.bind("<Up>", top)
  70. root.bind("<Right>", right)
  71. root.bind("<Down>", down)
  72. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement