Allena_Gorskaya

Programma 1

Mar 13th, 2019
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.01 KB | None | 0 0
  1. #
  2. from tkinter import *
  3. from random import *
  4. root = Tk()
  5.  
  6. count = 0
  7. gameOver = False
  8.  
  9.  
  10. A = [
  11.     [0, 0, 0],
  12.     [0, 0, 0],
  13.     [0, 0, 0]
  14.     ]
  15.  
  16. def check(A, x):
  17.     return sum(A[0]) == x or sum(A[1]) == x or sum(A[2]) == x or (A[0][0] + A[1][0] + A[2][0] == x) or (A[0][1] + A[1][1] + A[2][1] == x) or (A[0][2] + A[1][2] + A[2][2] == x) or (A[0][0] + A[1][1] + A[2][2] == x) or (A[2][0] + A[1][1] + A[0][2] == x)
  18.  
  19. def on_click(event):
  20.     global tmp
  21.     global count
  22.     global gameOver
  23.     t = event.widget
  24.     i = int(t.grid_info()["row"])
  25.     j = int(t.grid_info()["column"])
  26.    
  27.     if gameOver == False and count < 9:
  28.         if  t.cget('text') == '':
  29.             if count % 2 == 0:
  30.                 t.config(text = 'X')
  31.                 A[i][j] = 1
  32.             else:
  33.                 t.config(text = 'O')
  34.                 A[i][j] = 10
  35.             count += 1
  36.            
  37.         if count % 2 == 1: # был ход крестика
  38.             #проверка!
  39.             if check(A, 3):
  40.                 tmp.config(text = 'Победа крестика!')
  41.                 gameOver = True
  42.         else:# был ход нолика
  43.             #проверка!
  44.             if check(A, 30):
  45.                 tmp.config(text = 'Победа нолика!')
  46.                 gameOver = True
  47.         if count == 9 and gameOver == False:
  48.             tmp.config(text = 'Ничья')
  49.             gameOver = True
  50.    
  51. def create_field():
  52.     global tmp
  53.     for i in range(3):
  54.         for j in range(3):
  55.             if (i + j) % 2 == 0:
  56.                 square = Label(text = '', bg = 'skyblue', width = 2, font = 'Verdana 24')
  57.             else:
  58.                 square = Label(text = '', bg = 'blue', width = 2, font = 'Verdana 24')
  59.             square.bind('<Button-1>', on_click)
  60.             square.grid(row = i, column = j)
  61.        
  62.  
  63.     tmp = Label(text = 'Начнем игру!', bg = 'yellow', fg = 'green')
  64.     tmp.grid(row = 3, columnspan = 3, sticky = W + E)
  65.  
  66. create_field()
  67.  
  68. root.mainloop()
Add Comment
Please, Sign In to add comment