Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import tkinter
- from tkinter import *
- from tkinter import ttk
- from tkinter import messagebox
- root = Tk()
- root.title("Minesweeper")
- root.columnconfigure(0, weight=1)
- root.rowconfigure(0, weight=1)
- mainframe = ttk.Frame(root, padding="12 12 12 12")
- mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
- def right_click():
- print("D")
- def label_in(label):
- global label_list
- global keep_going
- row = label.widget.grid_info()["row"]
- column = label.widget.grid_info()["column"]
- number = row * columns + column
- counter = 0
- if str(num_array[number]) == "X" and keep_going:
- for i in range(len(label_list)):
- if num_array[i] == "X":
- label_list[i].configure(text = " X", relief = "sunken")
- ttk.Label(mainframe, text= "You lost! Try again").grid(column= 0, row=21, columnspan=20)
- keep_going = False
- elif str(num_array[number]) != "X" and keep_going:
- label.widget.configure(text = " " + str(num_array[number]), relief = "sunken")
- label_list[number] = "FIN"
- for i in range(len(label_list)):
- if label_list[i] != "FIN":
- counter +=1
- if counter == bomb_amount:
- for i in range(len(label_list)):
- if num_array[i] == "X":
- label_list[i].configure(text = " X", relief = "sunken")
- ttk.Label(mainframe, text= "You Won! Play again").grid(column= 0, row=5, columnspan= 20)
- keep_going = False
- def board_create(num_array):
- global label_list
- label_list = []
- count = 0
- column = 0
- row = 0
- for i in range(len(num_array)):
- if column == (columns):
- column = 0
- row += 1
- # label_creation = ttk.Label(mainframe, text = " ", relief = "raised", width= 3)
- label_list.append(ttk.Label(mainframe, text = " ", relief = "raised", width= 3))
- label_list[i].grid(column = column, row = row)
- column += 1
- count+=1
- label_list[i].bind("<Button-1>", label_in)
- label_list[i].bind("<Button-2>", right_click)
- def get_array():
- rowxcolumn = rows * columns
- number_array = [0]*rowxcolumn
- for i in range(bomb_amount):
- bomb = random.randint(1,len(number_array) -1)
- if number_array[bomb] != "X":
- number_array[bomb] = "X"
- double_check = 1
- count = 0
- [print(number_array[rowxcolumn-columns-1])]
- print(len(number_array))
- for i in range(len(number_array)):
- if count == 0 and number_array[count] != "X" and number_array[count] < double_check:
- if number_array[count+1] == "X":
- number_array[count] += 1
- if number_array[count+columns] == "X":
- number_array[count] += 1
- if number_array[count+columns+1] == "X":
- number_array[count] += 1
- if count == (columns) and number_array[count] != "X" and number_array[count] < double_check :
- if number_array[count-1] == "X":
- number_array[count] += 1
- if number_array[count+columns] == "X":
- number_array[count] += 1
- if number_array[count+columns-1] == "X":
- number_array[count] += 1
- if count == (rowxcolumn-1) and number_array[count] != "X" and number_array[count] < double_check :
- if number_array[count-1] == "X":
- number_array[count] += 1
- if number_array[count-columns] == "X":
- number_array[count] += 1
- if number_array[count-columns-1] == "X":
- number_array[count] += 1
- if count == (rowxcolumn-columns)and number_array[count] != "X" and number_array[count] < double_check:
- if number_array[count+1] == "X":
- number_array[count] += 1
- if number_array[count-columns] == "X":
- number_array[count] += 1
- if number_array[count-columns+1] == "X":
- number_array[count] += 1
- if count < (columns) and number_array[count] != "X" and not(count == columns-1) and not(count == rowxcolumn-1) and number_array[count] < double_check and (not count == 0):
- if number_array[count-1] == "X":
- number_array[count] += 1
- if number_array[count+1] == "X":
- number_array[count] += 1
- if number_array[count+columns] == "X":
- number_array[count] += 1
- if number_array[count+columns+1] == "X":
- number_array[count] += 1
- if number_array[count+columns-1] == "X":
- number_array[count] += 1
- if count > (rowxcolumn-columns-1) and number_array[count] != "X" and not(count == rowxcolumn-1) and not(count == rowxcolumn-columns) and number_array[count] < double_check :
- if number_array[count-1] == "X":
- number_array[count] += 1
- if number_array[count+1] == "X":
- number_array[count] += 1
- if number_array[count-columns] == "X":
- number_array[count] += 1
- if number_array[count-columns-1] == "X":
- number_array[count] += 1
- if number_array[count-columns+1] == "X":
- number_array[count] += 1
- if count % (columns) == (columns -1) and not(count == 0) and not(count == columns-1) and not(count == rowxcolumn-1) and not(count == rowxcolumn-columns) and number_array[count] != "X" and number_array[count] < double_check :
- if number_array[count-1] == "X":
- number_array[count] += 1
- if number_array[count+columns] == "X":
- number_array[count] += 1
- if number_array[count-columns] == "X":
- number_array[count] += 1
- if number_array[count-columns-1] == "X":
- number_array[count] += 1
- if number_array[count+columns-1] == "X":
- number_array[count] += 1
- if count % (columns) == 0 and not(count == 0) and not(count == columns-1) and not(count == rowxcolumn-1) and not(count == rowxcolumn-columns-1) and number_array[count] != "X" and count < (rowxcolumn-columns-1) and number_array[count]< double_check:
- if number_array[count+1] == "X":
- number_array[count] += 1
- if number_array[count+columns] == "X":
- number_array[count] += 1
- if number_array[count-columns] == "X":
- number_array[count] += 1
- if number_array[count-columns+1] == "X":
- number_array[count] += 1
- if number_array[count+columns+1] == "X":
- number_array[count] += 1
- if not(count % (columns) == 0) and not(count%columns == (columns-1)) and count > columns and count < (rowxcolumn-columns-1) and number_array[count] != "X" and number_array[count] < double_check:
- if number_array[count+1] == "X":
- number_array[count] += 1
- if number_array[count-1] == "X":
- number_array[count] += 1
- if number_array[count+columns] == "X":
- number_array[count] += 1
- if number_array[count-columns] == "X":
- number_array[count] += 1
- if number_array[count-columns+1] == "X":
- number_array[count] += 1
- if number_array[count-columns-1] == "X":
- number_array[count] += 1
- if number_array[count+columns+1] == "X":
- number_array[count] += 1
- if number_array[count+columns-1] == "X":
- number_array[count] += 1
- count += 1
- double_check += 1
- for i in range(len(number_array)):
- print(str(number_array[i]), end = " ")
- if i % columns == columns - 1:
- print("")
- count = 0
- return number_array
- bomb_amount = 30
- rows = 20
- columns = 20
- num_array = get_array()
- label_list = []
- board_create(num_array)
- keep_going = True
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement