Codebeispiele für einfache Spiele

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
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Hallo Forum,
Ich kenne mich leider noch nicht wirklich gut mit Python aus.
Aber Python interessiert mich und deshalb kenne ich auch schon grundlegende
Elemente. Jetzt habe ich vor ein kleines relativ simples Spiel zu entwickeln am liebsten
mit grafischer Oberfläche (vorzugsweise Tkinter). Da ich habe noch nicht weiß wie ich anfangen
soll und worauf ich achten muss, habe ich gehofft ihr zeigt mir ein paar Programme/Codes,
womit ich mir einen guten Überblick verschaffen kann und hinterher meine eigenen Ideen einfließen lassen kann. :)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo,

schau' Dich doch mal bei pygame um, dort findest Du jede Menge kleinere und größere Spiele und deren Quellcode. IMHO wirst Du mit pygame auch glücklicher als mit tkinter, wenn es darum geht, ein Spiel zu programmieren.

mutetella

EDIT: Leider ist pygame.org gerade down, musste halt später nochmal versuchen... (ist heute schon die zweite Seite, die nicht erreichbar ist... grml...)
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@mutetella: Ob `Tkinter` reicht oder nicht hängt IMHO auch vom Spiel ab. Es gibt Spiele da ist Pygame besser geeignet, welche wo beides geht, und sogar welche wo `Tkinter` besser geeignet ist. Zum Beispiel dann wenn man weniger individuelle Grafik, dafür aber viele „traditionelle” GUI-Elemente benötigt, die man sich in Pygame erst selber programmieren müsste.

@Kinimo: Da wäre jetzt also die Frage was für ein Spiel Du schreiben möchtest.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Danke schon mal für die Antworten :)

@BlackJack

Ich bin da für alles offen von snake, ping pong, tetris bis zu 2D jump and run spiele.
Aber es wäre auf jeden viel cool, wenn ich diese grafisch darstellen könnte, bei einem simplen
Spiel hatte ich gehofft, dass Tkinter ausreicht aber wie gesagt, ich bin bereit neues zu lernen!
BlackJack

@Kinimo: Also Snake, Pong, und Tetris dürften kein Problem sein mit Tkinter. Für ein Jump'n'Run wäre Pygame wahrscheinlich besser geeignet.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Gut dann probiere ich mal an Tetris aber wie fange ich das am besten an und was muss
ich dafür wissen?
BlackJack

@Kinimo: Grundsätzlich erst einmal wie Tetris funktioniert und welche Bestandteile dafür entworfen und programmiert werden müssen. Dann musst Du Dir überlegen mit welchen Datenstrukturen Du die Bestandteile von dem Spiel am besten im Programm repräsentierst. Also zum Beispiel wie Du die Spielsteine und das Spielfeld intern darstellen willst und welche Operationen auf diesen Objekten benötigt werden. Zum Beispiel das man die Steine drehen können muss. Oder das man einen Test braucht der volle Zeilen ohne „Löcher” auf dem Spielfeld erkennen kann. Das hat übrigens alles noch gar nichts mit der Grafik zu tun! Das ist dann aber auch etwas was man irgendwann braucht: Code der die interne Repräsentation des Spiels auf eine grafische Anzeige abbildet.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Das hört sich ja dann doch ziemlich schwierig an :?
Kannst du mir da i.wie ein Beispiel Programmierprojekt zeigen oder ein Link einfügen, woran ich mich entlang hangeln kann um die kompelxe Struktur erstmal nach vollziehen zu können. :K
Denn bisher konnte ich erst mit einem Objekt umgehen und Listen braucht man bestimmt auch.
BlackJack

@Kinimo: Ja, Listen wären für Tetris sicher praktisch. Was meinst Du „mit einem Objekt” umgehen? Man müsste selber Klassen schreiben. Zum Beispiel eine Klasse für die Spielsteine. Und eine für das Spielfeld. Und später dann welche für die Benutzeroberfläche, zum Beispiel für die Darstellung des Spielfelds.

Man muss ein grösseres Problem auf kleinere Teilprobleme aufteilen. Und die dann auch wieder aufteilen. Solange bis man die einzelnen Teilprobleme einfach jeweils mit ein paar Zeilen Code lösen kann. Und die Teillösungen setzt man dann zu grösseren Teilllösungen zusammen bis man eine Gesamtlösung hat.

Tetris ist vielleicht nicht so praktisch weil man das nicht so gut ohne GUI umsetzen kann. Was im Grunde auch für Snake und Pong gilt. Die lassen sich aber IMHO etwas einfacher modellieren weil die nicht ganz so komplex sind wie Tetris.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Ok, dass hat sich ja schon zu einfach um wahr zu sein angehört..
Dann fange ich liebe mit etwas anderem an, dass nicht ganz so Komplex ist.
Trotzdem danke für deine Bemühungen!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Fang doch einfach mal mit Tic Tac Toe an, da kannst du gut schrittweise vorgehen. Am besten schreibst du es als erstes so, dass man auf der Konsole spielen kann. Dann kannst du dein Programm um eine Oberfläche mittels Tkinter erweitern. Abschließend bietet sich noch eine KI an, damit du auch gegen den Computer spielen kannst. Bei Tic Tac Toe ist das besonders einfach, daher gut für einen Einstieg geeignet.

Bie so einem kleinen Projekt ist es dann auch nicht so schlimm wenn du mal etwas größere Fehler machst. Dann wirfst du den Code halt noch einmal weg und schreibst ihn vernünftig auf. Das wird dir am Anfang sicher häufiger passieren, ist aber ganz normal. Auf jeden Fall sind deine Ziele/Spielideen realistisch und alle gut umsetzbar.
Das Leben ist wie ein Tennisball.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Danke, dann werde ich das erstmal versuchen!
Malachite
User
Beiträge: 34
Registriert: Sonntag 24. Juni 2012, 13:43
Wohnort: Berlin

*bump*

Falls du irgendwann mit Pygame anfängst, empfehle ich dir diesen Artikel.
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Hier findest du viele Codebeispiele für Pygame, nämlich ch16 bis ch19.zip:
http://www.manning.com/sande/sourcecode ... y_Chapter/

Aus dem Buch http://www.manning.com/sande/

Ist zwar für Python bis 2.7 vorgesehen, aber mit meinem Python3.3/Python3.2.0 (64bit, windows 8 bzw. Ubuntu 12.04) und den entsprechenden Pygames klappt es mit kleinen Änderungen ebenfalls
Gruss,

siggi
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Der Vollständigkeit halber:

Python/Pygame code listings (Downloadseite, s. obiges Posting):

* Skier, Listing 10.1: ein Skifahrer fährt abwärts, vermeidet Zusammenstoß mit Bäumen (Punkteabzug) und versucht Fähnchen zu sammeln (Punktegewinn)

* PyPong, Listing 19.5: Ballspiel mit Paddle, Hintergrundmusik und Sounds. Die Listings 16.1 bis 19.4 dienen der Einführung in Pygame und der schrittweisen Einführung in PyPong

* Lunar Lander, Listing 24.1: Computersimulation einer Mondlandung. Es ist gar nicht so einfach, den Schub des Raumfahrzeugs so einzustellen, dass eine weiche Mondlandung stattfindet.
Gruss,

siggi
siggi
User
Beiträge: 79
Registriert: Montag 29. Januar 2007, 14:22

Habe eben erst gesehen, dass es hier auch um Tkinter ging. Deshalb noch was für Python/Tkinter, das Stickmanspiel, läuft bei mir auf Python2 (dann Tkinter aufrufen), und Python3 (dann tkinter aufrufen). Gar nicht so leicht, den Stickman mittels <left>, <right> und <Leertaste> über die Barrieren bis nach oben zur Tür hüpfen zu lassen!

Es ist Chapter 18, stickmangame7.py auf

http://jasonrbriggs.com/python-for-kids/code.html
Gruss,

siggi
Antworten