Dunkin Donuts Freak

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Saob
User
Beiträge: 23
Registriert: Mittwoch 12. Dezember 2007, 20:11
Kontaktdaten:

Dunkin Donuts Freak

Beitragvon Saob » Sonntag 3. Februar 2008, 02:42

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
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Sonntag 3. Februar 2008, 09:40

Ich krieg keinen Kontakt zum Server.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Sonntag 3. Februar 2008, 12:34

[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]
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Sonntag 9. März 2008, 19:54

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
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Sonntag 9. März 2008, 20:34

Beim Ansehen des Codes musste ich ja spontan an diese Seite hier denken :shock: :wink:
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Sonntag 9. März 2008, 20:40

Was gibt es bitte so tolles auf der Seite? :?:
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Beitragvon mkesper » Sonntag 9. März 2008, 21:11

File "DunkinDonutsFreak.py", line 39
PlayFrame.pack(side="left", fill="both", expand=1, fill="both")
SyntaxError: duplicate keyword argument

Zweimal fill="both" ;)
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Sonntag 9. März 2008, 21:53

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?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Sonntag 9. März 2008, 23:29

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!
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Montag 10. März 2008, 16:15

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 :)
Zuletzt geändert von Markus12 am Montag 10. März 2008, 21:10, insgesamt 1-mal geändert.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 10. März 2008, 18:40

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Montag 10. März 2008, 22:16

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
DrChAoS
User
Beiträge: 14
Registriert: Montag 10. März 2008, 16:29

Beitragvon DrChAoS » Montag 10. März 2008, 23:05

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^^
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Dienstag 11. März 2008, 00:16

Hätte nicht gedacht das jemand ein Spiel mit Tkinter schreibt ;-)

Wirklich nett gemacht.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 11. März 2008, 12:22

Sr4l hat geschrieben:Hätte nicht gedacht das jemand ein Spiel mit Tkinter schreibt ;-)

Dann guck dir mawes Spiele an.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder