Autor Beitrag
pupu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Mo 02.10.06 23:55 
Hi
Hier möchte ich mein Informatik-Projekt in seiner Version 1.35 vorstellen...

Wir hatten in der ersten Stunde dieses Jahres (12. Klasse) die Aufgabe bekommen ein Snake zu programmieren mithilfe von Delphi (in der Schule: Borland Delphi 6)...

Aus anfänglichen Aufgaben wie "die Schlange muss wachsen" und "man muss die Schlange steuern können" wurden dann Aufgaben wie "man kann auch noch eine zweite Schlange einbauen" (was ich persönlich für sinnlos finde...deshalb hab ichs auch nich eingebaut) und "man sollte sein Ergebnis speichern können und beim nächsten Programmstart auch wieder laden können"...

Unser Info-Lehrer hat denn von Zeit zum Zeit ein paar seiner Vorlagen eingestruet von denen man klauen kann oder kopieren oder abändern usw usw... (davon ham viele in meinem Info-Kurs auch stark Gebrauch gemacht)...aber ich fand das irgendwie zu stumpf und außerdem kam ich mit dem Code unseres Lehrers nich so recht klar...

Also war ich einer von 2 leuten aus unserem Kurs (mit immer hin ca 15 leuten) der keine zeile des Codes von unserm lehrer kopiert hat...

Dementsprechen schlecht sieht auch mein Code aus aber es läuft und das is schon hundertprotzentig...vor allem die probleme die mit meinem stil verbunden waren, sodass mir mein Lehrer so gut wie gar nicht helfen konnte...folglich musste ich einen sehr großen teil meiner probleme selbst lösen...

Aber genug der Vorgeschichte...ich häng einfach mal meine .exe bzw mein .zip ;) an(ich habs noch nicht hinbekommen, dass er ohne, dass die datei wo der Highscore dringespeichert wird, mit der exe in einem Ordner liegt, startet.

Bitte schauts eucgh an und sagt mir was ich verbessern könnte...ich weiß nich mehr so recht was man noch verändern könnte ;)

Update

Habe folgende fehler behoben:
>Bei Pause läuft der Bonus weiter
>Der letzte PLatz wird beim Neu Laden (bei vollen Highscore) durch einen schwächeren ersetzt
>Die Hindernisse erscheinen in der unmittelbaren Nähe des Kopfes
>Hindernisse, Pillen und Schlange können nicht mehr "außerhalb" des Spielfeldes erscheinen
Außerdem geändert:
>Die benutzerdefinierten Einstellungen werden in einer INI_Datei gespeichert und geladen
>Stil der Highscoreliste geändert
>Buttons (Auf dem Formular) und Menüleiste-Buttons getrennt
Aktuelle Version: 1.4

Im Anhang hab ich jetzt zusätzlich nochmal die aktuellste (und vorerst letzte :( ) Version hochgeladen. Ab jetzt werde ich mich weiter unserem aktuellen Informatik-Projekt widmen und weniger snak0r. Bei Gelegenheit uppe ich den Code in den Open-Source Bereich...

Wenn euch noichz was auffällt dann sagt das trotzdem!!! weil sobald ich einen Bug beheben kann dann mach ich das immer noch...ich werde nur nicht mehr jeden Tag aktiv davor sitzen und das spiel verbessern ;)
Einloggen, um Attachments anzusehen!
_________________
Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO


Zuletzt bearbeitet von pupu am Fr 06.10.06 15:23, insgesamt 1-mal bearbeitet
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 03.10.06 00:00 
Sieht super aus, nur ich würd noch einbauen, dass neue Hindernisse nicht in unmittelbarer Nähe zum Schlangenkopf plaziert werden, und vllt. noch einen zusätzlichen Spielmodus, bei dem man auch zb. rechts raus laufen kann und dann links wieder rein kommt.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
pupu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Di 03.10.06 00:39 
hab an beides schon gedacht... hab sogar scho eie prozedur "durchdiewand()"...aber das ganze wird problematisch mit der variablen dicke der Schlange...hatte das ja schonmal probiert hat auch so weit geklappt aber das gab letztendlöich zu viele Bugs...

Das mit den steinen hab ich mir gedacht "Shit happens" ;) is zwar ärgerlich aber das leben is halt kein Ponyhof ;) :D
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Di 03.10.06 08:18 
ich finds so recht super nur es ist ein bisschen ärgerlich, dass man die Tasten immer wieder neu drücken muss (also nicht so dass ich in die Richtung "schlängle" wie ich gerade den Pfeil halte)

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
pupu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Di 03.10.06 13:27 
Du meinst du willt die schlange so lange neach links laufen lassen wie du die linke Pfeiltaste gedrückt hälst? Find ich persönlich irgendwie sinnlos ;)

Aber ein Frage hab ich noch...is euch bestimmt schon aufgefallen: Wenn z.b. die schlange nach rechts läuft und ich ganz schnell die Hoch-Taste und dann die Links-Taste drücke hab ich verloren...das ham einige aus meinem Kurs...wie kann ich sowas verhindern?
Unser Lehrer meinte irgendwann mal irgendwas von einem Puffer der die Tastendrückle Temporär speichert...aber ich weiß bem besten willen nicht wie ich as realisieren soll...könnt ihr mir da helfen?

Woran liegt dass das ich dann sterbe...ich habe in die Formkeydown-Prozedur für jede Taste einen check eingebaut der prüft ob nach links bereits gedrückt wurde, sodass ich nich nach rechts drücken kann...hab das mit 4 Boolean Variablen gelöst...
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 03.10.06 14:20 
cooles game, hab schon ewig kein snake mehr gespielt ;)

meine perönlichen Einstellungen:
Startlänge 5 | Dicke der Schlangenteile 2 | Geschwindigkeit 4 | Hindernisse 5 | Bonusschwund 1


ich würde aber "Dicke der Schlangenteile" in "Feldgröße" umbenennen ;)
und du solltest wenigstens (wenns nicht schon drin ist) das Feld vor dem Kopf und vill. bei denen um dem Feld rum verhindern, dass dort ein Hindernis erscheint.

//EDIT: außerdem wirkt es unprofessionell, einmal eine Windows-Leiste oben zu haben, und dann noch die Buttons rechts. Ansonsten muss man halt Fantasie haben, und sich irgendwelche "kranken" Sachen einfallen lassen, die man aber unter Einstellungen abstellen kann (z.B. Bonus-Teile, die sich bewegen ;) oder dass noch ne zweite schlange drin rumkriecht, oder wie in so nem Tron-Spiel, das ich mal hatte, dass die Schlange unendlich lange ist, und man versuchen muss, am längsten zu überleben)

//EDIT: noch ganz wichtig: die Einstellungen sollten mitgespeichert werden!

//EDIT: und irgendwie ist da noch ein Bug, wenn man in die andre Richtung drückt, als sie kriecht, dann ist manchmal das Spiel vorbei, aber nicht immer...

//EDIT: wenn mein neuer Highscore niedriger ist, als der Niedrigste in der Bestenliste, dann kommt das Feld für den Namen nichtmehr(gut). Wenn ich aber das Prog neustarte, dann kommt es wieder (schlecht).

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
pupu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Di 03.10.06 15:40 
vielen vielen dank...
Zitat:
ich würde aber "Dicke der Schlangenteile" in "Feldgröße" umbenennen

Warum?? Ich finds so plausibler, vor allem weil ich ja nich wirklich Felder (bzw halt ein Raster drin hab (hmmm ein raster das wär auch ne Idee ;) )

Zitat:
und du solltest wenigstens (wenns nicht schon drin ist) das Feld vor dem Kopf und vill. bei denen um dem Feld rum verhindern, dass dort ein Hindernis erscheint.

Wenns gewünscht wird denn werd ich mich da mal ransetzen

Zitat:
außerdem wirkt es unprofessionell, einmal eine Windows-Leiste oben zu haben, und dann noch die Buttons rechts.

Ich werd mal die verteilung der Buttons auf dem Formular und die verteilung der Buttons in der menüleiste verändern

Zitat:
Ansonsten muss man halt Fantasie haben, und sich irgendwelche "kranken" Sachen einfallen lassen, die man aber unter Einstellungen abstellen kann (z.B. Bonus-Teile, die sich bewegen ;) oder dass noch ne zweite schlange drin rumkriecht

hmmm ne sich bewegende schlange... das is mir noch etwas zu aufwendig ;) wär aber geil wenn denn manchmal plötzlich sone schlange auftaucht :-D

Zitat:
oder wie in so nem Tron-Spiel, das ich mal hatte, dass die Schlange unendlich lange ist, und man versuchen muss, am längsten zu überleben)

das war auch mein Anfangsstadium ;) Aber die Grundidee verschiedene Spielmodi zu bauen is nich schlecht...damit hätte ich bei unserm Lehrer gewonnen :-D

Zitat:
die Einstellungen sollten mitgespeichert werden!

Also in eine Datei?...hab ich mir auch schon überlegt...da muss ich ma sehn wie sich das realisieren lässt

Zitat:
und irgendwie ist da noch ein Bug, wenn man in die andre Richtung drückt, als sie kriecht, dann ist manchmal das Spiel vorbei, aber nicht immer...

pupu hat folgendes geschrieben:
is euch bestimmt schon aufgefallen: Wenn z.b. die schlange nach rechts läuft und ich ganz schnell die Hoch-Taste und dann die Links-Taste drücke hab ich verloren...das ham einige aus meinem Kurs...wie kann ich sowas verhindern?
Unser Lehrer meinte irgendwann mal irgendwas von einem Puffer der die Tastendrückle Temporär speichert...aber ich weiß bem besten willen nicht wie ich as realisieren soll...könnt ihr mir da helfen?


Zitat:
wenn mein neuer Highscore niedriger ist, als der Niedrigste in der Bestenliste, dann kommt das Feld für den Namen nichtmehr(gut). Wenn ich aber das Prog neustarte, dann kommt es wieder (schlecht).

Hab mir schoin gedacht dass da ein Bug kommt... so weit hatte ich es nie getestet ;) immer vorher den highscore gelöscht...aber da ich gerade die ganze speicherroutine umstrukturier behebt sich der Bug vllt

So far: danke für die viele ratschläge... endlich hab ich wieder was zu tun :-D
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 04.10.06 15:34 
user profile iconpupu hat folgendes geschrieben:

Zitat:
die Einstellungen sollten mitgespeichert werden!

Also in eine Datei?...hab ich mir auch schon überlegt...da muss ich ma sehn wie sich das realisieren lässt


einfach wie deine Highscores (SEHR UNPROFESSIONELL: Füge sie deiner Liste kurz vor dem speichern hinzu, beim laden einfach aus der Liste löschen ;) Ansonsten: Stichwort TextFile oder INI)

user profile iconpupu hat folgendes geschrieben:
und irgendwie ist da noch ein Bug, wenn man in die andre Richtung drückt, als sie kriecht, dann ist manchmal das Spiel vorbei, aber nicht immer...

pupu hat folgendes geschrieben:
is euch bestimmt schon aufgefallen: Wenn z.b. die schlange nach rechts läuft und ich ganz schnell die Hoch-Taste und dann die Links-Taste drücke hab ich verloren...das ham einige aus meinem Kurs...wie kann ich sowas verhindern?
Unser Lehrer meinte irgendwann mal irgendwas von einem Puffer der die Tastendrückle Temporär speichert...aber ich weiß bem besten willen nicht wie ich as realisieren soll...könnt ihr mir da helfen?

kuck einfach, ob das Feld, das in die Richtung ist, in die die Schlange kriechen soll, das 2. Feld der Schlange ist. Dann lässt du deine Variable einfach auf "oben" stehen und sieh kriecht nach oben.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
pupu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Mi 04.10.06 18:39 
Zitat:
einfach wie deine Highscores (SEHR UNPROFESSIONELL: Füge sie deiner Liste kurz vor dem speichern hinzu, beim laden einfach aus der Liste löschen ;) Ansonsten: Stichwort TextFile oder INI)

OIch findss auch ziemlich Unprofessionell aber ich weiß nicht wie du das meinst mit dem hinzufügen und beim laden löschen... was hab ich davon? Was meinst du mit Stichwort Textfile und INI?? wie kann ich das bewerkstelligen? und was kann ich damit bewerkstelligen??

_________________
Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
Leuchtturm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Mi 04.10.06 18:41 

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Do 05.10.06 09:14 
ich hab das spiel grad pausiert und das ist soweit auch ganz gut, aber er lädt alle paar sekunden den gelben/roten punkt neu; ich weiß nicht ob das so gewollt ist

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
pupu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Do 05.10.06 14:11 
ok danke...den bug kannte ich noch nich :-D...

Wir haben in Informatik jetzt ein neues Projekt begonnen (Text Codieren -.- ) werde aber nich die Bugs soweit fixen un dann wohl mich erstmal mit dem neueh Projekt befassen...ich poste dann hier bald die 1.4 und gut is ;) vielen dank für eure Hilfe und Anregungen

_________________
Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Do 05.10.06 14:54 
wenn dus nicht weitermachen willst, könntest du es auch als OpenSource freigeben und wir können dann hier dran rumbasteln ;)


//EDIT: kann es sein dass du die Hindernisse setzt ohne zu gucken, ob da ein Bonusteil liegt? Weil bei mir war grad nix da...ist aber dann irgendwo aufgetaucht.

//PS: bevor sich das jetzt hier erledigt will ich noch eins sagen: WARUM WOHNE ICH IN SO EINEM KUHKAFF WO MAN KEINEN INFO-KURS BELEGEN KANN??? :eyes: :bawling: :motz: :cry:

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
pupu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 104

WinXP
Borland Delphi 7, Turbo Pascal 7
BeitragVerfasst: Fr 06.10.06 15:29 
Ja das problem lag darin dass ich einen bereich zwischen 0 und der ImageBreite per zufall ausgewählt hab...un das konnte denn auch die imagebreite sein und das plus die schlangen breite liegt außerhalb des boldes so dass es scheint dass gar kein punkt gesetzt wurde...

btw: NEUE VERSION

_________________
Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Fr 06.10.06 17:47 
user profile iconpupu hat folgendes geschrieben:
Hi
Hier möchte ich mein Informatik-Projekt in seiner Version 1.35 vorstellen...
...
Also war ich einer von 2 leuten aus unserem Kurs (mit immer hin ca 15 leuten) der keine zeile des Codes von unserm lehrer kopiert hat...
...
Dementsprechen schlecht sieht auch mein Code aus aber es läuft und das is schon hundertprotzentig
...

Bitte schauts eucgh an und sagt mir was ich verbessern könnte...ich weiß nich mehr so recht was man noch verändern könnte ;)
ich werde nur nicht mehr jeden Tag aktiv davor sitzen und das spiel verbessern ;)


1. schön
2. Kopierter Code kann didaktisch auch sinnvoll sein.
3. Das dein Programm läuft ist leider nicht die Hauptsache. Wichtiger ist guter Stil, sonst hast Du in der Zukunft damit Probleme.
4. Wenn wir uns das Spiel ansehen, wird Dir das Nichts helfen. Besser währe es wir würden uns deinen Code ansehen. So könntest Du etwas lernen. Und - keine Angst, meine ersten Programme waren auch völlig Stilfrei.
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Sa 07.10.06 11:14 
zu 1.4:

1) man kann immer noch einen 11.Platz in die Bestenliste schreiben, der aber natürlich dort nicht auftaucht
2) wenn man den Sound ausstellt kommt immer noch der Game-Over Sound
3) könntest du das maximum der Schlangenlänge unter "Einstellungen" erhöhen? ;)
4) das mit dem Hinderniss vorm Kopf hat nich alzu viel gebracht. (Der Radius scheint noch zu klein)
5) ich würde noch mehr "Pillen" machen (z.B. Die Schlange wächst für eine Zeit lang um 10 oder auf Dauer usw.)

//EDIT: villeicht sollte ich mal ein eigenes machen mit meinen Ideen drin, das kann ich ja dann auch hier veröffentlichen :)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)