From: Svjatoslav Agejenko Date: Sun, 25 Aug 2024 10:42:37 +0000 (+0300) Subject: Using AI to improve code readability X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=commitdiff_plain;h=0be6daea170a8c9c757839b862fbeeddce00d9c6;p=qbasicapps.git Using AI to improve code readability --- diff --git a/Graphics/bumpmap.bas b/Graphics/bumpmap.bas index e947549..aa4f296 100755 --- a/Graphics/bumpmap.bas +++ b/Graphics/bumpmap.bas @@ -1,10 +1,21 @@ +' Program render bump-map animation. +' By Svjatoslav Agejenko. +' Email: svjatoslav@svjatoslav.eu +' Homepage: http://www.svjatoslav.eu +' +' Changelog: +' ?, Initial version +' 2024.08, Improved program readability using AI + + DECLARE SUB makeSurface () DECLARE SUB animate () DECLARE SUB makeDot (x!, y!) DECLARE SUB paintImage () SCREEN 13 -DIM SHARED imgh(0 TO 50, 0 TO 50) +' surface height map +DIM SHARED imgHeight(0 TO 50, 0 TO 50) PAINT (0, 0), 1 @@ -14,86 +25,83 @@ animate SUB animate -frm = 0 + frame = 0 1 -frm = frm + 5 -lx = SIN(frm / 100) * 20 + 25 -ly = SIN(frm / 71.32) * 20 + 25 -lx = lx + SIN(frm / 34) * 10 -ly = ly + SIN(frm / 45) * 10 - - -FOR y = 2 TO 48 - FOR x = 2 TO 48 - d = SQR((x - lx) ^ 2 + (y - ly) ^ 2) - b = (30 - d) / 4 - - v = imgh(x - 1, y) - imgh(x, y) - bpx = (lx - x) * v - - v = imgh(x, y - 1) - imgh(x, y) - bpy = (ly - y) * v - - b = b + (bpx + bpy) / (d / 2) - - IF b < 0 THEN b = 0 - IF b > 15 THEN b = 15 - PSET (x + 150, y), 16 + b - NEXT x -NEXT y - -CIRCLE (lx + 150, ly), 2, 12 + frame = frame + 5 + lightX = SIN(frame / 100) * 20 + 25 + lightY = SIN(frame / 71.32) * 20 + 25 + lightX = lightX + SIN(frame / 34) * 10 + lightY = lightY + SIN(frame / 45) * 10 + FOR y = 2 TO 48 + FOR x = 2 TO 48 + distance = SQR((x - lightX) ^ 2 + (y - lightY) ^ 2) + brightness = (30 - distance) / 4 -GOTO 1 + value = imgHeight(x - 1, y) - imgHeight(x, y) + brightnessX = (lightX - x) * value + + value = imgHeight(x, y - 1) - imgHeight(x, y) + brightnessY = (lightY - y) * value + + brightness = brightness + (brightnessX + brightnessY) / (distance / 2) + IF brightness < 0 THEN brightness = 0 + IF brightness > 15 THEN brightness = 15 + PSET (x + 150, y), 16 + brightness + NEXT x + NEXT y + + CIRCLE (lightX + 150, lightY), 2, 12 + +GOTO 1 END SUB SUB makeDot (x, y) -FOR x1 = -10 TO 10 - FOR y1 = -10 TO 10 - dist = SQR(x1 * x1 + y1 * y1) - p = 4 - dist - IF p < 0 THEN p = 0 - imgx = x1 + x - imgy = y1 + y - IF imgx < 0 THEN imgx = 0 - IF imgy < 0 THEN imgy = 0 - IF imgx > 50 THEN imgx = 50 - IF imgy > 50 THEN imgy = 50 - imgh(imgx, imgy) = imgh(imgx, imgy) + p - - - NEXT y1 -NEXT x1 + FOR x1 = -10 TO 10 + FOR y1 = -10 TO 10 + dist = SQR(x1 * x1 + y1 * y1) + power = 4 - dist + IF power < 0 THEN power = 0 + imgX = x1 + x + imgY = y1 + y + IF imgX < 0 THEN imgX = 0 + IF imgY < 0 THEN imgY = 0 + IF imgX > 50 THEN imgX = 50 + IF imgY > 50 THEN imgY = 50 + imgHeight(imgX, imgY) = imgHeight(imgX, imgY) + power + + NEXT y1 + NEXT x1 END SUB SUB makeSurface -FOR x = 0 TO 10 - makeDot RND * 50, RND * 50 -NEXT x -FOR x = 0 TO 45 STEP 2 - makeDot x, x / 2 + 5 -NEXT x + FOR x = 0 TO 10 + CALL makeDot(RND * 50, RND * 50) + NEXT x + + FOR x = 0 TO 45 STEP 2 + CALL makeDot(x, x / 2 + 5) + NEXT x -FOR x = 5 TO 30 STEP 2 - makeDot x, -x / 1.2 + 30 -NEXT x + FOR x = 5 TO 30 STEP 2 + CALL makeDot(x, -x / 1.2 + 30) + NEXT x END SUB SUB paintImage -FOR x = 0 TO 50 - FOR y = 0 TO 50 - c = imgh(x, y) + 16 - PSET (x, y), c - NEXT y -NEXT x + FOR x = 0 TO 50 + FOR y = 0 TO 50 + clr = imgHeight(x, y) + 16 + PSET (x, y), clr + NEXT y + NEXT x END SUB diff --git a/Graphics/fract.bas b/Graphics/fract.bas index 2ecb464..b86af44 100755 --- a/Graphics/fract.bas +++ b/Graphics/fract.bas @@ -1,35 +1,42 @@ -' by Svjatoslav Agejenko -' 04.2003 +' Animated fractal that is made of size shifting squares. +' By Svjatoslav Agejenko. +' Email: svjatoslav@svjatoslav.eu +' Homepage: http://www.svjatoslav.eu +' +' Changelog: +' 2003.04, Initial version +' 2024.08, Improved program readability using AI -DECLARE SUB ga (x!, y!, s!) -DIM SHARED depth -DIM SHARED m1, m2, m3, m4 + +DECLARE SUB drawFractal (x!, y!, s!) +DIM SHARED recursionDepth +DIM SHARED factor1, factor2, factor3, factor4 SCREEN 7, , , 1 -depth = 1 +recursionDepth = 1 + 1 -frm = frm + 1 -m1 = SIN(frm / 19) * 1 + 3 -m2 = SIN(frm / 12) * 1 + 3 -m3 = SIN(frm / 17) * 1 + 3 -m4 = SIN(frm / 22) * 1 + 3 +frameCount = frameCount + 1 +factor1 = SIN(frameCount / 19) * 1 + 3 +factor2 = SIN(frameCount / 12) * 1 + 3 +factor3 = SIN(frameCount / 17) * 1 + 3 +factor4 = SIN(frameCount / 22) * 1 + 3 PCOPY 0, 1 CLS -ga 160, 100, 40 +drawFractal 160, 100, 40 SOUND 0, .4 -a$ = INKEY$ -IF a$ <> "" THEN SYSTEM +userInput$ = INKEY$ +IF userInput$ <> "" THEN SYSTEM GOTO 1 -SUB ga (x, y, s) -IF s > 1 THEN - depth = depth + 1 - LINE (x - s, y - s)-(x + s, y + s), depth, BF - ga x - s, y - s, s / m1 - ga x + s, y - s, s / m2 - ga x + s, y + s, s / m3 - ga x - s, y + s, s / m4 - depth = depth - 1 -END IF +SUB drawFractal (x, y, s) + IF s > 1 THEN + recursionDepth = recursionDepth + 1 + LINE (x - s, y - s)-(x + s, y + s), recursionDepth, BF + drawFractal x - s, y - s, s / factor1 + drawFractal x + s, y - s, s / factor2 + drawFractal x + s, y + s, s / factor3 + drawFractal x - s, y + s, s / factor4 + recursionDepth = recursionDepth - 1 + END IF END SUB - diff --git a/Graphics/fract2.bas b/Graphics/fract2.bas index 6feb3e9..be2373e 100755 --- a/Graphics/fract2.bas +++ b/Graphics/fract2.bas @@ -1,44 +1,52 @@ -' by Svjatoslav Agejenko -' 04.2003 - -DECLARE SUB ga (x!, y!, s!) -DIM SHARED m1, m2, m3 -DIM SHARED v11, v12 -DIM SHARED v21, v22 -DIM SHARED v31, v32 +' Animated tree fractal. +' By Svjatoslav Agejenko. +' Email: svjatoslav@svjatoslav.eu +' Homepage: http://www.svjatoslav.eu +' +' Changelog: +' 2003.04, Initial version +' 2024.08, Improved program readability using AI + +DECLARE SUB generateFractal (x!, y!, s!) + +DECLARE SUB generateArt (x!, y!, s!) +DIM SHARED modifier1, modifier2, modifier3 +DIM SHARED vector1X, vector1Y +DIM SHARED vector2X, vector2Y +DIM SHARED vector3X, vector3Y SCREEN 7, , , 1 1 -frm = frm + 1 -m1 = SIN(frm / 19) + 3 -m2 = SIN(frm / 12) + 3 -m3 = SIN(frm / 17) + 3 +frame = frame + 1 +modifier1 = SIN(frame / 19) + 3 +modifier2 = SIN(frame / 12) + 3 +modifier3 = SIN(frame / 17) + 3 -v11 = SIN(frm / 13) / 3 + 1 -v12 = SIN(frm / 18) / 3 + 1 +vector1X = SIN(frame / 13) / 3 + 1 +vector1Y = SIN(frame / 18) / 3 + 1 -v21 = SIN(frm / 20) / 3 + 1 -v22 = SIN(frm / 28) / 3 + 1 +vector2X = SIN(frame / 20) / 3 + 1 +vector2Y = SIN(frame / 28) / 3 + 1 -v31 = SIN(frm / 31) / 3 + 1 -v32 = SIN(frm / 24) / 3 + 1 +vector3X = SIN(frame / 31) / 3 + 1 +vector3Y = SIN(frame / 24) / 3 + 1 PCOPY 0, 1 CLS -ga 160, 180, 80 +generateFractal 160, 180, 80 SOUND 0, .5 -a$ = INKEY$ -IF a$ <> "" THEN SYSTEM +inputKey$ = INKEY$ +IF inputKey$ <> "" THEN SYSTEM GOTO 1 -SUB ga (x, y, s) -IF s > 1 THEN - LINE (x, y)-(x - s * v11, y - s * v12), 15 - LINE (x, y)-(x + s * v21, y - s * v22), 15 - LINE (x, y)-(x, y - s), 15 - ga x - s * v11, y - s * v12, s / m1 - ga x + s * v21, y - s * v22, s / m2 - ga x, y - s, s / m3 -END IF +SUB generateFractal (x, y, s) + IF s > 1 THEN + LINE (x, y)-(x - s * vector1X, y - s * vector1Y), 15 + LINE (x, y)-(x + s * vector2X, y - s * vector2Y), 15 + LINE (x, y)-(x, y - s), 15 + generateFractal x - s * vector1X, y - s * vector1Y, s / modifier1 + generateFractal x + s * vector2X, y - s * vector2Y, s / modifier2 + generateFractal x, y - s, s / modifier3 + END IF END SUB