Wie genau soll die Wahrscheinlichkeit abnehmen? 50,30,20%? Folgender Ansatz ist anpassbar:
Delphi-Quellcode:
Const
propability : Array [0..8] if double = (1,2,4,8,16,32,64,128,256,-1)
procedure RecursiveCall (level : Integer);
var
i : Integer;
Begin
if propability[level]<0 then exit;
for i:=0 to 8 do
if random(propability[level])=0 then
RecursiveCall(level+1);
end;
// Aufruf
RecursiveCall(0);
Beim ersten Aufruf ist die Wahrscheinlichkeit 50%, danach 25% usw. Du kannst das Array anpassen, wie Du willst.