Einzelnen Beitrag anzeigen

Benutzerbild von codipodi
codipodi

Registriert seit: 29. Apr 2012
Ort: Duisburg
16 Beiträge
 
Delphi 2007 Professional
 
#1

Stringlist nur leicht mischen?

  Alt 3. Mai 2012, 11:35
Delphi-Version: 5
Hallo zusammen,
ich würde gerne eine Stringlist zufällig durchmischen. Soweit kein Problem, gibt es bereits:

Code:
procedure Shuffle(List: TStrings);
var
  i: Integer;
begin
  Randomize;
  List.BeginUpdate;
  try
    for i := 0 to Pred(List.Count) do
      List.Exchange(i, Random(List.Count));
  finally
    List.EndUpdate;
  end;
end;
Quelle: http://www.delphipraxis.net/110463-s...g-mischen.html

Mein Problem ist allerdings das ich die Liste nicht von vorne bis hinten auf den Kopf stellen möchte sondern nur leicht verändern will. Konkret geht es um eine Liste mit 1000 Einträgen.

Wie die Begrenzung genau aussehen soll lasse ich bewusst offen da ich nicht weiß welche sich am einfachsten umsetzen lässt. Mir würde z.B. einfallen das die Einträge sich um maximal 5 Plätze verschieben lassen oder in ihrer 10 Einheit bleiben (z.B. 88 darf nur von 81-90 verschoben werden).

Kann mir jemand weiterhelfen wie ich das realisieren kann? Random lässt sich ja nicht derart einschränken.

PS: Die Geschwindigkeit spielt keine Rolle.

Vielen Dank,

LG
Christian
Christian
  Mit Zitat antworten Zitat