Advertisement
Guest User

Minesweeper Game

a guest
May 2nd, 2021
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.68 KB | None | 0 0
  1. import random
  2. import tkinter
  3. from tkinter import *
  4. from tkinter import ttk
  5. from tkinter import messagebox
  6.  
  7. root = Tk()
  8. root.title("Minesweeper")
  9. root.columnconfigure(0, weight=1)
  10. root.rowconfigure(0, weight=1)
  11.  
  12. mainframe = ttk.Frame(root, padding="12 12 12 12")
  13. mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
  14.  
  15.  
  16. def right_click():
  17. print("D")
  18.  
  19.  
  20. def label_in(label):
  21. global label_list
  22. global keep_going
  23. row = label.widget.grid_info()["row"]
  24. column = label.widget.grid_info()["column"]
  25. number = row * columns + column
  26. counter = 0
  27. if str(num_array[number]) == "X" and keep_going:
  28. for i in range(len(label_list)):
  29. if num_array[i] == "X":
  30. label_list[i].configure(text = " X", relief = "sunken")
  31. ttk.Label(mainframe, text= "You lost! Try again").grid(column= 0, row=21, columnspan=20)
  32. keep_going = False
  33. elif str(num_array[number]) != "X" and keep_going:
  34. label.widget.configure(text = " " + str(num_array[number]), relief = "sunken")
  35. label_list[number] = "FIN"
  36. for i in range(len(label_list)):
  37. if label_list[i] != "FIN":
  38. counter +=1
  39. if counter == bomb_amount:
  40. for i in range(len(label_list)):
  41. if num_array[i] == "X":
  42. label_list[i].configure(text = " X", relief = "sunken")
  43. ttk.Label(mainframe, text= "You Won! Play again").grid(column= 0, row=5, columnspan= 20)
  44. keep_going = False
  45.  
  46.  
  47. def board_create(num_array):
  48. global label_list
  49. label_list = []
  50. count = 0
  51. column = 0
  52. row = 0
  53. for i in range(len(num_array)):
  54. if column == (columns):
  55. column = 0
  56. row += 1
  57. # label_creation = ttk.Label(mainframe, text = " ", relief = "raised", width= 3)
  58. label_list.append(ttk.Label(mainframe, text = " ", relief = "raised", width= 3))
  59. label_list[i].grid(column = column, row = row)
  60. column += 1
  61. count+=1
  62. label_list[i].bind("<Button-1>", label_in)
  63. label_list[i].bind("<Button-2>", right_click)
  64.  
  65.  
  66. def get_array():
  67. rowxcolumn = rows * columns
  68. number_array = [0]*rowxcolumn
  69. for i in range(bomb_amount):
  70. bomb = random.randint(1,len(number_array) -1)
  71. if number_array[bomb] != "X":
  72. number_array[bomb] = "X"
  73. double_check = 1
  74. count = 0
  75. [print(number_array[rowxcolumn-columns-1])]
  76. print(len(number_array))
  77. for i in range(len(number_array)):
  78. if count == 0 and number_array[count] != "X" and number_array[count] < double_check:
  79. if number_array[count+1] == "X":
  80. number_array[count] += 1
  81. if number_array[count+columns] == "X":
  82. number_array[count] += 1
  83. if number_array[count+columns+1] == "X":
  84. number_array[count] += 1
  85. if count == (columns) and number_array[count] != "X" and number_array[count] < double_check :
  86. if number_array[count-1] == "X":
  87. number_array[count] += 1
  88. if number_array[count+columns] == "X":
  89. number_array[count] += 1
  90. if number_array[count+columns-1] == "X":
  91. number_array[count] += 1
  92. if count == (rowxcolumn-1) and number_array[count] != "X" and number_array[count] < double_check :
  93. if number_array[count-1] == "X":
  94. number_array[count] += 1
  95. if number_array[count-columns] == "X":
  96. number_array[count] += 1
  97. if number_array[count-columns-1] == "X":
  98. number_array[count] += 1
  99. if count == (rowxcolumn-columns)and number_array[count] != "X" and number_array[count] < double_check:
  100. if number_array[count+1] == "X":
  101. number_array[count] += 1
  102. if number_array[count-columns] == "X":
  103. number_array[count] += 1
  104. if number_array[count-columns+1] == "X":
  105. number_array[count] += 1
  106. 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):
  107. if number_array[count-1] == "X":
  108. number_array[count] += 1
  109. if number_array[count+1] == "X":
  110. number_array[count] += 1
  111. if number_array[count+columns] == "X":
  112. number_array[count] += 1
  113. if number_array[count+columns+1] == "X":
  114. number_array[count] += 1
  115. if number_array[count+columns-1] == "X":
  116. number_array[count] += 1
  117. 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 :
  118. if number_array[count-1] == "X":
  119. number_array[count] += 1
  120. if number_array[count+1] == "X":
  121. number_array[count] += 1
  122. if number_array[count-columns] == "X":
  123. number_array[count] += 1
  124. if number_array[count-columns-1] == "X":
  125. number_array[count] += 1
  126. if number_array[count-columns+1] == "X":
  127. number_array[count] += 1
  128. 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 :
  129. if number_array[count-1] == "X":
  130. number_array[count] += 1
  131. if number_array[count+columns] == "X":
  132. number_array[count] += 1
  133. if number_array[count-columns] == "X":
  134. number_array[count] += 1
  135. if number_array[count-columns-1] == "X":
  136. number_array[count] += 1
  137. if number_array[count+columns-1] == "X":
  138. number_array[count] += 1
  139. 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:
  140. if number_array[count+1] == "X":
  141. number_array[count] += 1
  142. if number_array[count+columns] == "X":
  143. number_array[count] += 1
  144. if number_array[count-columns] == "X":
  145. number_array[count] += 1
  146. if number_array[count-columns+1] == "X":
  147. number_array[count] += 1
  148. if number_array[count+columns+1] == "X":
  149. number_array[count] += 1
  150. 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:
  151. if number_array[count+1] == "X":
  152. number_array[count] += 1
  153. if number_array[count-1] == "X":
  154. number_array[count] += 1
  155. if number_array[count+columns] == "X":
  156. number_array[count] += 1
  157. if number_array[count-columns] == "X":
  158. number_array[count] += 1
  159. if number_array[count-columns+1] == "X":
  160. number_array[count] += 1
  161. if number_array[count-columns-1] == "X":
  162. number_array[count] += 1
  163. if number_array[count+columns+1] == "X":
  164. number_array[count] += 1
  165. if number_array[count+columns-1] == "X":
  166. number_array[count] += 1
  167. count += 1
  168. double_check += 1
  169.  
  170.  
  171. for i in range(len(number_array)):
  172. print(str(number_array[i]), end = " ")
  173. if i % columns == columns - 1:
  174. print("")
  175. count = 0
  176. return number_array
  177.  
  178.  
  179. bomb_amount = 30
  180. rows = 20
  181. columns = 20
  182. num_array = get_array()
  183. label_list = []
  184. board_create(num_array)
  185. keep_going = True
  186.  
  187.  
  188.  
  189.  
  190. root.mainloop()
  191.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement