Schiffe Versenken mit Framework usw.

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
Schlitzaaa
User
Beiträge: 34
Registriert: Donnerstag 11. Januar 2018, 10:47

Guten Tag,
Alsoooo wir sollen im Praktikum ein Game mithilfe eines vorgegebenen Frameworks schreiben und es dann Vorstellen.
Bevor jz manche wieder kommen mimi keine Hausaufgaben: Das Game läuft wird sogar eines der besten sein I guess und mmeine frage bezieht sich nur auf
Quality of Life content.
Folgendes: Ich versuche eine def Destroyed zu schreiben
da wir in unserer Gruppe auf Klassen verzichtet hatten stehen wir nun vor dem Problem, das alle 4 Uboote(z.B.) allgemein gesehen werden und nicht als Uboot 1 , Uboot 2, ...
somit können wir den Schiffen keinen HitCounter direkt zuweisen.
#def destroyed():
# 1. In ein Dict, dort wird aber nicht unterschieden und es müssten alle Schiffe, welche mehrfach vorhanden sind
# extern unterschieden werden
# 2. Boards vergleichen, dort aber leichte Performance probs da ewig viele Schleifen
# 3. Komplettes Game in Klassen umschreiben und somit einen ShipManager einbauen
# aber hoher Zeitaufwand und relativ unnötig in diesem Stadium
Das wären so meine Ansätze aber die Umsetzung gestaltet sich als sehr schwierig
Sirius3
User
Beiträge: 17768
Registriert: Sonntag 21. Oktober 2012, 17:20

Was meinst Du mit "allgemein gesehen werden"? Wenn man viele Boote hat, dann ist die natürliche Datenstruktur eine Liste und eine Liste kann man mit einer Schleife durchgehen.

Ansonsten hilft es immer, den Code zu zeigen, der das Problem zeigt.
Benutzeravatar
__blackjack__
User
Beiträge: 13144
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Schlitzaaa: Ich würde ja 4. vorschlagen: Klassen. Das ist nun mal *der* Verbunddatentyp in Python und wenn man den braucht, dann braucht man den halt und damit ist das nicht unnötig. Der Vorschlag unterscheidet sich von Deinem 3. weil Klassen verwenden nicht bedeutet *alles* irgendwie in die eine oder andere Klasse zu stopfen — ist ja nicht Java — sondern nur da wo es eben Sinn macht mindestens mal Daten in einem Objekt zusammen zu fassen.

Beim Klassennamen `ShipManager` würde ich auch schon das kalte Grausen kriegen, denn das klingt vom Namen schon nach Java und nicht nach Python. So ein `IrgendwasManager` ist IMHO ein Hinweis darauf das die Klasse einen besseren Namen braucht, denn verwalten tut letztlich jede Klasse etwas, Verwalter als Namensbestandteil ist also in 99,9% der Fälle ein Namenszusatz der überhaupt nichts sinnvolles aussagt.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Antworten