TREE.PNG
SCAR 3.15
SCAR Code:
VAR R,C,h,_2,_3,_1,BMP:INTEGER;
    _0,A:ARRAY OF INTEGER;
    TPA0,TPA1:ARRAY OF ARRAY OF TPOINT;
BEGIN
 DISPLAYDEBUGIMGWINDOW(200,200)
 BMP:=BitmapFromString(200,200,'')
 REPEAT
  SLEEP(200)
  IF ISarrowdown(0) THEN
  BEGIN
   R:=RANDOM(4) IF R=3 THEN
   BEGIN
    SetARRAYLength(TPA0,GetArrayLength(TPA0)+1)
    SetARRAYLength(TPA0[GetArrayLength(TPA0)-1],4)
    SetARRAYLength(TPA1,GetArrayLength(TPA1)+1)
    SetARRAYLength(TPA1[GetArrayLength(TPA1)-1],4)
    SetARRAYLength(A,GetArrayLength(A)+1)
    SetARRAYLength(_0,GetArrayLength(_0)+1)
    A[GetArrayLength(A)-1]:=RANDOMRANGE(-99,99)
   END;
   IF GetArrayLength(A)>0 THEN FOR C:=0 TO GetArrayLength(A)-1 DO INC(_0[C]);
  END;
  IF ISarrowdown(1) THEN ;;
  IF ISarrowdown(2) THEN FOR C:=0 TO GetArrayLength(A)-1 DO DEC(_0[C]);
  IF ISarrowdown(3) THEN ;;
  //
  FastDrawClear(BMP,0)
  IF GetArrayLength(A)>0 THEN
  BEGIN
   FOR C:=GetArrayLength(A)-1 DOWNTO 0 DO
   BEGIN
    IF _0[C]<15 THEN
    BEGIN
     TPA0[C][0].X:=3+96+A[C]           TPA0[C][0].Y:=0-(_0[C]*2)+93-(_0[C]*5)
     TPA0[C][1].X:=0-(_0[C]*4)+96+A[C] TPA0[C][1].Y:=3+(_0[C]*2)+93-(_0[C]*5)
     TPA0[C][2].X:=7+(_0[C]*4)+96+A[C] TPA0[C][2].Y:=3+(_0[C]*2)+93-(_0[C]*5)
     TPA0[C][3].X:=4+96+A[C]           TPA0[C][3].Y:=0-(_0[C]*2)+93-(_0[C]*5)
     //
     TPA1[C][0].X:=0-_0[C]+99+A[C]  TPA1[C][0].Y:=0-(_0[C]*5)+97+(_0[C]*2)
     TPA1[C][1].X:=0-_0[C]+99+A[C]  TPA1[C][1].Y:=9+(_0[C]*5)+97+(_0[C]*2)
     TPA1[C][2].X:=1+_0[C]+100+A[C] TPA1[C][2].Y:=9+(_0[C]*5)+97+(_0[C]*2)
     TPA1[C][3].X:=1+_0[C]+100+A[C] TPA1[C][3].Y:=0-(_0[C]*5)+97+(_0[C]*2)
     //
     GETBITMAPCANVAS(BMP).BRUSH.COLOR:=clGreen
     GETBITMAPCANVAS(BMP).PEN.COLOR:=CLGREEN
     GETBITMAPCANVAS(BMP).POLYGON(TPA0[C])
     //
     //
     GETBITMAPCANVAS(BMP).BRUSH.COLOR:=clBronze
     GETBITMAPCANVAS(BMP).PEN.COLOR:=clBronze
     GETBITMAPCANVAS(BMP).POLYGON(TPA1[C])
     //
    END;
   END;
  END;
  SafeDrawBitmap(BMP,GetDebugCanvas,0,0)
 UNTIL FALSE
END.