Hallo,
ich habe soeben meine Umsetzung von Vier gewinnt fertiggestellt.
Vier gewinnt
In der Methode check_diagonal überprüfe ich, ob ein Spieler 4 Steine diagonal hat. Dazu bestimme ich die Startposition der Diagonale und nehme diese als Startpunkt für das Iterieren über die Liste.
Dies wird genauso für die zweite Diagonale gemacht, da aber die Schritte für beide Diagonalen ziemlich gleich sind wollte ich eure Meinung hören, ob man diese Methode verbessern bzw. vereinfachen kann.
Sonstige Anmerkungen und Verbesserungsvorschläge nehme ich gerne an.
Grüße
Martin
PS: Aktuell ist die String Formatierung noch vermischt, werde aber alles auf die format Methode umstellen.
Vier gewinnt
- martin101986
- User
- Beiträge: 85
- Registriert: Montag 3. Dezember 2007, 19:15
- Wohnort: Steiermark, Österreich
Den Quelltext habe ich noch nicht genauer angesehen, sondern erstmal "gespielt". Aufgefallen ist mir:
+ endlich mal wieder ein Spiel ohne GUI
- ist so nur mit Python 2.6 (und 2.7?) lauffähig. Python 2.5 kommt mit den Parametern der print-Funktion nicht zurecht, Python 3.x nicht mit der Syntax für die Exceptions.
- die Spiellogik ist noch fehlerhaft. Ich habe 2x gespielt: Beim 1. Spiel hängte sich das Programm nach ca. 15 Spielzügen auf, beim 2. Spiel hatte Spieler 1 bereits 5 Steine in einer Reihe, aber es ging immer noch weiter ...
+ endlich mal wieder ein Spiel ohne GUI
- ist so nur mit Python 2.6 (und 2.7?) lauffähig. Python 2.5 kommt mit den Parametern der print-Funktion nicht zurecht, Python 3.x nicht mit der Syntax für die Exceptions.
- die Spiellogik ist noch fehlerhaft. Ich habe 2x gespielt: Beim 1. Spiel hängte sich das Programm nach ca. 15 Spielzügen auf, beim 2. Spiel hatte Spieler 1 bereits 5 Steine in einer Reihe, aber es ging immer noch weiter ...
*hihihi* stop kidding us, am besten es ist auch noch Koffeinfrei und DIE Lösung für den Weltfriedennumerix hat geschrieben:...
- ist so nur mit Python 2.6 (und 2.7?) lauffähig. Python 2.5 kommt mit den Parametern der print-Funktion nicht zurecht, Python 3.x nicht mit der Syntax für die Exceptions.
...
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Das passt nicht zusammen!Masaru hat geschrieben:am besten es ist auch noch Koffeinfrei und DIE Lösung für den Weltfrieden
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Meinst Du? Mhmm, warum?cofi hat geschrieben:Das passt nicht zusammen!Masaru hat geschrieben:am besten es ist auch noch Koffeinfrei und DIE Lösung für den Weltfrieden
*schenkelklopf* krachernumerix hat geschrieben:Wo ist da der Witz?
... jepp, sagt mein Psychater auch immer wieder.
Aber bevor Du noch ganz pöse wirst - will Dich ja auch nicht länger auf die Folter spannen.
Du kritisierst an dem Code die Lauffähigkeitseinschränkung bezüglich des Python-Interpreters. Dabei zählst Du auf, dass es (nebst 2.6/7) nicht unter 2.5 und 3x lauffähig ist ... was letzendlich die Poente des Witzes ist.
Aber bevor Du noch ganz pöse wirst - will Dich ja auch nicht länger auf die Folter spannen.
Du kritisierst an dem Code die Lauffähigkeitseinschränkung bezüglich des Python-Interpreters. Dabei zählst Du auf, dass es (nebst 2.6/7) nicht unter 2.5 und 3x lauffähig ist ... was letzendlich die Poente des Witzes ist.
Zuletzt geändert von Masaru am Freitag 12. Februar 2010, 17:22, insgesamt 1-mal geändert.
Wenn der TE den Code so geschrieben hätte, dass er für 2.6, 2.7 und 3.x lauffähig ist, hättest du dich wahrscheinlich schon totgelacht.
edit: mit "du" ist Massaru gemeint
edit: mit "du" ist Massaru gemeint
Zuletzt geändert von derdon am Freitag 12. Februar 2010, 17:56, insgesamt 1-mal geändert.
Natürlich muss ein Code nicht mit mehr als einer Python-Version ausführbar sein. Aber: Habt ihr euch den Code angesehen?
Ich hatte den Eindruck, dass er so angelegt ist, dass er ein möglichst breites Spektrum an mehr oder weniger aktuellen Versionen abdecken soll und fand gerade darum den Hinweis wichtig, dass das nicht geglückt ist. Dass ein für 2.x geschriebener Code unter 3.x läuft, erwartet in der Regel keiner, aber wenn man einen 2.x-er Code durch entsprechende future-imports "vorwärtskompatibel" anlegen will, dann könnte man zumindest auf die Idee kommen, dass hier jemand einen Code so geschrieben hat, dass er auf mehreren Versionen laufen soll. Bei so geringem Umfang sehe ich da auch kein Problem.
Eine allgemeine Aussage der Art "ist schlecht, weil läuft nur mit 2.6 und nicht hiermit und damit usw. usw." ist natürlich zum Schenkelklopfen. So war das auch nicht gemeint. Naja, hat auf jeden Fall ein paar nette Emoticons beschert.
Ich hatte den Eindruck, dass er so angelegt ist, dass er ein möglichst breites Spektrum an mehr oder weniger aktuellen Versionen abdecken soll und fand gerade darum den Hinweis wichtig, dass das nicht geglückt ist. Dass ein für 2.x geschriebener Code unter 3.x läuft, erwartet in der Regel keiner, aber wenn man einen 2.x-er Code durch entsprechende future-imports "vorwärtskompatibel" anlegen will, dann könnte man zumindest auf die Idee kommen, dass hier jemand einen Code so geschrieben hat, dass er auf mehreren Versionen laufen soll. Bei so geringem Umfang sehe ich da auch kein Problem.
Eine allgemeine Aussage der Art "ist schlecht, weil läuft nur mit 2.6 und nicht hiermit und damit usw. usw." ist natürlich zum Schenkelklopfen. So war das auch nicht gemeint. Naja, hat auf jeden Fall ein paar nette Emoticons beschert.
- martin101986
- User
- Beiträge: 85
- Registriert: Montag 3. Dezember 2007, 19:15
- Wohnort: Steiermark, Österreich
Hallo,
zur Unterstützung der verschiedenen Python Versionen wollte ich noch sagen, dass ich schon etwas darauf geschaut habe. dass er vorwärtskompatibel ist. Da ich eigentlich nur mehr Python 2.6 verwende. habe ich nicht darauf geachtet, dass der Code auch noch mit Python 2.5 läuft.
Das Exception Handling werde ich auf auf die neue Variante umstellen.
@Numerix: Danke für dein Feedback. Einen Fehler habe ich schon gefunden, bei dem das Spiel nicht beendet wurde obwohl schon mehr als 4 Steine in einer Reihe waren. Diesen habe ich schon behoben.
Also bei mir hatt sich das Spiel noch nie aufgehängt aber vielleicht tritt das bei mir auch noch einmal auf.
Grüße Martin
zur Unterstützung der verschiedenen Python Versionen wollte ich noch sagen, dass ich schon etwas darauf geschaut habe. dass er vorwärtskompatibel ist. Da ich eigentlich nur mehr Python 2.6 verwende. habe ich nicht darauf geachtet, dass der Code auch noch mit Python 2.5 läuft.
Das Exception Handling werde ich auf auf die neue Variante umstellen.
@Numerix: Danke für dein Feedback. Einen Fehler habe ich schon gefunden, bei dem das Spiel nicht beendet wurde obwohl schon mehr als 4 Steine in einer Reihe waren. Diesen habe ich schon behoben.
Also bei mir hatt sich das Spiel noch nie aufgehängt aber vielleicht tritt das bei mir auch noch einmal auf.
Grüße Martin