class PlayGame(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self, parent) # Quit\Leave with money won self.quitButton = ttk.Button(self, text="Quit", command=lambda: self.buttonPressed("q")) self.quitButton.grid(row=0, sticky="w") # Counter self.timeLabel = tk.Label(self, text="", justify="left", font=largeFont) self.timeLabel.grid(row=1, columnspan=2) self.counter = Counter(30, self.timeLabel, self) # Question self.label = tk.Label(self, text=answer.get_question(), font=largeFont, wraplength=750, justify="center", width=90, height=30) self.label.grid(row=2, columnspan=2, pady=10, padx=53) # Get new answers answer.set_answers() ans = answer.randomAnswers() # Getting answers value on the buttons self.button1 = ttk.Button(self, text="A - " + ans[0], command=lambda: self.buttonPressed(ans[0])) self.button1.grid(row=3, column=0, sticky="we", pady=10, padx=5) self.button2 = ttk.Button(self, text="B - " + ans[1], command=lambda: self.buttonPressed(ans[1])) self.button2.grid(row=3, column=1, sticky="we", pady=10, padx=5) self.button3 = ttk.Button(self, text="C - " + ans[2], command=lambda: self.buttonPressed(ans[2])) self.button3.grid(row=4, column=0, sticky="we", pady=10, padx=5) self.button4 = ttk.Button(self, text="D - " + ans[3], command=lambda: self.buttonPressed(ans[3])) self.button4.grid(row=4, column=1, sticky="we", pady=10, padx=5) # Help self.gameHelp = Help(self.button1, self.button2, self.button3, self.button4, answer) self.helpAskTheAudience = ttk.Button( self, text="Ask the Audience", command=lambda: self.buttonPressed(5)) self.helpAskTheAudience.grid(row=0, column=3) self.help50_50 = ttk.Button(self, text="50:50", command=lambda: self.buttonPressed(6)) self.help50_50.grid(row=0, column=4) self.helpExtraTime = ttk.Button(self, text="Extra Time", command=lambda: self.buttonPressed(7)) self.helpExtraTime.grid(row=0, column=5) self.corectAnswer = 0 self.prize() self.moneyWon = "0" self.moneyWonSave = "0" self.gameOver() def prize(self): # Money won labelsFrame = ttk.LabelFrame(self, text="Prize") labelsFrame.grid(row=1, column=3, columnspan=3, rowspan=15) prize = [ "100", "200", "300", "500", "1,000", "2,000", "4,000", "8,000", "16,000", "32,000", "64,000", "125,000", "250,000", "500,000", "1,000,000" ] count = 0 number = 15 for money in prize[::-1]: text = str(number) + " - " + str(money) if self.corectAnswer == number: self.moneyWon = money if money in ["1,000", "32,000"]: self.moneyWonSave = money tk.Label(labelsFrame, text=text, fg="red").grid(row=1 + count, columnspan=3, sticky="w") else: if money in ["1,000", "32,000", "1,000,000"]: tk.Label(labelsFrame, text=text, fg="blue").grid(row=1 + count, columnspan=3, sticky="w") else: tk.Label(labelsFrame, text=text).grid(row=1 + count, columnspan=3, sticky="w") count += 1 number -= 1 def buttonPressed(self, button): if button == "q": if messagebox.showinfo( "Thanks for playing", "You won " + self.moneyWon + ".\nSee you soon.") == "ok": self.quit() elif button == answer.get_correct_answer(): self.corectAnswer += 1 if answer.gameLength == self.corectAnswer: self.prize() if messagebox.askyesno( "You won!", "Congratulations!\nYou won 1,000,000!") == True: python = sys.executable os.execl(python, python, *sys.argv) else: self.quit() else: answer.set_answers() ans = answer.randomAnswers() q = answer.get_question() self.changeButtonsValue(ans, q) self.prize() if self.corectAnswer in (1, 2, 3, 4): self.counter.reset(30) elif self.corectAnswer in (5, 6, 7, 8, 9): self.counter.reset(45) else: self.counter.reset(60) elif button == 7: self.counter.addTime(60) self.helpExtraTime['state'] = "disable" elif button == 5: self.counter.stop() if messagebox.showinfo("Ask Audience", self.gameHelp.ask_audience()) == "ok": self.counter.resume() self.helpAskTheAudience['state'] = "disable" elif button == 6: self.gameHelp.fifty_fifty() self.help50_50['state'] = "disabled" else: if messagebox.askyesno( "Game over", "Game is over. You won " + self.moneyWonSave + ".\nDo you wanna try again?") == True: python = sys.executable os.execl(python, python, *sys.argv) else: self.quit() def changeButtonsValue(self, ans, question): self.label["text"] = question self.button1["text"] = "A - " + ans[0] self.button1["command"] = lambda: self.buttonPressed(ans[0]) self.button1["state"] = "active" self.button2["text"] = "B - " + ans[1] self.button2["command"] = lambda: self.buttonPressed(ans[1]) self.button2["state"] = "active" self.button3["text"] = "C - " + ans[2] self.button3["command"] = lambda: self.buttonPressed(ans[2]) self.button3["state"] = "active" self.button4["text"] = "D - " + ans[3] self.button4["command"] = lambda: self.buttonPressed(ans[3]) self.button4["state"] = "active" def gameOver(self): if self.counter.sec == 0: if messagebox.askyesno( "Game over", "Game is over. You won " + self.moneyWon + ".\nDo you wanna try again?") == True: python = sys.executable os.execl(python, python, *sys.argv) else: self.quit() self.after(1000, self.gameOver)