Amazing-Python-Scripts
163 строки · 7.5 Кб
1# Importing required libraries
2from tkinter import *3from tkinter import messagebox as mb4from tkinter import ttk5import random6
7# function to create screen for the game
8
9
10def board():11global value, w12# initialising screen13root = Tk()14root.geometry("320x335")15root.title("MineSweeper")16root.resizable(False, False)17root.eval('tk::PlaceWindow . center')18# creating label19w = Label(root, text="Start Playing!", bg='yellow', fg='red')20# creating buttons21but11 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,22font="digifacewide 18", height=1, width=2, command=lambda: game(but11, root))23but12 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,24font="digifacewide 18", height=1, width=2, command=lambda: game(but12, root))25but13 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,26font="digifacewide 18", height=1, width=2, command=lambda: game(but13, root))27but14 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,28font="digifacewide 18", height=1, width=2, command=lambda: game(but14, root))29but15 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,30font="digifacewide 18", height=1, width=2, command=lambda: game(but15, root))31but21 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,32font="digifacewide 18", height=1, width=2, command=lambda: game(but21, root))33but22 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,34font="digifacewide 18", height=1, width=2, command=lambda: game(but22, root))35but23 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,36font="digifacewide 18", height=1, width=2, command=lambda: game(but23, root))37but24 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,38font="digifacewide 18", height=1, width=2, command=lambda: game(but24, root))39but25 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,40font="digifacewide 18", height=1, width=2, command=lambda: game(but25, root))41but31 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,42font="digifacewide 18", height=1, width=2, command=lambda: game(but31, root))43but32 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,44font="digifacewide 18", height=1, width=2, command=lambda: game(but32, root))45but33 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,46font="digifacewide 18", height=1, width=2, command=lambda: game(but33, root))47but34 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,48font="digifacewide 18", height=1, width=2, command=lambda: game(but34, root))49but35 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,50font="digifacewide 18", height=1, width=2, command=lambda: game(but35, root))51but41 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,52font="digifacewide 18", height=1, width=2, command=lambda: game(but41, root))53but42 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,54font="digifacewide 18", height=1, width=2, command=lambda: game(but42, root))55but43 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,56font="digifacewide 18", height=1, width=2, command=lambda: game(but43, root))57but44 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,58font="digifacewide 18", height=1, width=2, command=lambda: game(but44, root))59but45 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,60font="digifacewide 18", height=1, width=2, command=lambda: game(but45, root))61but51 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,62font="digifacewide 18", height=1, width=2, command=lambda: game(but51, root))63but52 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,64font="digifacewide 18", height=1, width=2, command=lambda: game(but52, root))65but53 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,66font="digifacewide 18", height=1, width=2, command=lambda: game(but53, root))67but54 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,68font="digifacewide 18", height=1, width=2, command=lambda: game(but54, root))69but55 = Button(root, bg="grey", text="", padx=7.5, pady=5, bd=4,70font="digifacewide 18", height=1, width=2, command=lambda: game(but55, root))71# adding buttons to the screen72but11.grid(row=1, column=1)73but12.grid(row=1, column=2)74but13.grid(row=1, column=3)75but14.grid(row=1, column=4)76but15.grid(row=1, column=5)77but21.grid(row=2, column=1)78but22.grid(row=2, column=2)79but23.grid(row=2, column=3)80but24.grid(row=2, column=4)81but25.grid(row=2, column=5)82but31.grid(row=3, column=1)83but32.grid(row=3, column=2)84but33.grid(row=3, column=3)85but34.grid(row=3, column=4)86but35.grid(row=3, column=5)87but41.grid(row=4, column=1)88but42.grid(row=4, column=2)89but43.grid(row=4, column=3)90but44.grid(row=4, column=4)91but45.grid(row=4, column=5)92but51.grid(row=5, column=1)93but52.grid(row=5, column=2)94but53.grid(row=5, column=3)95but54.grid(row=5, column=4)96but55.grid(row=5, column=5)97# adding label to the screen98w.grid(row=0, column=0, columnspan=6)99# creating values for each cell from 1-5 and "b" for bomb100butlist = [but11, but12, but13, but14, but15, but21, but22, but23, but24, but25,101but31, but32, but33, but34, but35, but41, but42, but43, but44, but45,102but51, but52, but53, but54, but55]103vallist = ['1', '2', '3', '4', '1', '2', '3', '4', '1', '2', '3', '4', '1', '2', '3', '4',104'1', '2', '3', '4', 'b', 'b', 'b', 'b', 'b']105value = {}106random.shuffle(vallist) # shuffle for randomness107for i in range(25):108value[butlist[i]] = vallist[i] # assining values to buttons109root.mainloop()110
111
112def game(b, tk):113if value[b] == 'b': # if bomb is clicked114bomb_clicked(b, tk)115else: # if number is clicked116number_clicked(b, int(value[b]), tk)117
118
119total = 0120
121# function when bomb is clicked
122
123
124def bomb_clicked(b, tk):125# making changes to cell126b['text'] = "\U0001f600"127b['relief'] = SUNKEN128b['bg'] = "orange"129global value, total130# displaying message and asking for replay131a = mb.askquestion("YOU LOSE", " Your score : " +132str(total) + "\nDo you want to play again??")133
134tk.destroy() # exiting current board135if a == 'yes':136total = 0137board()138
139
140def number_clicked(b, n, tk):141global value, total142if n != 0 and b['text'] == "":143# making changes to cell and updating score144b['text'] = n145total += n146value[b] = '0'147w['text'] = "Your Score : " + str(total)148if total >= 50: # if player reached score of 50 he won149b['text'] = "\U0001f600"150b['relief'] = SUNKEN151b['bg'] = "orange"152# displaying message and asking for replay153a = mb.askquestion("YOU WON", " Your score : " +154str(total) + "\nDo you want to play again??")155tk.destroy() # exiting current board156if a == 'yes':157total = 0158board()159# showinfo("YOU WON", "YOUR SCORE : " + str(total))160tk.destroy()161
162
163board()164