Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anfängerin muss (ähnliches wie) Frogger programmieren (https://www.delphipraxis.net/36407-anfaengerin-muss-aehnliches-wie-frogger-programmieren.html)

edi-design 20. Dez 2004 18:53

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
weiß nich obs dir viel hilft, aber hab mal bissl source zusammengerüttelt, 2 autos fahren, kollision is drin, und du kannst den hamster (hab keinen guten frosch hinbekommen) in alle 4-richtungen bewegen ;)

viel spaß damit, ich bastl emorgen noch bissl wieter dran, mit zufallsgenerator für autos usw.

cu andré

Sophia_X 20. Dez 2004 19:23

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
@Oxmyx

Ich bewunder es, wie schnell ihr so was hinkriegt. Übung macht den Meister, ne? Mir persönlich macht programmieren ziemlich viel spaß, aber mir mangelt es noch zu sehr an Kenntnise. Durch so ein Spiel kann man echt viel lernen und man hat ein Erfolgserlebnis.

Dein Quelltext hilft mir sehr viel weiter. Darauf wäre ich nie gekommen. Was ich gar nicht so verstehe ist folgendes:
Delphi-Quellcode:
for i := 1 to 10 do begin
    ZeroMemory(@AutoName, sizeof(AutoName));
    strlfmt(@AutoName, 32, 'Auto%d', [i]);
Wusste gar nicht, dass es so ein @ gibt. Und das % :gruebel:

@andré

:shock: Das hast dir aber schnell zusammengebastelt! Allein deine Zeichnung des "Spielfeldes" ist dir ja wohl eindeutig besser gelungen :cyclops: Aber leider kann ich mir nur die einzelnen Grafiken angucken. Wenn ich dein Projekt mit Delphi 3 öffne zeigt er folgendes Problem an: "Fehler beim Erzeugen von Formular: Ungültiges Stream-Format". Ich sehe dein Quelltext aber kann nix starten. Das Formular ist leer...

Was habe ich falsch gemacht? Liegt es an Delphi 3? Habe ich die falsche Datei angeklickt?

Sophia_X 20. Dez 2004 19:32

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Delphi sagt mir was von Datei nicht gefunden, wenn ich das Prgramm starten möchte. Sie lautet 'Variants.dcu'

fkerber 20. Dez 2004 19:34

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Hi!

Lösch Variants mal oben aus der Uses-Liste. Sollte dann gehen.


Ciao Frederic

Sharky 20. Dez 2004 19:35

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Zitat:

Zitat von Sophia_X
Delphi sagt mir was von Datei nicht gefunden, wenn ich das Prgramm starten möchte. Sie lautet 'Variants.dcu'

Das liegt wohl daran das der Code mit Delphi 7 geschrieben wurde. Lösche in der USES Klausel mal die Unit Variants. Dann solltest Du es kompilieren können.

Oxmyx 20. Dez 2004 19:44

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Zitat:

Zitat von Sophia_X
@Oxmyx

Ich bewunder es, wie schnell ihr so was hinkriegt. Übung macht den Meister, ne? Mir persönlich macht programmieren ziemlich viel spaß, aber mir mangelt es noch zu sehr an Kenntnise. Durch so ein Spiel kann man echt viel lernen und man hat ein Erfolgserlebnis.

Dein Quelltext hilft mir sehr viel weiter. Darauf wäre ich nie gekommen. Was ich gar nicht so verstehe ist folgendes:
Delphi-Quellcode:
for i := 1 to 10 do begin
    ZeroMemory(@AutoName, sizeof(AutoName));
    strlfmt(@AutoName, 32, 'Auto%d', [i]);
Wusste gar nicht, dass es so ein @ gibt. Und das % :gruebel:

Das @ ist der Adress-Operator. Wenn man ein @ vor eine Variable schreibt, dann liefert dieser Operator die Speicheradresse dieser Variablen zurück.
AutoName ist ja ein "array[0..31] of Char", also ein Array mit 32 Char-Variablen drin. Da jede Char-Variable ein Zeichen enthalten kann, ist ein Array of Char also so etwas wie ein "string".
Mit der Funktion ZeroMemory lösche ich den Speicherbereich, an der dieser Zeichenstring steht. Weil es kann sein, dass dort noch irgendwas steht, und dass das Char-Array wirklich ganz leer (mit Nullen gefüllt) ist, überschreibe ich einfach den gesamten Speicherbereich, den das Array einnimmt, mit Nullen (nichts anderes macht die ZeroMemory-Funktion).
Die Funktion strlfmt formatiert einen String nach einem vorgegeben Format. Der erste Parameter ist der String, in den geschrieben werden soll. Der zweite Parameter ist die größe des Arrays (da ein "Char" ein Byte groß ist, und das Array 32 Chars enthält, ist die Größe des Arrays also 32 Byte). Der dritte Parameter ist das Format des Strings. Das %d ist ein Formatsymbol. Es besagt. dass an dieser Stelle etwas in den String eingefügt werden soll (das "d" hinter dem % besagt, dass ein Ganzzahl-Wert an dieser Stelle eingefügt werden soll). Der einzufügende Wert steht im vierten Parameter.
Nachdem die Funktion ausgeführt wurde, steht im ersten Schleifendurchlauf in AutoName "Auto1", im zweiten Schleifendurchlauf steht in AutoName "Auto2", etc., weil strlfmt immer die Zählvariable hinter "Auto" setzt. Dann sucht FindComponent im 1. Schleifendurchlauf nach "Auto1" (und das ist ja der Name eines TImage-Steuerelements!), im 2. Schleifendurchlauf nach "Auto2", etc.

Sophia_X 20. Dez 2004 20:24

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
@Oxmyx

Danke, für diese ausführliche Erklärung! Jetzt verstehe ich es eindeutig besser! Wir hatten vieles von dem, was du erzählst noch gar nicht im Unterricht.

@all

Nein, das klappt leider auch nicht :cry: Das Problem fängt ja schon an, das ich kein Spielfeld sehe und Image und so im Formula.

Wenn ich euren Vorschlag befolge mit variants einfach löschen dann meckert er mit:

Fehler(0):RLINK32:Unsupported 16bit resource in file C:\...\Unit1.dfm

:( Hat denn keiner mehr Delphi 3? OK, es ist auch schon ziemlich alt von der Version... kriegt man Delphi 7 irgendwo her?? Oder gibt es doch noch eine Lösung mit Delphi 3?

Birzenbae 20. Dez 2004 20:35

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
der, der D7 sollte sich das hier mal durchlesen.

Nikolas 20. Dez 2004 21:15

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Ich glaube nicht, dass es sinnvoll ist, hier fertige Spiele zu posten [Kodex???]. Wie sie schon gesagt hat, versteht sie noch nicht so viel von Delphi und wenn sie dann ein Programm mit Adress-operatoren abgibt, müsste der Lehrer ihr eigentlich 0 Punkte geben, wenn er nicht wirklich dumm ist. Von da her fänd ich es besser, wenn du, Sophia weiter an deinem Ansatz arbeitest und dann die auftauchenden Fragen hier stellst. [Nachdem du nichts in der Suche darüber gefunden hast]

Oxmyx 20. Dez 2004 21:25

Re: Anfängerin muss (ähnliches wie) Frogger programmieren
 
Zitat:

Zitat von Toxman
Ich glaube nicht, dass es sinnvoll ist, hier fertige Spiele zu posten [Kodex???]. Wie sie schon gesagt hat, versteht sie noch nicht so viel von Delphi und wenn sie dann ein Programm mit Adress-operatoren abgibt, müsste der Lehrer ihr eigentlich 0 Punkte geben, wenn er nicht wirklich dumm ist. Von da her fänd ich es besser, wenn du, Sophia weiter an deinem Ansatz arbeitest und dann die auftauchenden Fragen hier stellst. [Nachdem du nichts in der Suche darüber gefunden hast]

Die Formatierung des Namens-Strings der Image-Komponenten ist keineswegs eine zentrale Stelle des Spielcodes. Das ist Nebensache. Und wie ich schon sagte: Es ist nicht falsch, sich Hilfe zu holen. Die Verwendung eines fertigen Codes halte ich zwar auch für falsch, aber eben bei der Formatierung eines Strings kann man sich durchaus bei anderen informieren, wie sowas geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz