Using AI to improve code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 11 Sep 2024 14:56:56 +0000 (17:56 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 11 Sep 2024 14:56:56 +0000 (17:56 +0300)
Graphics/Presentations/KHK Intellektika 2004 demo/KHKDEMO3.BAS

index 0e69f0f..8b65c88 100755 (executable)
@@ -1,62 +1,85 @@
 SCREEN 7, , , 1\r
 \r
+' Main loop label\r
 1\r
-LINE (0, 0)-(319, 199), RND, BF\r
-SOUND 0, 1\r
-frm = frm + 1\r
-st = (SIN(frm / 10) + 2) / 3\r
-x = SIN(frm / 30) * 50\r
-y = COS(frm / 42) * 30\r
-\r
-\r
-FOR a = .1 TO 10 STEP st\r
-  CIRCLE (160 + x, 100 + y), 80, 10, , , a\r
-NEXT a\r
-\r
-c = RND * 2 + 12\r
-FOR a = 0 TO 50\r
-   f = (a + frm) / 12\r
-   f2 = (a + frm) / 7\r
-   x1 = SIN(f) * 50\r
-   y1 = COS(f) * 30\r
-   x2 = SIN(f2 + 6) * 80\r
-   y2 = COS(f2 + 6) * 120\r
-   LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), c\r
-NEXT a\r
-\r
-FOR a = 0 TO 50\r
-   f = (a * 15 + frm) / 12\r
-   f2 = (a * 15 + frm) / 7\r
-   x1 = SIN(f) * 50\r
-   y1 = COS(f) * 30\r
-   x2 = SIN(f2 + 6) * 80\r
-   y2 = COS(f2 + 6) * 120\r
-   CIRCLE (x1 + 80, y1 + 50), a / 2, 14\r
-   PAINT (x1 + 80, y1 + 50), 14\r
-NEXT a\r
-\r
-\r
-FOR a = 0 TO 15\r
-   f = (a + frm) / 12\r
-   f2 = (a + frm) / 7\r
-   x1 = SIN(f) * 50\r
-   y1 = COS(f) * 30\r
-   x2 = SIN(f2 + 6) * 80\r
-   y2 = COS(f2 + 6) * 120\r
-   LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), c\r
-NEXT a\r
\r
-FOR a = 0 TO 50\r
-  x = RND * 320\r
-  y = RND * 320\r
-  PSET (x, y), RND * 15\r
-NEXT a\r
-\r
-PCOPY 0, 1\r
-CLS\r
-\r
-IF frm > 100 THEN GOTO 2\r
-GOTO 1\r
-2\r
-CHAIN "KHKDEMO4.BAS"\r
+    ' Clear the screen\r
+    LINE (0, 0)-(319, 199), 0, BF\r
+\r
+    ' Delay, to limit animation speed\r
+    SOUND 0, 1\r
+\r
+    ' Increment frame counter\r
+    frm = frm + 1\r
+\r
+    ' Calculate step size based on sine wave\r
+    stpSize = (SIN(frm / 10) + 2) / 3\r
+\r
+    ' Calculate x and y offsets based on sine and cosine waves\r
+    xOffset = SIN(frm / 30) * 50\r
+    yOffset = COS(frm / 42) * 30\r
+\r
+    ' Draw circles with varying arc sizes\r
+    FOR a = .1 TO 10 STEP stpSize\r
+        CIRCLE (160 + xOffset, 100 + yOffset), 80, 10, , , a\r
+    NEXT a\r
+\r
+    ' Calculate random color\r
+    colr = RND * 2 + 12\r
+\r
+    ' Draw lines between points calculated using sine and cosine waves\r
+    FOR a = 0 TO 50\r
+        f1 = (a + frm) / 12\r
+        f2 = (a + frm) / 7\r
+        x1 = SIN(f1) * 50\r
+        y1 = COS(f1) * 30\r
+        x2 = SIN(f2 + 6) * 80\r
+        y2 = COS(f2 + 6) * 120\r
+        LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), colr\r
+    NEXT a\r
 \r
+    ' Draw and fill circles with varying radii\r
+    FOR a = 0 TO 50\r
+        f1 = (a * 15 + frm) / 12\r
+        f2 = (a * 15 + frm) / 7\r
+        x1 = SIN(f1) * 50\r
+        y1 = COS(f1) * 30\r
+        x2 = SIN(f2 + 6) * 80\r
+        y2 = COS(f2 + 6) * 120\r
+        CIRCLE (x1 + 80, y1 + 50), a / 2, 14\r
+        PAINT (x1 + 80, y1 + 50), 14\r
+    NEXT a\r
+\r
+    ' Draw additional lines between points calculated using sine and cosine waves\r
+    FOR a = 0 TO 15\r
+        f1 = (a + frm) / 12\r
+        f2 = (a + frm) / 7\r
+        x1 = SIN(f1) * 50\r
+        y1 = COS(f1) * 30\r
+        x2 = SIN(f2 + 6) * 80\r
+        y2 = COS(f2 + 6) * 120\r
+        LINE (x1 + 180, y1 + 150)-(x2 + 180, y2 + 150), colr\r
+    NEXT a\r
+\r
+    ' Draw random points on the screen\r
+    FOR a = 0 TO 50\r
+        x = RND * 320\r
+        y = RND * 320\r
+        PSET (x, y), RND * 15\r
+    NEXT a\r
+\r
+    ' Copy active page to visual page for smooth animation\r
+    PCOPY 0, 1\r
+\r
+    ' Clear the screen\r
+    CLS\r
+\r
+    ' Check if frame counter exceeds 100\r
+    IF frm > 100 THEN GOTO 2\r
+\r
+    ' Continue loop\r
+    GOTO 1\r
+\r
+' Exit label\r
+2\r
+    ' Chain to another program\r
+    CHAIN "KHKDEMO4.BAS"\r