Seite 1 von 2

Dunkin Donuts Freak

Verfasst: Sonntag 3. Februar 2008, 02:42
von Saob
Joa, habe soeben den letzten Fehler beheben können und nun ist das ganze zu 100% meiner Meinung nach fertig :)
Danke an die Personen im "Entwicklungs-Thread", auch wenn es nicht ganz einfach war euch nachzukommen :P
Download: http://filebeam.com/ce7100def99ebf24ead623fc2f9379f0
Aufgabe ist es, soviele Donuts wie möglich einzusammeln, und dem Geist zu entkommen
1 normaler Donut = 100 Punkte, ne Uhr = 10 Sekunden extra + 500 Punkte, Special Donut = Bisherige Punktzahl*2
Mein Persöhnlicher Rekord liegt bei 47.XXX (weiß leider nimmer genau ^^)
Viel Spaß, und fleißig Kritik (am besten Konstruktive ;) ) und Bugmeldungen posten, und natürlich eure Highscore :P

PS: hoffe ist ok fürn 2ten Thread, da das Programm ja nun fertig ist passt es ja gut in in die Abteilung Showcase

Verfasst: Sonntag 3. Februar 2008, 09:40
von Imperator
Ich krieg keinen Kontakt zum Server.

Verfasst: Sonntag 3. Februar 2008, 12:34
von schlangenbeschwörer
[gutgemeinte_kritik]
Du hast das mit den Klassen immer noch nicht verstanden, oder?
Ich meine, Methoden mit global statt self, das ist schon ... . Ich finde es echt erstaunlich, was aus diesem wirklich nicht schönen Code rauskommt. Du solltest noch ein bisschen Tutorials lesen und es dann nochmal probieren, denn das geht wesentlich schöner. Aufgrund der Länge werde ich jetzt nicht alles kritisierbare kritisieren, aber zB brauchst du nicht 10 Tastendrücke an eine Funktion binden, die eh überprüft, welche Taste gedrückt wurde (Es gibt sowas wie "Any-KeyPress". Deine ghost-Klasse ist eine ansammlung von Funktionen, die sehr nach copy'n'paste-Programmierung aussehen und besser Zusammengefasst werden sollten. Namen wie "GameOver1" bis "GameOver15" oder "Info1" bis "Info15" (übrigens nicht PEP-konform) klingen auch nicht sehr günstig.
Die Sternchenimporte brauche ich wohl nicht mehr zu erwähnen...
[/gutgemeinte_kritik]

Verfasst: Sonntag 9. März 2008, 19:54
von Markus12
Also, ich habe deinen 1. Thread hier im Forum gefunden, habe es mir heruntergeladen und fand es schon mal eine sehr gute Idee =)
Man konnte zwar durch Wände laufen, aber das war nicht wichtig.

Jetzt habe ich den 2. Thread zufällig gefunden und muss sagen, du hast das Programm graphisch sehr schön umgesetzt! :-D

Das Programm gefällt mir und ich zocke es jetzt imer =)
Ich selbst werde mich da jetzt durcharbeiten, alles klassifizieren und noch kürzer machen, damit es einfach besser ausschaut^^

Mein Rekord beim ersten Mal zocken war genau 33.000 :D
Zweites Mal: 36.800 Punkte =D
Drittes Mal: 43.300 Punket *jihhaaa* Mit 36 Donuts, 5 Watches und 4 Special Donuts :D

Viele Grüße Markus :D

Verfasst: Sonntag 9. März 2008, 20:34
von EyDu
Beim Ansehen des Codes musste ich ja spontan an diese Seite hier denken :shock: :wink:

Verfasst: Sonntag 9. März 2008, 20:40
von Markus12
Was gibt es bitte so tolles auf der Seite? :?:

Verfasst: Sonntag 9. März 2008, 21:11
von mkesper
File "DunkinDonutsFreak.py", line 39
PlayFrame.pack(side="left", fill="both", expand=1, fill="both")
SyntaxError: duplicate keyword argument

Zweimal fill="both" ;)

Verfasst: Sonntag 9. März 2008, 21:53
von Markus12
Hey, den Error gibt es bei mir gar nicht? Ich habe es bis jetzt auch deswegen noch nicht bemerkt, habe es geändert^^

Cooles Programm!

Werde mir die Arbeit machen, und es besser machen, dann in eine ausführbare datei packen und zum Download anbieten, wenn du damit einverstanden bist?

Verfasst: Sonntag 9. März 2008, 23:29
von Hyperion
Schade, dass sich die Spielfigur nicht ruckfrei bewegt! Das solltest Du ändern. Auch wäre es imho besser, wenn sie sich weiter in eine Richtung bewegt, auch wenn man keine Taste gedrückt hat!

Naja, der Code ist tatsächlich sehr unübersichtlich. Ich denke da musst du noch mal grundsätzliche Konzepte verstehen!

Deine move-Funtkionen sind ... naja, schlecht! Wenn Du sie Dir anguckst wirst Du schnell sehen, dass die sich sehr sehr ähnlich sehen -> man kann das sicher zusammenfassen!

Überlege Dir außerdem mal eine Level-Struktur. Mit absoluten Koordinaten zu rechnen ist sicher keine gute Idee!

Zum Thema "Tile basiertes Level" gibst hier im Forum so einiges zu finden ;-)

Naja, ich arbeite im Moment auch an einem "Fun"-Programm - wenn ich das mal veröffentliche, kannst Du Dir da sicher einiges abgucken. Auch wenn's mit pygame gemacht ist - die Modell-Strukturen kann man ja quasi beliebig übernehmen in andere Toolkits. Daher ist der MVC-Pattern ja auch so unheimlich wichtig!

Ansonsten finde ich die Idee durchaus gelungen und außerdem macht so ein Spielchen einfach Spaß zu programmieren :-)
Also mein Tipp: Versuch das Python-Tutorial durchzuarbeiten und das auf Dein Spiel zu übertragen!

Verfasst: Montag 10. März 2008, 16:15
von Markus12
Also, ich habe jetzt fast alles analysiert, mir fielen direkt einige Verbesserungsvorschläge ein :-)

Was ich aber nicht verstehe: Für was steht denn das ´GhostAdd´?!
Ein grundlegender Tipp von mir: Variablen oder noch besser Attribute (wenn du OOP lernst) immer klein schreiben. Schon deine Bildvariablen heißen MarioImage etc. ich würde es lieber marioImage nennen...
Das ist wichtig, wenn du eine Klasse hast, das den Namen MyClass trägt, so kannst du die Variable myclass nennen! ;)

Du hast außerdem öfters Frames eingesetzt, wo sie nicht angebracht sind. So hast du den Spielcanvas in einen Frame gepackt, und den Frame in das Fenster zu den anderen Frames, ich würde einfach den Canvas zu den restlichen Frames packen, das ist alles erlaubt :D

Was ich aber toll finde ist der Geist, ohne ihn würde das Spiel nicht so viel oder gar keinen Spaß machen^^


Ich dachte mir am Anfang, als ich gesehen habe, dass du die ganzen GIFs mit Koordinaten geplact hast, dass ich das lieber mit dem Gridmanager machen würde, ist eine bessere Lösung, weil alle Bilder gleich groß sind und du dir damit hättest viel Zeit sparen können, um die Koordinatenzahlen auszuprobieren... Dann ist mir aber eingefallen, dass der Ghost ja nicht zwischen zwei Zellen Pixel um Pixel dann bewegt werden kann -.- Das ist der Nachteil und somit würde es aussehen wie bei der Spielfigur :)


Um nochmal auf meine Frage zurückzukommen.
Für was benutzt du die Variable ´GhostAdd`? Ich bin aus dem Namen einfach nicht schlau geworden, aber anscheinend willst du damit abfragen, ob zufällig die Mariospielfigur neben dem Geist steht, also das Spiel beendet werden muss... ?

Viele Grüße und viel Erfolg
Markus :)

Verfasst: Montag 10. März 2008, 18:40
von Leonidas
Markus12 hat geschrieben:Ein grundlegender Typ von mir: Variablen oder noch besser Attribute (wenn du OOP lernst) immer klein schreiben. Schon deine Bildvariablen heißen MarioImage etc. ich würde es lieber marioImage nennen...
Das ist wichtig, wenn du eine Klasse hast, das den Namen MyClass trägt, so kannst du die Variable myclass nennen! ;)
Wenn man Styleguide-konform sein wollte, würde man ``mario_image`` und ``my_class`` nutzen. Den Code selbst habe ich mir nicht angesehen, weil so viel Zeit habe ich momentan nicht für Codekritik.

Verfasst: Montag 10. März 2008, 22:16
von EyDu
Markus12 hat geschrieben:Was gibt es bitte so tolles auf der Seite? :?:
Tja, daran merkt man, dass du dich wohl noch nicht all zu lange auf dem Gebiet der Informatik rumtreibst :D

Verfasst: Montag 10. März 2008, 23:05
von DrChAoS
Ich habe mir den Code nur kurz angesehen, und da könnte man sicher noch vieles zusammenfassen. Und bis auf dass, das man nach jedem Spiel fast ne neue Tastatur braucht weil man so drauf rum hämmern muss finde ich das Spiel toll für zwischendurch^^

Verfasst: Dienstag 11. März 2008, 00:16
von Sr4l
Hätte nicht gedacht das jemand ein Spiel mit Tkinter schreibt ;-)

Wirklich nett gemacht.

Verfasst: Dienstag 11. März 2008, 12:22
von Leonidas
Sr4l hat geschrieben:Hätte nicht gedacht das jemand ein Spiel mit Tkinter schreibt ;-)
Dann guck dir mawes Spiele an.

Verfasst: Dienstag 11. März 2008, 14:44
von Markus12
EyDu hat geschrieben:
Markus12 hat geschrieben:Was gibt es bitte so tolles auf der Seite? :?:
Tja, daran merkt man, dass du dich wohl noch nicht all zu lange auf dem Gebiet der Informatik rumtreibst :D

Doch sehr wohl ;) Ich kann Python und habe Info in der Schule - Durchgehend 1, also muss ich ja wohl irgendetwas davon verstanden haben ;D

Ich habe sie nur überfolgen, aber 1. ist sie auf englich und am Anfang ist ein Artikel, ich meine überall sind Artikel. Da frage ich mich, was du meinst?!

Verfasst: Dienstag 11. März 2008, 15:08
von Leonidas
Markus12 hat geschrieben:Ich habe sie nur überfolgen, aber 1. ist sie auf englich und am Anfang ist ein Artikel, ich meine überall sind Artikel. Da frage ich mich, was du meinst?!
Englisch sollte eigentlich für Leute mit Informatik kein Problem sein :)

EyDu meinte jedenfalls die Artikel allgemein auf dieser Seite, keinen bestimmten. Heute war zum Beispiel mit Finite State Arg eine echte Perle dabei.

Verfasst: Dienstag 11. März 2008, 17:47
von Markus12
ja ich kann englisch, aber genau den Artikel den du mir, Leonidas, gerade gesagt hast, verstehe ich nicht. Was soll das bitte sein!? Endlos viele 0 und der Code ist nicht zu verstehen oder zu entziffern! :roll:

Verfasst: Dienstag 11. März 2008, 18:19
von EyDu
Markus12 hat geschrieben:[...] der Code ist nicht zu verstehen oder zu entziffern! :roll:
Jetzt bist du drauf gekommen ;-) Selbiges gilt nämlich auch für den Code des Spiels.

Verfasst: Dienstag 11. März 2008, 18:21
von Markus12
Ok, das habe ich mir fast gedacht, als ich den letzten Beitrag geschrieben habe^^

Doch finde ich schon. Das Script habe ich fast alles verstanden :-)
Nur beim Ghost habe ich eben nicht die Variable ´Ghostadd´ verstanden...

Er ist zwar schon weitläufig, aber doch etwas verständlich^^