Autor |
Beitrag |
pupu
Beiträge: 104
WinXP
Borland Delphi 7, Turbo Pascal 7
|
Verfasst: Mo 09.10.06 21:34
Hi
Ich habe wie hier beschrieben in Informatik ein Snakespiel programmiert...
Es gab keine festen Vorgaben und uns wurde mehr oder weniger freie Hand gelassen.
Unser Lehrer hat uns 3 Vorlagen nach und nach gegeben von denen man klauen kopieren oder das ganz einfach abändern konnte (wovon 5/6 des Kurses Gebrauch machten) Aber mir war das zu flach und deshalb hab ich mein snake nach eigenem Stil programmiert...
Dementsprechen "unprofessionell" ist auch mein Prinzip was ihr bestimmt sehen werdet
Mein Lehrer arbeitet vielmehr über Parameter...ich mag lieber die globalen Variablen
Nu ham wa n neues Projekt angefangen und ich lass snak0r erstmal in seiner version 1.41 ruhen...
Wenn ihr wollt könnt ihr daran weiterarbeten... lasst mich eure Ergebnisse sehen
Hach ja is das schwer wenn man seine Kinder aus den Armen geben muss
Hier is der downloadlink:
home.arcor.de/patricksteffens/snak0r.zip
Wenn ihr wollt bessert den Code aus aber bitte lasst mich an jeder Veränderung wissen damit ich auch noch was dazu lern
_________________ Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 09.10.06 21:42
Moin!
Sorry, aber das muss ich doch jetzt loswerden, da du schon den zweiten Thread dazu startest, haste das auch verdient...
pupu hat folgendes geschrieben: | Dementsprechen "unprofessionell" ist auch mein Prinzip was ihr bestimmt sehen werdet
Mein Lehrer arbeitet vielmehr über Parameter...ich mag lieber die globalen Variablen |
Und du meinst nicht, dass dir das eventuell etwas zu denken geben sollte?!
pupu hat folgendes geschrieben: | damit ich auch noch was dazu lern |
Ich denke, dein Lehrer hat dir bereits Vorlagen gegeben. Weiterhin denke ich, "dazulernen" fängt mit "dazu-denken" an... Du solltest die Gelegenheit nutzen, statt dir von uns Code zu "erbetteln" (oder warum sonst erwähnst du mehrfach, dass wir doch bitte Lust haben sollen, deinen Code zu verbessern?)
Ich bin der letzte, der sich weigert zu helfen, aber mit dem Denken must du schon selbst anfangen.
Und um wieder OnT zu werden und dir einen Vorschlag zu machen, was du an deinem Programm verbessern könntest: schmeiß die globalen Variablen raus!
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
pupu
Beiträge: 104
WinXP
Borland Delphi 7, Turbo Pascal 7
|
Verfasst: Mo 09.10.06 21:58
ähm wenn du meinen ersten Thread verfolgt hättest dann wüsstest du dass ich snak0r leigen lasse und diesen thread hab ich auf empfehlung von einigen leuten geöffnet weuil das hier am besten reinpasst...
pupu hat folgendes geschrieben: | 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 |
Quake User hat folgendes geschrieben: | 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. |
zion hat folgendes geschrieben: | wenn dus nicht weitermachen willst, könntest du es auch als OpenSource freigeben und wir können dann hier dran rumbasteln |
Ne also wirklich ich habe weder vor irgendwelche Code zu erbetteln noch "nicht nachzudenken" wenn du wüsstest wieviel ich über das kackprogramm nachgedacht hab...und wie oft ich mir über den Code von unserem Lehrer den Kopf zerbrochen hab
Aber ich wollte das alleine machen ich wollte ein Spiel mal GANZ alleine programmieren ohne groß Tipps und ich hab 70% meiner probleme selbst gelöst ohne hier oder in der schule nachzufragen also erzähl mir nich dass ich "nicht nachdenke"
Nun Im nachhinein hör ich einfach auf "Quake Users" Tipp dass ich den Code freigebe und was dazulerne... was kann daran falsch sein???
Jetzt hab ich keine zeit mehr und ich lass euch freie hand darüber dass ichs mehrfach erwähnt hab is mir nich aufgefallen und war keine absicht
man!
_________________ Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 09.10.06 22:55
Moin!
OK, komm wieder runter. Die Code-Bettel-Unterstellung nehm´ ich zurück.
Viel Erfolg noch.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
pupu
Beiträge: 104
WinXP
Borland Delphi 7, Turbo Pascal 7
|
Verfasst: Di 10.10.06 14:02
danke sorry aber ich hab mich in dem moment nur mega aufgeregt weil da mehr arbeit drinsteckt als man denkt
_________________ Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
|
|
nullplan001
Beiträge: 212
Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
|
Verfasst: Di 07.11.06 18:29
Hi all,
ich habe da noch einen Fehler entdeckt: Du klaubst dir den Pfad für die data.dat aus GetCurrentDirectory(), stimmts? Das ist nicht nur unprofessionell, es ist auch noch inkorrekt. Mir wurde beim On-The-Fly-Testen deines Progs erstmal eröffnet, die Datei "%appdata%\Mozilla\Firefox\data.dat" könne nicht gefunden werden. Um konstruktiv zu werden: Hol dir den Pfad aus
Delphi-Quelltext 1: 2: 3: 4:
| var data_datLiesIn : string; begin data_datLiesIn := ExtractFilePath(Paramstr(0)); end; |
So machst du dir auch unter den exzessiv-Konsolen-nutzern (wie mir) Freunde, weil bei denen meistens GetCurrentDirectory() und ExtractFilePath(ParamStr(0)) nicht übereinstimmen.
Und in dem Fall war bei mir nicht mal eine Konsole im Weg. Das geht schneller, als man denkt.
Den nächsten Fehler kann ich dir leider nicht sagen, da das Spiel direkt nach dem "Spiel->Starten" terminiert wurde. Es gab noch eine Fehlermeldung, aber die wurde gleich mit terminiert . Das Bild mit der Nachricht mit irgendwas über Pfeiltasten wurde noch geladen. OS siehe Randspalte.
Tschö,
nullplan
_________________ Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe
|
|
pupu
Beiträge: 104
WinXP
Borland Delphi 7, Turbo Pascal 7
|
Verfasst: Di 07.11.06 23:15
Zum ersten problem: ich mach mich ma auf die suche (puh ganz schön schwer sich da wieder reinzufuchsen wenn man da so lange nich mehr drangesessen hat...ich gewöhn mir an mehr kommentare zu schreiben )
zum letzteren. KEINE AHNUNG...
edit: so weit ich das überblicke lade ich die data.dat eigentlich weder über "getcurrentdir()" noch was anderes... ich habe einfach
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Procedure TForm2.laden(); var i:integer; liste2:TStringlist; begin liste2:=TStringlist.Create; try liste2.LoadFromFile('data.dat'); for i:=0 to Stringgrid1.RowCount do Stringgrid1.Rows[i].CommaText:=liste2[i+2]; finally liste2.Free end; end; |
(was noch unprofessioneller is )
_________________ Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
|
|
nullplan001
Beiträge: 212
Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
|
Verfasst: Mi 08.11.06 16:20
Kein Problem, in dem Fall holt sich Delphi die nicht vorhandene Info (wo liegt die data.dat) aus GetCurrentDirectory. Ändere einfach Zeile 7 deines Quelltextes in:
Delphi-Quelltext 1:
| liste2.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\data.dat'); |
HTH,
nullplan
_________________ Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe
|
|
pupu
Beiträge: 104
WinXP
Borland Delphi 7, Turbo Pascal 7
|
Verfasst: Mi 08.11.06 16:38
ok und was genau is jetzt der unterschied? was genau bedeutet z.b. das paramstr? das hab ich noch nie verstanden und nirgendwo herausfinden können (bzw nirgendwo verstanden )
hab den link aktualisiert
_________________ Chuck Norris bekommt bei Praktiker auch auf Tiernahrung 20% oO
|
|
azubi_20
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Mi 08.11.06 16:48
paramstr ist ein Array in dem die beim Programmaufruf mitgegebenen Parameter als String drin sind.
paramstr[0] ist dabei das Programm inklusive vollen Pfad.
Beispiel :
Du rufst aus der Konsole so ein Programm auf :
Quelltext 1:
| C:\bla\blub\Programm.exe C:\bla\blub\daten.txt rw |
Dann ist ParamStr folgendermaßen belegt :
ParamStr[0] = "C:\bla\blub\Programm.exe"
ParamStr[1] = "C:\bla\blub\daten.txt"
ParamStr[2] = "rw"
|
|
nullplan001
Beiträge: 212
Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
|
Verfasst: Mi 08.11.06 19:40
azubi_20 hat folgendes geschrieben: | paramstr ist ein Array in dem die beim Programmaufruf mitgegebenen Parameter als String drin sind. |
Nee, ParamStr ist eine Funktion, die die Nummer des Arguments als Parameter nimmt und das entsprechenden Argument zurückgibt.
azubi_20 hat folgendes geschrieben: |
paramstr[0] ist dabei das Programm inklusive vollen Pfad.
Beispiel :
Du rufst aus der Konsole so ein Programm auf :
Quelltext 1:
| C:\bla\blub\Programm.exe C:\bla\blub\daten.txt rw |
Dann ist ParamStr folgendermaßen belegt :
ParamStr[0] = "C:\bla\blub\Programm.exe"
ParamStr[1] = "C:\bla\blub\daten.txt"
ParamStr[2] = "rw" |
Exakt, bis auf den oben erwähnten Denkfehler. Aber wenn du wirklich so gerne ein Array hättest, dann nimm argv. Das gibt es zumindest unter FreePascal.
Hinweis: ParamCount ist auch eine Funktion, argc eine Variable. Aber das ist für ParamCount eigentlich in den meisten Situationen wurscht, da sich in Pascal ein Bezug zu einer Variablen und ein Funktionsaufruf nicht wesentlich voneinander unterscheiden. ( writeln(argc, ParamCount);)
HTH,
nullplan
_________________ Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe
|
|