Hallo
ich versuch das fraktale spiel mit delphi zu programmieren, es handelt sich hier bei um das Sierpinski-Dreieck
In einem Dreieck seien die drei Ecken mit jeweils zwei Ziffern eines Würfels belegt.
Ein beliebiger Ausgangspunkt wird gesetzt.
Es wird gewürfelt und ein Punkt auf der halben Strecke zwischen dem Ausgangspunkt und dem dem Würfelergebnis zugeordneten Punkt wird markiert und als neuer Ausgangspunkt definiert.
ich möchte das so programmieren, das ich die 3 eckpunkte des dreiecks so ausdrücke
die würfelzahlen 1/4 entsprechen den koordinaten in der paintbox left/bottom
2/5 --> right div 2/top
3/6 --> right/bottom
ich hab das alles in einer gezählten schleife laufen
hier ist der quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.ButtonxmalClick(Sender: TObject); var x,y,z,n,err1,i:integer; begin val (edit1.text,n,err1); x:=1; y:=1; if (err1=0) then for i:=1 to n do begin z:= random (6)+1; case z of 1,4:begin x:=round((x+paintbox1.canvas.cliprect.left) div 2); y:=round((y+paintbox1.canvas.cliprect.bottom) div 2); paintbox1.canvas.Pixels[x,y]:=clred; end; 2,5:begin x:=round((x+paintbox1.canvas.cliprect.right div 2) div 2); y:=round((y+paintbox1.canvas.cliprect.top) div 2); paintbox1.canvas.Pixels[x,y]:=clblack; end; 3,6:begin x:=round((x+paintbox1.canvas.cliprect.right) div 2); y:=round((y+paintbox1.canvas.cliprect.bottom) div 2); paintbox1.canvas.Pixels[x,y]:=clblue; end; end; end else messagedlg('Überprüfen Sie bitte die Eingabe',mterror,[mbok],0); end; |
doch nun macht das programm auch außerhalb des dreiecks punkte, das liegt daran, das es immer bei x und y vom startpunkt ausgeht und nicht den neu errechneten punkt als startpunkt nimmt
wie kann ich das machen, das er x und y dann ersetzt, geht es durch globale variablen und wenn wie kann ich diese ausdrücken, oder gibt es eine andere lösung für das problem
es wäre sehr cool wenn mir dabei einer helfen könnte
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt