' Svjatoslav Agejenko ' year 1999 DECLARE SUB setpal () DEFINT A-Y DECLARE SUB box (x1, y1, x2, y2, x3, y3, x4, y4, c) 'draw filled 'box using 4 cordinates '(sometimes don't work 'correctly, but fast. '(PAINT command used)) DIM SHARED x1(1 TO 40, 1 TO 40) ' X & Y cordinates DIM SHARED y1(1 TO 40, 1 TO 40) ' SCREEN 12 setpal zfa = 1.5 1 FOR b = 1 TO 40 FOR a = 1 TO 40 x = 120 + (a * 10) y = 200 + (b * 3) y = y - COS(SQR((a - 20) ^ 2 + (b - 20) ^ 2) / zfa) * 20 x = (x - 320) * (b + 50) / 50 + 320 y = (y - 240) * (b + 50) / 50 + 240 x1(a, b) = x y1(a, b) = y NEXT a NEXT b FOR b = 1 TO 39 FOR a = 1 TO 39 IF (a + b) \ 2 = (a + b + 1) \ 2 THEN c = 0 ELSE c = 5 kz = b + (a / 3) box x1(a, b), y1(a, b), x1(a + 1, b), y1(a + 1, b), x1(a, b + 1), y1(a, b + 1), x1(a + 1, b + 1), y1(a + 1, b + 1), c NEXT a NEXT b a$ = INPUT$(1) zfa = zfa * 1.9 CLS IF zfa > 10 THEN SYSTEM GOTO 1 SUB box (x1, y1, x2, y2, x3, y3, x4, y4, c1) c1 = c1 + (y2 - y1) / 3.5 + (kz / 8) + 4 IF c1 < 0 THEN c1 = 0 IF c1 > 15 THEN c1 = 15 a = SQR((x1 - x2) ^ 2 + (y1 - y2) ^ 2) b = SQR((x3 - x4) ^ 2 + (y3 - y4) ^ 2) IF b < a THEN b = a FOR a = 1 TO b x5 = (x2 - x1) * a / b + x1 y5 = (y2 - y1) * a / b + y1 x6 = (x4 - x3) * a / b + x3 y6 = (y4 - y3) * a / b + y3 LINE (x5, y5)-(x6, y6), c1 LINE (x5 + 1, y5)-(x6 + 1, y6), c1 NEXT a END SUB SUB setpal FOR a = 0 TO 16 OUT &H3C8, a OUT &H3C9, a * 4 OUT &H3C9, a * 4 OUT &H3C9, a * 3 NEXT END SUB