Zweiter Counter

Fragen zu Tkinter.
Antworten
Maestro
User
Beiträge: 8
Registriert: Freitag 8. April 2022, 09:05

Hallo Leute,

ich habe in meinem Spiel einen counter eingebaut, der ein Leben abzieht sobald man stirbt. Ich würde jetzt gerne noch einen zweiten counter im Spiel einbauen, der ein anderes Attribut zählt. Den ersten counter habe ich einfach als "counter" beschrieben und alles hat geklappt. Den zweiten counter habe ich einfach als "counter_2" beschrieben, doch leider zählt der nichts. Ist die Definiton bzw. die Schreibweise des zweiten Counters zu einfach gedacht und geht so nicht?

Danke im Voraus! :)
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Außer, das du bescheidene Namen gewählt hat, kann man zu einem solchen Stück Prosa nichts sagen. Du wirst schon Code zeigen müssen.
Maestro
User
Beiträge: 8
Registriert: Freitag 8. April 2022, 09:05

Danke für die Bewertung.

Ansonsten so einfach wie oben beschrieben:

global counter
counter = 3

Bei Lebensverlust folgt:
global counter
counter -= 1

if counter ==0:
... hier folgen dann mehrere Anweisungen. Ende des Spiels.

Das hat im Code einwandfrei funktioniert. Jetzt wollte ich noch einen zweiten Counter einbauen, so wie oben.

global counter_2
counter_2 = 0

Bei Attributveränderung:
global counter_2
counter_2 +=1

etc... Leider zählt das Programm dieses Attribut nicht. Liegt es wohlmöglich an der Schreibweise oder ein Logikfehler oder keine Ahnung? :)
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Den ganzen Code. Nicht triviale Ausschnitte daraus. Und bitte in Code Tags setzen.
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Maestro: Wobei man hier schon sagen kann das ``global`` falsch ist. Ich möchte den Code mit ``global`` eigentlich gar nicht erst sehen. Und auch auch nicht mit Namen wie `counter` und `counter_2`. 😛

Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Da stehen/existieren keine Variablen, also braucht man auch kein ``global``. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst. Und bei jedem nichttrivialen GUI-Programm kommt man um objektorientierte Programmierung nicht herum und dann gibt es auch keinen Grund/keine Ausrede mehr ``global`` zu benutzen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten