Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi random Problem ? (https://www.delphipraxis.net/24925-random-problem.html)

RX3 28. Jun 2004 18:02


random Problem ?
 
Hallo ich hab ein kleines Problemchen:
Und zwar möchte ich verschiedene Items aus einer Listbox per Zufall in verschiedene Gruppen aufteilen, wobei pro Gruppe maximal 4 Items reindürfen!
D.h.
In Listbox stehen verschiedene (z.B. 16) Items(Mannschaften):

Soll dann per Zufall in Gruppen aufgeteilt werden:
  • Gruppe A
    Item1
    Item9
    Item12
    Item3
  • Gruppe B
    Item11
    Item8
    Item4
    Item16

etc

Stellt euch das wie bei der EM vor! 16 mannschaften in verschiedenen Gruppen, die durch ein zufälliges Auswahlverfahren auf die Gruppen verteilt werden!


Kann mir jmd sagen wie ich die Sache angehen soll ?
Bräuchte nen kleinen Ansatz, danach kann ich evtl selber weitermachen !?

Matze 28. Jun 2004 18:09

Re: random Problem ?
 
Vielleicht hilft dir das hier weiter.

RX3 28. Jun 2004 18:38

Re: random Problem ?
 
Danke für die schnelle Antowrt!

Die Suche hab ich benutzt und bin auch auf den Thread gestoßen, waren auch stellen dabei die ich eigentlich gebrauchen könnte aber irgendwie kam ich da nicht wirklich weiter! Oder ich bin echt zu dumm dafür ...

Ich versuchs einfach nochmal ...

glkgereon 28. Jun 2004 19:25

Re: random Problem ?
 
du sachst einfach

Delphi-Quellcode:
while i<16 do
  Begin
  x:=random(4)+1;
  if (x=1) and (anzahl1<4) //wenns in gruppe 1 soll und gruppe 1 noch nit voll ist
  then Begin
       moveitem(i,x);    //schiebs in gruppe 1
       i:=i+1;           //erhöh den zähler
       anzahl1:=anzahl1+1;//erhöh die anzahl der items in gruppe 1
       end;
  if (x=2) and (anzahl2<4)
  then Begin
       moveitem(i,x);
       i:=i+1;
       anzahl2:=anzahl2+1;
       end;
  if (x=3) and (anzahl3<4)
  then Begin
       moveitem(i,x);
       i:=i+1;
       anzahl3:=anzahl3+1;
       end;
  if (x=4) and (anzahl4<4)
  then Begin
       moveitem(i,x);
       i:=i+1;
       anzahl4:=anzahl4+1;
       end;
   end;
is wahrscheinölich nopch ziemlich langsam....
muss optimiert werden, in 2 minuten zusammen gestückelt....

kein if-schleife, weil dann, falls die gruppe voll ist, wird der zähler erhöht, ohne das das item reinkommt....


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 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