AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zufallswort erzeugen - verhindern dass Wort 2x hintereinande
Thema durchsuchen
Ansicht
Themen-Optionen

Zufallswort erzeugen - verhindern dass Wort 2x hintereinande

Ein Thema von Assun · begonnen am 23. Mai 2005 · letzter Beitrag vom 23. Mai 2005
Antwort Antwort
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#1

Zufallswort erzeugen - verhindern dass Wort 2x hintereinande

  Alt 23. Mai 2005, 16:08
Hi !

so erzeuge ich zufallswörter :
Delphi-Quellcode:
Var Namen : TStringList;
Zahl : integer;
begin
Randomize;
Namen := TStringList.Create;
Namen.Add('Eros');
Namen.Add('Herbert');
Namen.Add('Anton');
Namen.Add('Hugo');
Namen.Add('Fabian');
Namen.Add('Niemand');
ShowMessage(Namen.Strings[Random(Namen.count)]);
end;
doch wie kann ich verhindern, dass ein Wort doppelt vorkommt ?

Vielen Dank im Voraus !

Gruß Assun
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Zufallswort erzeugen - verhindern dass Wort 2x hinterein

  Alt 23. Mai 2005, 16:10
Die Worte, die du bereits benutzt hast, aus der Liste löschen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zufallswort erzeugen - verhindern dass Wort 2x hinterein

  Alt 23. Mai 2005, 16:16
Zitat von Dax:
Die Worte, die du bereits benutzt hast, aus der Liste löschen
Eine Alternative wäre die Verwendung von einem der vielen Lotto-Funktionen die in der DP herumliegen.
Mit ein/zwei änderungen können die genau das was Du möchtest.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Zufallswort erzeugen - verhindern dass Wort 2x hinterein

  Alt 23. Mai 2005, 16:20
hmmm

Wenn man die Wörter aus der Liste löscht sind sie doch net mehr verfügbar oder ?

kann mal jemand vllt n kleines beispiel machen ? Danke !
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Zufallswort erzeugen - verhindern dass Wort 2x hinterein

  Alt 23. Mai 2005, 16:23
Hallo Sebastian,

was hältst du hiervon:

Delphi-Quellcode:
procedure RandomizeStrings(sl: TStrings);
var
  i: integer;
begin
  for i := 1 to sl.Count - 1 do
    sl.Exchange(Pred(i), Pred(i + Random(sl.Count - i)));
end;
Grüße vom marabu

Obergrenze von i optimiert
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Zufallswort erzeugen - verhindern dass Wort 2x hinterein

  Alt 23. Mai 2005, 17:05
Hi,
manchmal fördert auch die Suche, erstaunliches [dp="doppelte einträge löschen"]zu Tage[/dp].

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.613 Beiträge
 
#7

Re: Zufallswort erzeugen - verhindern dass Wort 2x hinterein

  Alt 23. Mai 2005, 18:05
Ganzt einfach indem Du Dir z.B. die letzte Zahl merkst und so lange eine neue generieren lässt bis Du eine andere hast:

Delphi-Quellcode:
function getName(lastone: integer) : integer;
var
   Namen : TStringList;
   Zahl : integer;
begin
   Randomize;
   Namen := TStringList.Create;
   Namen.Add('Eros');
   // weitere Namen

   zahl := lastone;
   while (zahl=lastone) do
      zahl := Random(Namen.count)
   ShowMessage(Namen.Strings[zahl]);
   result := zahl
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 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