Vielleicht noch eine Sache zum Kollsionsüberprüfung:
Warum machst du dir es da so schwer?
Ansich ist das doch kein Problem:
Delphi-Quellcode:
repeat
x := random(a);
y := random(b);
until feldDataAt(x, y) <> FD_FREE;
setFeldDataAt(x, y, DATA);
Also nochmal in Pseudocode:
Code:
wiederhole
x ist Zufallszahl bis a;
y ist Zuffalszahl bis b;
solange FeldDataAn(x, y) ist ungleich Felddata "Leer";
Setze FeldDataAn(x, y, FeldData)
Das ist meiner meinung nach die Einfachste und effektivste Methode. Die kann man bestimmt noch schneller machen, aber sie sollte nicht sehr lange dauern. Und ansonsten => Thread