Tic-Tac-Toe mit curses - OOP Frage
Verfasst: Dienstag 14. Juni 2022, 19:36
Hallo,
habe die letzten Tage mein erstes richtiges Projekt mit OOP realisiert. Curses war für mich auch Neuland.
Und zwar habe ich das Spiel Tic-Tac-Toe mit curses für die Konsole programmiert, funktioniert auch wunderbar.
Hatte das ganze erst prozedural, also ohne OOP programmiert, was dann aber zum Schluss sehr unübersichtlich wurde und ich musste viele Argumente an andere Funktionen "durchschleifen", was die Unübersichtlichkeit noch mehr erhöht hat. Vier Gewinnt habe ich auch schon prozedural fertig, aber da wurde es noch viel unübersichtlicher, da das Spiel schon komplexer ist. Wollte alles andere Geplante nicht so weiter programmieren und habe mich dann doch an OOP gewagt. Finde das Ganze jetzt auch recht übersichtlich und einfach zu lesen. Hatte halt etwas Respekt, weil ich außerhalb von Tutorials noch nichts groß mit Klassen gemacht habe. Da Tic-Tac-Toe erst der Anfang vom gesamten Projekt ist (Soll eine Spielesammlung für die Konsole werden) dachte ich mir, ich muss einen anderen Weg gehen. Also habe ich das Spiel nochmal mit OOP programmiert und alles in entsprechende Module verpackt, die ich dann entsprechend importiere. Vier Gewinnt folgt als Nächstes. Lange Rede kurzer Sinn, mir geht es bei meiner Frage um Folgendes.
Da dies meine erste richtige Verwendung von Klassen ist, ist meine Bitte an euch, dass ihr mal über den Code drüberschaut und mir schreibt, ob ich OOP vernünftig umgesetzt habe. Habe schon oft gelesen, dass bei vernünftiger OOP Vererbung vorkommen sollte, daher bin ich etwas verunsichert, weil ich nirgends Vererbung verwendet habe. Wüsste auch nicht, wie sich Vererbung in meinem Fall positiv auswirken sollte, weil eigentlich alles selbstständige "Einheiten" sind, daher auch die Kapselung in Module.
Ob Vererbung bei einem anderen Spiel sinnvoll ist, wird sich dann erst zeigen.
Da ich keine Dateien hoch laden kann, habe ich alles in eine .zip-Datei gepackt und extern hochgeladen.
https://www.file-upload.net/download-14 ... e.zip.html
Wenn dies hier nicht erlaubt und oder unerwünscht ist, kann ich den Code gerne noch reinstellen. Da das Ganze aber über 600 Zeilen sind, dachte ich mir, ich stelle euch alles erstmal so zur Verfügung.
ps.: Die Dateien screen.py und menu.py habe ich absichtlich so allgemein gehalten, da diese Beiden später eine Ordnerebene höher kommen und von allen Spielen verwendet werden sollen. Da menu.py die Spieleigenen Texte aus einer Datei importiert, dachte ich mir, dass ich in jedem Spielordner eine "mini" menu.py Datei erstelle, die lediglich die menu.py aus dem Hauptordner und die Spieleigenen Texte aus dem jeweiligen Spieleordner importiert. Wollte ungerne in jedem Spielordner Dateien haben, die zu 99% gleich aussehen, deswegen habe ich die beiden Dateien direkt so allgemein gehalten.
Gruß
_Mala_Fide_
habe die letzten Tage mein erstes richtiges Projekt mit OOP realisiert. Curses war für mich auch Neuland.
Und zwar habe ich das Spiel Tic-Tac-Toe mit curses für die Konsole programmiert, funktioniert auch wunderbar.
Hatte das ganze erst prozedural, also ohne OOP programmiert, was dann aber zum Schluss sehr unübersichtlich wurde und ich musste viele Argumente an andere Funktionen "durchschleifen", was die Unübersichtlichkeit noch mehr erhöht hat. Vier Gewinnt habe ich auch schon prozedural fertig, aber da wurde es noch viel unübersichtlicher, da das Spiel schon komplexer ist. Wollte alles andere Geplante nicht so weiter programmieren und habe mich dann doch an OOP gewagt. Finde das Ganze jetzt auch recht übersichtlich und einfach zu lesen. Hatte halt etwas Respekt, weil ich außerhalb von Tutorials noch nichts groß mit Klassen gemacht habe. Da Tic-Tac-Toe erst der Anfang vom gesamten Projekt ist (Soll eine Spielesammlung für die Konsole werden) dachte ich mir, ich muss einen anderen Weg gehen. Also habe ich das Spiel nochmal mit OOP programmiert und alles in entsprechende Module verpackt, die ich dann entsprechend importiere. Vier Gewinnt folgt als Nächstes. Lange Rede kurzer Sinn, mir geht es bei meiner Frage um Folgendes.
Da dies meine erste richtige Verwendung von Klassen ist, ist meine Bitte an euch, dass ihr mal über den Code drüberschaut und mir schreibt, ob ich OOP vernünftig umgesetzt habe. Habe schon oft gelesen, dass bei vernünftiger OOP Vererbung vorkommen sollte, daher bin ich etwas verunsichert, weil ich nirgends Vererbung verwendet habe. Wüsste auch nicht, wie sich Vererbung in meinem Fall positiv auswirken sollte, weil eigentlich alles selbstständige "Einheiten" sind, daher auch die Kapselung in Module.
Ob Vererbung bei einem anderen Spiel sinnvoll ist, wird sich dann erst zeigen.
Da ich keine Dateien hoch laden kann, habe ich alles in eine .zip-Datei gepackt und extern hochgeladen.
https://www.file-upload.net/download-14 ... e.zip.html
Wenn dies hier nicht erlaubt und oder unerwünscht ist, kann ich den Code gerne noch reinstellen. Da das Ganze aber über 600 Zeilen sind, dachte ich mir, ich stelle euch alles erstmal so zur Verfügung.
ps.: Die Dateien screen.py und menu.py habe ich absichtlich so allgemein gehalten, da diese Beiden später eine Ordnerebene höher kommen und von allen Spielen verwendet werden sollen. Da menu.py die Spieleigenen Texte aus einer Datei importiert, dachte ich mir, dass ich in jedem Spielordner eine "mini" menu.py Datei erstelle, die lediglich die menu.py aus dem Hauptordner und die Spieleigenen Texte aus dem jeweiligen Spieleordner importiert. Wollte ungerne in jedem Spielordner Dateien haben, die zu 99% gleich aussehen, deswegen habe ich die beiden Dateien direkt so allgemein gehalten.
Gruß
_Mala_Fide_