Automatisches hinzufügen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Vipaah
User
Beiträge: 10
Registriert: Dienstag 29. November 2016, 15:31

Hey,
Momentan möchte ich eine Art "CookieClicker" mit tkinter erstellen. Ich habe es momentan so, dass wenn du dir ein Upgrade kaufst, dass du pro Click mehr Cookies bekommst. Jedoch möchte ich das so machen, dass man automatisches jede Sekunde z.b 3 Cookies bekommt. Wie geht das? (Mit tkinter)


Dankeschön

Code: Alles auswählen

def Upgrade1(event):
    global Cookies
    global Cookieplus
    if Cookies < 20:
        return Cookies1
    if Cookies > 20:
        l['text'] = "Cookies Pro click " + str(Cookieplus)
        b['text'] = str(Cookieplus) + " + Cookies"
        Cookies = Cookies - 20
        Cookieplus = Cookiesplus + 1
        return Cookies
(Momentan die Definition für das mehr pro Klicken)
Zuletzt geändert von Anonymous am Donnerstag 8. Dezember 2016, 15:06, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@Vipaah: Zeitverzögertes ausführen in der Tk-Hauptschleife kann man mit der `after()`-Methode auf Widget-Objekten erreichen.

Die Anmerkungen zu ``global`` und OOP aus dem anderen Thema von Dir waren allgemeingültig, greifen also auch hier. Globaler Zustand ist unübersichtlich und fehleranfällig und macht einem das Programmieren unnötig schwer. Bei GUIs braucht man sowieso OOP, und damit gibt's dann auch keine Ausrede mehr für ``global``.

Gute, passende Namen sind wichtig beim Programmieren. Man sollte sich an die Konventionen bei der Schreibweise halten, und keine kryptischen Abkürzungen oder Nummernanhängsel verwenden.
Vipaah
User
Beiträge: 10
Registriert: Dienstag 29. November 2016, 15:31

Ich bin leider noch ein Anfänger und habe kaum verstanden was du meintest. Ich hab es einfach mal einfach so gemacht.
BlackJack

@Vipaah: GUI ist vielleicht nicht gerade der beste Startpunkt für Anfänger. Das setzt objektorientierte Programmierung (OOP) voraus. Und bring als neues ereignisbasierte Programmierung mit sich, also zum Beispiel genau das was Du gerade erreichen willst, das nach x Sekunden ein Ereignis auftritt und etwas passiert. OOP setzt Funktionen voraus. Also ”echte” Funktionen wo nicht auf Werte von ausserhalb (ausser Konstanten) einfach so zugegriffen wird, und auch nicht irgendwelche Werte ausserhalb verändert werden. Also kein ``global``. Das Schlüsselwort solltest Du am besten gleich wieder vergessen. Das macht mehr Probleme als es löst. Werte betreten Funktionen (und Methoden) als Argumente und verlassen sie als Rückgabewert.

Vor Funktionen sind die Kontrollstrukturen um den Programmfluss zu beeinflussen, also bedingte Ausführung und Schleifen.
Antworten