Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter as tk
- import random
- def init_grid():
- the_grid = []
- for i in range(15):
- for ii in range(15):
- the_grid.append(create_button(ii / 40 + 0.3, i / 20 + 0.1))
- return the_grid
- def init_mines(grid):
- mines = []
- for i in range(25):
- mine = random.choice(grid)
- mines.append(mine)
- mine_config(mine)
- return mines
- def init_spaces(grid, mine_lst):
- up_side = list(range(15))
- down_side = list(range(210, 225))
- left_side = list(range(0, 211, 15))
- right_side = list(range(14, 225, 15))
- for space in grid:
- if space in mine_lst:
- continue
- else:
- ind = grid.index(space)
- num_adj_mine = 0
- if ind == 0:
- for near_space in [grid[ind + 1], grid[ind + 15], grid[ind + 16]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind == 14:
- for near_space in [grid[ind - 1], grid[ind + 15], grid[ind + 14]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind == 210:
- for near_space in [grid[ind + 1], grid[ind - 15], grid[ind - 14]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind == 224:
- for near_space in [grid[ind - 1], grid[ind - 15], grid[ind - 16]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind in up_side:
- for near_space in [grid[ind - 1], grid[ind + 1], grid[ind + 15], grid[ind + 14], grid[ind + 16]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind in down_side:
- for near_space in [grid[ind - 1], grid[ind + 1], grid[ind - 15], grid[ind - 14], grid[ind - 16]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind in left_side:
- for near_space in [grid[ind + 15], grid[ind + 1], grid[ind - 15], grid[ind - 14], grid[ind + 16]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- elif ind in right_side:
- for near_space in [grid[ind + 15], grid[ind - 1], grid[ind - 15], grid[ind + 14], grid[ind - 16]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- else:
- for near_space in [grid[ind + 1], grid[ind - 1], grid[ind + 15], grid[ind + 16], grid[ind + 14], grid[ind - 16],
- grid[ind - 15], grid[ind - 14]]:
- if near_space in mine_lst:
- num_adj_mine += 1
- if num_adj_mine == 0:
- pass
- else:
- space['text'] = str(num_adj_mine)
- def init_game():
- grid_lst = init_grid()
- mines_lst = init_mines(grid_lst)
- init_spaces(grid_lst, mines_lst)
- def mine_config(a_mine):
- a_mine['command'] = lambda: mine_c(a_mine)
- def mine_c(but):
- but.configure(text='M', bg='red')
- def create_button(relx, rely):
- butt = tk.Button(game, height=2, width=4)
- butt.place(relx=relx, rely=rely)
- return butt
- game = tk.Tk()
- game.geometry('1920x1080')
- init_game()
- game.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment