Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ein Feld im Array zufällig anwählen (https://www.delphipraxis.net/106606-ein-feld-im-array-zufaellig-anwaehlen.html)

Informatik-LK 13. Jan 2008 21:49


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

sirius 13. Jan 2008 21:51

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!

DeddyH 13. Jan 2008 21:53

Re: Ein Feld im Array zufällig anwählen
 
Delphi-Quellcode:
x := Feld[Random(10), Random(10)];
Ungetestet und davon ausgehend, dass das Array [0..9,0..9] deklariert wurde.

turboPASCAL 14. Jan 2008 00:09

Re: Ein Feld im Array zufällig anwählen
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
x := Feld[Random(10), Random(10)];
Ungetestet und davon ausgehend, dass das Array [0..9,0..9] deklariert wurde.

...und wenn dein Array als Array [1..10, 1..10] of ... deklariert wurde,
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)];

Informatik-LK 16. Jan 2008 17:08

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:
x := Feld[Random(10), Random(10)];
als inkorrekt dahingestellt?

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

Klaus01 16. Jan 2008 17:43

Re: Ein Feld im Array zufällig anwählen
 
Vielleicht so?

Delphi-Quellcode:
x := random(10);
y := random(10);
case feld[x,y] of
  0 : feld[x,y]:=1;
  1 : ...
end;
grüße
Klaus

taaktaak 16. Jan 2008 18:04

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:

s-off 16. Jan 2008 18:40

Re: Ein Feld im Array zufällig anwählen
 
Zitat:

Zitat von taaktaak
Es wird nicht nur ein zufälliges Feld ausgewählt, sondern zusätzlich auch der Inhalt dieses zufälligen Feldes bestimmt.

Ach ja? Wo denn?

Zitat:

Zitat von taaktaak
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.

Genau - sehr subjektiv - auch Deine Meinung. Und meine subjektive Meinung zu Deiner subjektiven Meinung ist, dass diese ziemlicher Blödsinn ist.

Denke bitte darüber nach, damit ich mich für meine Ausssage nicht noch rechtfertigen muss.

Informatik-LK 16. Jan 2008 18:43

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:

s-off 16. Jan 2008 19:15

Re: Ein Feld im Array zufällig anwählen
 
Zitat:

Zitat von Informatik-LK
Du, s-off, meinst also, dass es doch noch sein kann, dass es bei mir "Pling!" macht? :wink:

Natürlich meine ich das.
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.

Informatik-LK 17. Jan 2008 09:11

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.

RavenIV 17. Jan 2008 12:12

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:

DeddyH 17. Jan 2008 12:17

Re: Ein Feld im Array zufällig anwählen
 
Zitat:

Zitat von RavenIV
Durch das ständige Abschreiben und Kopieren wird das mit dem Denkvermögen aber auch nicht besser. :warn:

Stimmt in dem Fall, wenn man es beim bloßen Kopieren belässt. Falls man sich aber mit dem Quellcode auseinandersetzt und versucht, ihn zu verstehen (ggf. mit Schreibtischtest), finde ich das nicht besonders anstößig, sonst müssten wir alle bei jedem Problemchen das Rad neu erfinden.

RavenIV 17. Jan 2008 12:26

Re: Ein Feld im Array zufällig anwählen
 
Zitat:

Zitat von DeddyH
Stimmt in dem Fall, wenn man es beim bloßen Kopieren belässt. Falls man sich aber mit dem Quellcode auseinandersetzt und versucht, ihn zu verstehen (ggf. mit Schreibtischtest), finde ich das nicht besonders anstößig, sonst müssten wir alle bei jedem Problemchen das Rad neu erfinden.

Aber wenn sich der Original-Author schon mit dem Quellcode einiger Projekte auseinander gesetzt und diesen analysiert hat, dann würde er nicht ständig vor einem weissen Editor-Fenster sitzen.
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?

DeddyH 17. Jan 2008 14:10

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 03:16 Uhr.

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