![]() |
ARRAY mit einmalig verwendeten Zufallszahlen
Hallo,
ich will einem Array Zufallszahlen im Intervall 1 bis 32 geben. Dabei darf aber jede Zahl in diesem Intervall nur einem Index zugeordnet werden (soll ein Kartenspiel werden, jede Karte hat dann eine ID, die in dem Feld festgelegt wird). Ich könnte das z.Z. nur mit einer nahezu endlos erscheinenten Anzahl an Verkettungen von Schleifen realisieren. Ich denke/hoffe, dass das auch anders geht. mfg /Kopf |
Re: ARRAY mit einmalig verwendeten Zufallszahlen
Hai Kopfjaeger,
Herzlich Willkommen in der Delphi-PRAXIS. Schaue dir mal diesen ![]() Dort hatten wir eine tolle Diskussion zum Thema. |
Re: ARRAY mit einmalig verwendeten Zufallszahlen
Ich danke für deine schnelle Antwort. :)
Ebenso bei Christian Seehase für seinen Quellcode in den genannten Thread. Läuft wunderbar und stabil. :) mfg /Kopf |
Re: ARRAY mit einmalig verwendeten Zufallszahlen
Also eine einfache Lösung, die mir als erstes eingefallen wäre, ist Folgendes:
Geh in einer Schleife Deine Karten von 1 bis 32 durch und weise ihnen einen zufälligen Index für das Array zu.
Delphi-Quellcode:
var KartenStapel:array[1..32] of byte;
index,karte:byte; begin randomize; for index:=1 to 32 do KartenStapel[index]:=0; // sicherheitshalber initialisieren for karte:=1 to 32 do begin repeat index:=random(32); until KartenStapel[index]=0; // per Zufall leeren Platz finden KartenStapel[index]:=karte // und da eine Karte ablegen end end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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