Seite 1 von 3
Pacman mit Tkinter
Verfasst: Donnerstag 13. Mai 2010, 10:09
von kaytec
Hallo !
Ein Pacman Clone - noch nicht fertig, doch wollte ich erst Prügel bekommen, bevor ich ihn fertig mache.
http://paste.pocoo.org/show/213495/
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Donnerstag 13. Mai 2010, 13:01
von Hyperion
Sieht doch gar nicht so schlecht aus
Was mich stört:
- Die Bewegungen der Bots sind wohl rein zufällig. Beim klassischen Pacman gehen die iirc immer weiter geradeaus, bis sie auf ein Hindernis stoßen. Dann biegen sie entsprechend des Winkels ab. http://paste.pocoo.org/show/213555/
- Ich würde ggf. verschiedene Bots einbauen, also mit unterschiedlichen Bewegungs-Engines. Sollte über Vererbung gut gehen oder man schreibt eine allgemeine Bot-Klasse, der man eine Bewegungsfunktion übergibt.
- Keine Kommentare - unschön für Außenstehende

- Level Daten gehören imho raus aus der Pac_Man-Klasse (Der Name Pac_Man wäre laut PEP8 auch eher PacMan). Ich würde auch die Magic-Numbers ggf. ins Level reinbauen. Also Foot-Points usw. Damit wären Levels variabler. Mauern usw. sind ja idR statisch, das kann da drin bleiben
- Super wäre es, Levels aus Textdateien zu laden. Ich würde mal gucken, ob man dazu nicht JSON nehmen könnte

Das mal auf die Schnelle

Re: Pacman mit Tkinter
Verfasst: Samstag 15. Mai 2010, 09:38
von kaytec
Dank Hyperion !
Der Bot läuft nach dem Zufallsprinzip. Würde ich ihn am Ende einer Laufrichtung entscheiden lassen, dann läuft er nur im äußeren Bereich des Feldes. Werde bei jeder möglichen Kreuzung den Bot entscheiden lassen.
Kommentare --> ???
Für die Levels eine eigene Klasse ?
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Samstag 15. Mai 2010, 11:03
von Sr4l
Ich finds lustig habe schon ne runde gespielt, nur eben das was Hypervision schon bemängelt hat.
PS: Das Spiel erkennt nicht wann man gewonnen hat?
Re: Pacman mit Tkinter
Verfasst: Samstag 15. Mai 2010, 16:53
von Jack Daniels
Das Spiel erkennt auch nicht, wenn man gegen nen Feind rennt. Ich kann zumindest durch die durchrennen wie ich grade will...
Ansonsten ist's echt lustig.
Re: Pacman mit Tkinter
Verfasst: Samstag 15. Mai 2010, 22:10
von kaytec
Hallo an Alle !
Ist ja noch nicht fertig -habe ich oben auch geschrieben ! Wird schon noch ein richtiges Spiel.
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Montag 17. Mai 2010, 09:16
von kaytec
Hallo !
Habe noch weiter gebastelt -->
http://paste.pocoo.org/show/214789/
Ja, es gibt noch einiges zu bemängeln !
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Montag 17. Mai 2010, 19:33
von HerrHagen
Cool.
Aber irgendwie hängt die Steuerung in dieser Version. Bei Tastendruck bewegt Pacman sich manchmal nicht, manchmal auch 2mal.
Warum schreibst du eigentlich immer dict() oder list(). {} oder [] find ich irgendwie übersichtlicher...
Statt
kannst du auch
oder besser noch
schreiben.
Re: Pacman mit Tkinter
Verfasst: Montag 17. Mai 2010, 19:56
von ms4py
HerrHagen hat geschrieben:Warum schreibst du eigentlich immer dict() oder list(). {} oder [] find ich irgendwie übersichtlicher...
Mach ich auch so, kann man besser auseinander halten

Re: Pacman mit Tkinter
Verfasst: Mittwoch 19. Mai 2010, 10:58
von kaytec
Hallo !
An der Spiellogik gebastelt -->
http://paste.pocoo.org/show/215632/
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Donnerstag 20. Mai 2010, 13:55
von kaytec
Hallo !
Danke für das Feedback und es gibt noch einiges zu tun.
-->
http://paste.pocoo.org/show/216178/
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Freitag 21. Mai 2010, 12:58
von kaytec
Hallo !
Noch einiges geändert -->
http://paste.pocoo.org/show/216600/
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Freitag 21. Mai 2010, 15:59
von HerrHagen
Weils so gut passt - man schaue sich das mal an (21.05.2010):
http://www.google.de/
Sogar mit Ton.
Re: Pacman mit Tkinter
Verfasst: Freitag 21. Mai 2010, 22:27
von kaytec
Hallo !
Kann ich auch -->
http://paste.pocoo.org/show/216800/
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Sonntag 23. Mai 2010, 20:44
von kaytec
Hallo !
So, eigentlich fertig -->
http://paste.pocoo.org/show/217487/
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Sonntag 23. Mai 2010, 21:03
von Hyperion
Wirklich? Ich finde das ist noch jede Menge Potenzial zur Verbesserung drin
- Wieso werden die Levels vor den imports definiert?
- Wieso sind zwischen den imports Leerzeilen?
- Sicher, dass die Einrückungen überall stimmen? (Zeile 159ff.)
- Wieso wird da ein Attribut "event" bei set_player_position definiert - wo es dann ja nicht verwendet wird!
- Wieso kann man die Levels noch nicht aus einer Datei laden?
- Wieso werden so viele Magic Numbers in der PacMan Klasse definiert; anstatt sie im jeweiligen Level zu definieren?
- Und fast am wichtigsten: Wieso gibt es keine Doku? So steigst Du da doch auch kaum mehr durch... Python hat ja ein Glück mit den Docstrings sogar Syntax und Semantik für Dokumentation direkt im Code.
Also imho noch viel zu tun

Re: Pacman mit Tkinter
Verfasst: Sonntag 23. Mai 2010, 21:46
von kaytec
Danke Hyperion !
1. Wusste nicht wo definieren.
2. Wusste nicht, dass da keine hingehören.
3. Manche waren auf 80 - ist geändert.
4. Meinst Du den event bei start_game ? Den event brauche ich nicht, doch übergebe ich ihn
nicht, dann meckert Python.
5. Ist das aus der Datei laden so wichtig ?
6. Ja - Magic Numbers kommen noch in die Levels.
7. Für mich ist die Dokumentation nicht so wichtig - für andere Leser schon. Ich mache die
ganze Sache nur so zum Spass und dokumentieren ist nicht so spaßig

.
Gruß Frank
Re: Pacman mit Tkinter
Verfasst: Sonntag 23. Mai 2010, 23:08
von BlackJack
@kaytec: Dokumentation ist für andere Leser? Dann schau Dir das Programm nach 'nem halben Jahr noch einmal an, und Du wirst feststellen, dass *Du* ein anderer Leser bist. Also ist die Dokumentation auch für Dich. Nach einer gewissen Zeit ist man nämlich selbst ein Fremder bei Quelltext den man selber verfasst hat.
Re: Pacman mit Tkinter
Verfasst: Montag 24. Mai 2010, 10:12
von Hyperion
kaytec hat geschrieben:
4. Meinst Du den event bei start_game ? Den event brauche ich nicht, doch übergebe ich ihn nicht, dann meckert Python.
Hm.... klingt für mich komisch! Was heißt denn "meckern"?
kaytec hat geschrieben:
5. Ist das aus der Datei laden so wichtig ?
Gegenfrage: Ist es denn so schwierig?

Sieh es mal so: Deine Chance etwas über JSON und Kommandozeilen-Parsing (z.B. OptParse) zu lernen. Natürlich braucht es das nicht, um ein nettes Spiel implementiert zu haben - aber so wird das ganze ja erst interessant, weil man eigene Levels nicht im Quellcode unterbringen muss.
Zur DOku hatte BlackJack ja schon geantwortet

Re: Pacman mit Tkinter
Verfasst: Montag 24. Mai 2010, 13:43
von kaytec
Hallo Hyperion !
Das ist die Fehlermeldung:
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
TypeError: set_player_position() takes exactly 3 arguments (4 given)
Der event entsteht durch die Bindung der Tasten an Tk, um die Steuerung zu übergeben.
Spielfelder laden:
Ist natürlich für den Nutzer dieses Spieles eine schöne Sache, doch wer außer mir wird es nutzen ? Da ich jetzt aber Lust habe dies auch zu ermöglichen, werde ich es mal versuchen.
Doku:
Das mit der Dokumentation ist so eine Sache. Die Doku sollte auf Englisch sein ....

Ich würde mehr für die schlechte Dokumentation kritisiert werden, als für meine "Amateurprogrammierkenntnisse". Habe auch nicht den Anspruch ein Profi zu werden, sondern sehe es als anspruchsvolleres "Rätselraten", um den Kopf von meiner eigentlichen Tätigkeit frei zu bekommen. Für euch würde es die Arbeit natürlich sehr erleichtern,denn ihr gebt euch mit mir auch immer viel Mühe - Danke. Nein, ich will keine Diskussion über Englisch losbrechen. Werde ich auch mal angehen. Mir ist es ziemlich egal, ob ich nach einem Monat noch den Verlauf verstehe - verblüfft mich immer wieder was ich mal so zusammengebastelt habe.
Gruß Frank