from Tkinter import*
from tkMessageBox import*
import random
import time
n = 1
a = 1
class GameFrame(Frame):
def __init__(self):
global a
global n
Frame.__init__(self)
self.master.title("Be a Billionaire")
self.master.geometry("1200x700")
self.master.resizable(0,0)
self.grid()
self._mission = Label(self, text = "Your Mission is to Earn 1,000,000,000$" ,font = ("Arial", 30, "bold"))
self._mission.grid()
counter1 = IntVar()
counter1.set(0)
self._currentmoney = Label(self, text = "Your Current Money:" ,font = ("Arial", 30, "bold"))
self._currentmoney.grid()
self._currentmoney = Label(self, textvariable = counter1 ,font = ("Arial", 30, "bold"))
self._currentmoney.grid()
###########################################################Click###########################################################
self._moneyearn = Button(self, text = "Click Me to Earn Money", font = ("Arial", 30, "bold"), command = lambda: increasemoney(a))
self._moneyearn.grid()
self._clickupgrade1 = Button(self, text = "Click Me to Upgrade Click", font = ("Arial", 15, "bold"), command = lambda: upgradeclick())
self._clickupgrade1.grid()
self._costlabel1 = Label(self, text = "Cost:", font = ("Arial", 15, "bold"))
self._costlabel1.grid()
counter2 = IntVar()
counter2.set(2)
self._neededmoney1 = Label(self, textvariable = counter2, font = ("Arial", 15, "bold"))
self._neededmoney1.grid()
def increasemoney(x):
counter1.set(counter1.get() + x)
def upgradeclick():
global a
global n
if counter1.get() >= n*(n+1)*(n+2):
a += 5*n
counter1.set(counter1.get() - n*(n+1)*(n+3))
counter2.set((n+1)*(n+2)*(n+3))
n += 1
else:
showwarning(message = "You Don't Have Enough Money!", parent = self)
###########################################################################################################################
##########################################################Lottery##########################################################
self._lotterytitle = Label(self, text = "LOTTERY! : You can win 0$ ~ 100*(money you put in)", font = ("Arial", 15, "bold"))
self._lotterytitle.grid()
self._lotterymoney = IntVar()
self._lotteryentry = Entry(self, textvariable = self._lotterymoney, font = ("Arial", 15, "bold"))
self._lotteryentry.grid()
self._lotterybutton = Button(self, text = "See the results", font = ("Arial", 15, "bold"), command = lambda: lottery())
self._lotterybutton.grid()
def lottery():
x = self._lotterymoney.get()
if x <= counter1.get():
l = random.randint(1, 100)
if 100 >= l > 99:
counter1.set(counter1.get() + x*99)
showinfo(message = "Congratulations! You've won First Prize(100*(Money you have put in))", parent = self)
elif 99 >= l > 94:
counter1.set(counter1.get() + x*29)
showinfo(message = "Congratulations! You've won Second Prize(20*(Money you have put in))", parent = self)
elif 94 >= l > 80:
counter1.set(counter1.get() + x*9)
showinfo(message = "Congratulations! You've won Third Prize(10*(Money you have put in))", parent = self)
else:
counter1.set(counter1.get() - x)
showinfo(message = "Sorry! You've Lost", parent = self)
else:
showwarning(message = "You Don't Have Enough Money!", parent = self)
###########################################################################################################################
########################################Additional Income(Earns Money Every Second)########################################
self._additionaltitle = Label(self, text = "Additional Income(Earns Money Every Second)", font = ("Arial", 15, "bold"))
self._additionaltitle.grid()
def main():
GameFrame().mainloop()
main()
Am zusätzlichen Einkommen Teil, würde Ich mag eine Art von Wert m zu counter1
hinzufügen, aber ich weiß nicht, wie es zu tun.Wie mache ich meine Funktion, jede Sekunde in Python zu laufen?
Sie haben eine Funktion 'increasemoney' bekam die diese genau zu tun scheint. Warum kannst du es nicht benutzen? – mkrieger1
Sie müssen nicht wirklich den ganzen Code posten, um * zu fragen, wie Sie eine Funktion einmal pro Sekunde ausführen *. Die Antwort zu letzterem wäre mit 'sleep (1)' aus dem 'time'-Modul importiert –
@ Ev.Kounis Es ist generell _nicht_ eine gute Idee,' time.sleep' in einer ereignisgesteuerten GUI-Schleife zu nennen, weil das einfriert die Schleife. Solche GUI-Frameworks bieten also andere Möglichkeiten, um Verzögerungen anzufordern; Der übliche Weg in Tkinter besteht darin, die '.after'-Methode eines Widgets aufzurufen, wie in der Antwort des rechten Beins dargestellt. –