![]() |
Ein Feld im Array zufällig anwählen
Hallo Leute!
Ich, der Delphi-Anfänger, habe eine kurze (für euch sicherlich sehr einfache) Frage: Wie kann ich in einem 2D-Array mit 10x10 Feldern ein zufälliges davon anwählen? Gruß Informatik-LK |
Re: Ein Feld im Array zufällig anwählen
[Wenn dein Name Programm ist, dann hast du ein kleines Problem]
Suche mal nach random und randomize! |
Re: Ein Feld im Array zufällig anwählen
Delphi-Quellcode:
Ungetestet und davon ausgehend, dass das Array [0..9,0..9] deklariert wurde.
x := Feld[Random(10), Random(10)];
|
Re: Ein Feld im Array zufällig anwählen
Zitat:
schaut es dann so aus. :stupid:
Delphi-Quellcode:
var
x: array [1..10, 1..10] of ...; // irgend wo im FormCreate // randomize; //... x := Feld[1+Random(10), 1+Random(10)]; |
Re: Ein Feld im Array zufällig anwählen
Danke erstmal für eure Antworten. Nur hat einer aus meinem Kurs gesagt, eure Idee wäre falsch, da der Variablen ja nur eine Zahl zugewiesen wird?
In unserem Kurs geht es darum, "Schiffe versenken" zu programmieren. Ich habe die Aufgabe, die einfache (wir haben mehrere Levels geplant) KI zu schreiben. Ihre Funktion ist das zufällige Auswählen eines Feldes und es dementsprechend, ob nun Wasser oder ein Schiff getroffen bzw. versenkt wurde, mit einem Wert zu versehen. Alle Felder haben zu Beginn "0" als Wert, d.h., dass noch nicht auf sie geschossen wurde. Wenn ein auf ein leeres Feld des Spielers geschossen wurde, kommt der Wert "1" zustande usw. Ich habe also folgende Fragen: 1) Warum hat mein Kollege aus dem Info-Kurs euren Vorschlag bezüglich
Delphi-Quellcode:
als inkorrekt dahingestellt?
x := Feld[Random(10), Random(10)];
2) Ich kann sozusagen überhaupt nichts selber in Delphi schreiben. Ich habe mich im ersten der vier Halbjahre im Leistungskurs nur mit Abschreiben durchmogeln können. Habt ihr irgendwelche Tipps, wie ich mich in Delphi gut reinfinden könnte? Ich weiß echt nicht woran es liegt, dass ich ständig vor einer leeren Unit sitze und wirklich fast gar nichts auf den Bildschirm bekomme. Gruß Informatik-LK |
Re: Ein Feld im Array zufällig anwählen
Vielleicht so?
Delphi-Quellcode:
grüße
x := random(10);
y := random(10); case feld[x,y] of 0 : feld[x,y]:=1; 1 : ... end; Klaus |
Re: Ein Feld im Array zufällig anwählen
Moiun, Moin ...LK
zu 1) Keine Ahnung, meiner Meinung ist das die Antwort auf die ursprüngliche Frage. Die Antwort geht aber einen Schritt weiter: Es wird nicht nur ein zufälliges Feld ausgewählt, sondern zusätzlich auch der Inhalt dieses zufälligen Feldes bestimmt. zu 2) Ist 'ne sehr subjektive Meinung: Entweder der Funke springt sehr schnell über - oder eben gar nicht. Wenn es bei dir schon seit so langer Zeit nicht "gefunkt" hat, dann würde ich mich sehr wundern, wenn es igendwann doch noch geschieht. Gruß Ralph :hi: |
Re: Ein Feld im Array zufällig anwählen
Zitat:
Zitat:
Denke bitte darüber nach, damit ich mich für meine Ausssage nicht noch rechtfertigen muss. |
Re: Ein Feld im Array zufällig anwählen
Du, s-off, meinst also, dass es doch noch sein kann, dass es bei mir "Pling!" macht? :wink:
|
Re: Ein Feld im Array zufällig anwählen
Zitat:
Ich behaupte mal, dass es bei jedem 'klick' machen kann; bei dem Einen dauert es ggf. länger als bei dem anderen, was aber nichts über irgendwelche Zugänge zum Thema aussagt. Was natürlich Grundvoraussetzung für ein OnClick ist, ist Interesse für das Thema. Ad hoc würde ich sagen, dass Du Interesse hast, da Dui sonst wohl keinen Informatikkurs gewählt hast. Und dass Du seit einem halben Jahr nur abschreibst, zeugt auch nicht unbedingt von Desinteresse. Weiter kann ich Dich leider nicht beurteilen. Würde ich ein Profil für Dich erstellen müssen, würde ich sagen: 'Informatikinteressierter, der aber irgendwie den Anschluss verpasst hat, und dadurch nicht wieder auf die richtige Spur kommt - Motivation und Aha-Erlebnisse fehlen.' Und da wieder auf den 'richtigen' Weg zu kommen - da helfen so demotivierende Sprüche nicht. Das kann natürlich auch alles vollkommen falsch sein, was ich geschrieben habe; nix Genaues weiß man nicht. |
Re: Ein Feld im Array zufällig anwählen
Naja, das Problem ist ja, wenn ich den fertigen Quelltext - also die Lösung - sehe, dann verstehe ich es beinahe auf Anhieb.
Das heißt, ich komme nie selber auf Ideen, wie ich bestimmte Aufgaben in Delphi lösen kann. Gibt es so etwas wie einen "Programmierer-Instinkt"? Wenn ja, dann fehlt er mir noch... Interesse an Informatik ist auf jeden Fall da. |
Re: Ein Feld im Array zufällig anwählen
So, nun meine Meinung.
Es gibt diesen "Programmierer-Instinkt" nicht. Sehr wohl gibt es eine Veranlagung zu analytischem Denken. Diese Veranlagung hat man und kann sie vertiefen oder man muss sie sich mühsam aneignen. Ich würde eher sagen, dass die Veranlagung bei Dir nicht vorhanden ist. Aber das analytische Denken kann man lernen. Hopfen und malz ist sicher nicht verloren bei Dir, es wird aber bestimmt ein schwerer Weg. Frei nach dem Text einen bekannten Liedes: "Dieser Weg wird kein leichter sein." Noch so ein Tip am Rande: Durch das ständige Abschreiben und Kopieren wird das mit dem Denkvermögen aber auch nicht besser. :warn: |
Re: Ein Feld im Array zufällig anwählen
Zitat:
|
Re: Ein Feld im Array zufällig anwählen
Zitat:
Irgendwann schnallt man es doch, wie ein Programm aufgebaut ist. Der Grundaufbau ist immer gleich. Und wenn ich dann angefangen habe, mich mit dem neuen Problem zu beschäftigen, dann wird das wie von selbst gelöst. Nur den Quellcode runterlesen und sich klarmachen: - jetzt kommt ein if und dann macht es dies und bei else macht er jenes. - Da ist ein Button und bei Klick passiert auch noch was. - So und nun haben wir alles zusammen und es wird auf Platte geschrieben Damit hat man das Programmieren noch lange nicht gelernt. Ich kann auch einen komplizierten Text auf Englisch lesen. Aber die Übersetzung von Deutschen Original ins Englische dieses Textes schaffe ich trotzdem nicht. Bin ich dann ein Übersetzungsprofi? |
Re: Ein Feld im Array zufällig anwählen
Ich bezog meine Aussage ganz allgemein auf alle, die sich gelegentlich fremde Sourcen ansehen (mich eingeschlossen), um daraus zu lernen. Inwieweit das auf den OP zutrifft, kann nur er selbst wissen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr. |
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