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
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
PS: hoffe ist ok fürn 2ten Thread, da das Programm ja nun fertig ist passt es ja gut in in die Abteilung Showcase
Dunkin Donuts Freak
Ich krieg keinen Kontakt zum Server.
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
[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]
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]
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!
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
Zweites Mal: 36.800 Punkte =D
Drittes Mal: 43.300 Punket *jihhaaa* Mit 36 Donuts, 5 Watches und 4 Special Donuts
Viele Grüße Markus
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!
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
Zweites Mal: 36.800 Punkte =D
Drittes Mal: 43.300 Punket *jihhaaa* Mit 36 Donuts, 5 Watches und 4 Special Donuts
Viele Grüße Markus
Beim Ansehen des Codes musste ich ja spontan an diese Seite hier denken
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?
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?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
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!
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!
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
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
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
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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!
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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^^
EyDu hat geschrieben:Tja, daran merkt man, dass du dich wohl noch nicht all zu lange auf dem Gebiet der Informatik rumtreibstMarkus12 hat geschrieben:Was gibt es bitte so tolles auf der Seite?
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?!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Englisch sollte eigentlich für Leute mit Informatik kein Problem seinMarkus12 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?!
EyDu meinte jedenfalls die Artikel allgemein auf dieser Seite, keinen bestimmten. Heute war zum Beispiel mit Finite State Arg eine echte Perle dabei.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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!
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^^
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^^