Improve code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 24 Feb 2025 15:50:55 +0000 (17:50 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Mon, 24 Feb 2025 15:50:55 +0000 (17:50 +0200)
Graphics/Presentations/AI/AI demo.bas

index c6922e9..43a24c3 100644 (file)
@@ -1,3 +1,24 @@
+DECLARE SUB start ()\r
+DECLARE SUB sc1 ()\r
+DECLARE SUB sc2 ()\r
+DECLARE SUB sc3 ()\r
+DECLARE SUB sc4 ()\r
+DECLARE SUB sc5 ()\r
+DECLARE SUB sc6 ()\r
+DECLARE SUB sc7 ()\r
+DECLARE SUB sc8 ()\r
+DECLARE SUB sc10 ()\r
+DECLARE SUB sc9 ()\r
+DECLARE SUB box (x1!, y1!, x2!, y2!)\r
+DECLARE SUB calc (tx1!, ty1!, tz1!, tx2!, ty2!, tz2!, tx3!, ty3!, tz3!, c!)\r
+DECLARE SUB getan (x1!, y1!, x2!, y2!, N!)\r
+DECLARE SUB rot (zx!, zy!, x1!, y1!, N!)\r
+DECLARE SUB fp (x1!, y1!, x2!, y2!, x3!, y3!, c!)\r
+DECLARE SUB InitializeFont ()\r
+DECLARE SUB inpur ()\r
+DECLARE SUB mkback ()\r
+DECLARE SUB SetPalette (r!, g!, b!, c!)\r
+DECLARE SUB pri (x!, y!, s!, c!, a$)\r
 ' AI presentation\r
 ' made by Svjatoslav Agejenko\r
 ' in 2002\r
@@ -156,21 +177,20 @@ SUB getan (x1, y1, x2, y2, N)
 2\r
 END SUB\r
 \r
-SUB getfnt\r
-'DIM SHARED font(0 TO 7, 0 TO 7, 10 TO 200)\r
-\r
-pal 0, 0, 0, 70\r
-COLOR 70\r
-FOR a = 32 TO 150\r
-    LOCATE 1, 1\r
-    PRINT CHR$(a)\r
-    FOR y = 0 TO 7\r
-        FOR x = 0 TO 7\r
-            font(x, y, a) = POINT(x, y)\r
-        NEXT x\r
-    NEXT y\r
-NEXT a\r
-\r
+' Subroutine to initialize font data\r
+SUB InitializeFont\r
+    ' Capture font data into array\r
+    SetPalette 0, 0, 0, 70\r
+    COLOR 70\r
+    FOR a = 32 TO 150\r
+        LOCATE 1, 1\r
+        PRINT CHR$(a)\r
+        FOR y = 0 TO 7\r
+            FOR x = 0 TO 7\r
+                font(x, y, a) = POINT(x, y)\r
+            NEXT x\r
+        NEXT y\r
+    NEXT a\r
 END SUB\r
 \r
 SUB inpur\r
@@ -181,12 +201,12 @@ END SUB
 DEFINT A-Z\r
 SUB mkback\r
 CLS\r
-pal 0, 5, 5, 250\r
-pal 0, 5, 5, 251\r
-pal 0, 5, 5, 252\r
-pal 0, 5, 5, 253\r
-pal 0, 5, 5, 254\r
-pal 0, 5, 5, 255\r
+SetPalette 0, 5, 5, 250\r
+SetPalette 0, 5, 5, 251\r
+SetPalette 0, 5, 5, 252\r
+SetPalette 0, 5, 5, 253\r
+SetPalette 0, 5, 5, 254\r
+SetPalette 0, 5, 5, 255\r
 \r
 FOR a = 0 TO 127\r
     OUT &H3C8, a\r
@@ -250,20 +270,6 @@ IF s > 2 THEN GOTO 5
 END SUB\r
 \r
 DEFSNG A-Z\r
-SUB pal (r, g, b, c)\r
-    IF r < 0 THEN r = 0\r
-    IF g < 0 THEN g = 0\r
-    IF b < 0 THEN b = 0\r
-    IF r > 63 THEN r = 63\r
-    IF g > 63 THEN g = 63\r
-    IF b > 63 THEN b = 63\r
-\r
-    OUT &H3C8, c\r
-    OUT &H3C9, r\r
-    OUT &H3C9, g\r
-    OUT &H3C9, b\r
-END SUB\r
-\r
 SUB pri (x, y, s, c, a$)\r
     IF s = 1 THEN\r
         x2 = x\r
@@ -276,7 +282,7 @@ SUB pri (x, y, s, c, a$)
                     IF c1 > 0 THEN PSET (x1 + x2, y1 + y), c\r
                 NEXT x1\r
             NEXT y1\r
-    7\r
+7\r
         x2 = x2 + 8\r
     NEXT a\r
     END IF\r
@@ -292,7 +298,7 @@ SUB rot (zx, zy, x1, y1, N)
 END SUB\r
 \r
 SUB sc1\r
-pal 0, 63, 20, 255\r
+SetPalette 0, 63, 20, 255\r
 DIM px(0 TO 1000)\r
 DIM py(0 TO 1000)\r
 DIM pz(0 TO 1000)\r
@@ -325,7 +331,7 @@ inco = 0
 inpo = 0\r
 nlt = 0\r
 \r
-pal 40, 40, 40, 254\r
+SetPalette 40, 40, 40, 254\r
 COLOR 254\r
 LOCATE 2, 11\r
 PRINT "�ks hetk"\r
@@ -446,7 +452,7 @@ mkback
 \r
 box 30, 50, 250, 180\r
 \r
-pal 32, 64, 32, 250\r
+SetPalette 32, 64, 32, 250\r
 y = -8\r
 pri 30, 70 + y, 1, 250, "    Kasutatud kirjandus:"\r
 y = y + 20\r
@@ -469,7 +475,7 @@ inpur
 END SUB\r
 \r
 SUB sc2\r
-pal 0, 63, 20, 255\r
+SetPalette 0, 63, 20, 255\r
 CLS\r
 angl1 = 0\r
 angl2 = 1.5\r
@@ -534,11 +540,11 @@ FOR a = 0 TO np
 NEXT a\r
 \r
 'FOR a = 1 TO 63\r
-'pal COS(a / 9) * 30 + 30, SIN(a / 5) * 30 + 30, SIN(a / 13) * 30 + 30, a\r
+'SetPalette COS(a / 9) * 30 + 30, SIN(a / 5) * 30 + 30, SIN(a / 13) * 30 + 30, a\r
 'NEXT a\r
 \r
 FOR a = 1 TO 49\r
-    pal a * 1.1 + 20, a * 1.1 + 10, a * 1.1, a\r
+    SetPalette a * 1.1 + 20, a * 1.1 + 10, a * 1.1, a\r
 NEXT a\r
 \r
 DIM polz(1 TO nl)\r
@@ -590,7 +596,7 @@ FOR y = 0 TO 30
         PUT (x, 1), buf(1), PSET\r
     NEXT x\r
     FOR a = 1 TO 49\r
-        pal a * 1.1 + (20 - y), a * 1.1 + 10 + (y / 1.5), a * 1.1, a\r
+        SetPalette a * 1.1 + (20 - y), a * 1.1 + 10 + (y / 1.5), a * 1.1, a\r
     NEXT a\r
     SOUND 0, 1\r
     LINE (160 - buf1(y), 20)-(160 + buf1(y), 20), 255\r
@@ -598,9 +604,9 @@ NEXT y
 \r
 LOCATE 1, 1\r
 COLOR 254\r
-pal 0, 0, 0, 254\r
+SetPalette 0, 0, 0, 254\r
 PRINT "Tehisintellekt"\r
-pal 63, 0, 0, 253\r
+SetPalette 63, 0, 0, 253\r
 FOR y = 0 TO 8\r
     FOR x = 0 TO 120\r
         c = POINT(x, y)\r
@@ -624,7 +630,7 @@ FOR a = 1 TO 10
 NEXT a\r
 \r
 COLOR 253\r
-pal 0, 0, 0, 253\r
+SetPalette 0, 0, 0, 253\r
 LOCATE 1\r
 PRINT " autor:  Svjatoslav Agejenko 30.09.2001 "\r
 GET (0, 0)-(319, 8), buf(1)\r
@@ -632,7 +638,7 @@ LOCATE 1
 PRINT "                                        "\r
 PUT (0, 190), buf(1), PSET\r
 FOR a = 1 TO 32\r
-    pal 0, a, a * 2, 253\r
+    SetPalette 0, a, a * 2, 253\r
     SOUND 0, 1\r
 NEXT a\r
 inpur\r
@@ -644,7 +650,7 @@ mkback
 \r
 box 30, 50, 290, 150\r
 \r
-pal 32, 64, 32, 250\r
+SetPalette 32, 64, 32, 250\r
 y = 0\r
 pri 30, 70 + y, 1, 250, " Spatial vision"\r
 y = y + 16\r
@@ -663,7 +669,7 @@ mkback
 \r
 box 30, 50, 290, 150\r
 \r
-pal 32, 64, 32, 250\r
+SetPalette 32, 64, 32, 250\r
 y = -8\r
 pri 30, 70 + y, 1, 250, "Tunnuste ekstraheerimise protsess"\r
 y = y + 20\r
@@ -686,7 +692,7 @@ mkback
 \r
 box 30, 50, 290, 150\r
 \r
-pal 32, 64, 32, 250\r
+SetPalette 32, 64, 32, 250\r
 y = -8\r
 pri 30, 70 + y, 1, 250, "* Depth extraction"\r
 y = y + 20\r
@@ -700,7 +706,7 @@ inpur
 END SUB\r
 \r
 SUB sc7\r
-pal 0, 0, 0, 0\r
+SetPalette 0, 0, 0, 0\r
 FOR a = 0 TO 19\r
     FOR y = a TO 199 STEP 20\r
         LINE (0, y)-(319, y), 0\r
@@ -712,7 +718,7 @@ END SUB
 \r
 SUB sc8\r
 FOR a = 1 TO 50\r
-    pal 0, 0, 0, a\r
+    SetPalette 0, 0, 0, a\r
 NEXT a\r
 \r
 DIM px(0 TO 800)\r
@@ -808,11 +814,11 @@ NEXT z
 \r
 LINE (0, 0)-(319, 199), 0, BF\r
 \r
-pal 0, 0, 0, 0\r
-pal 0, 40, 10, 1\r
-pal 0, 32, 64, 2\r
-pal 50, 50, 0, 3\r
-pal 64, 20, 0, 4\r
+SetPalette 0, 0, 0, 0\r
+SetPalette 0, 40, 10, 1\r
+SetPalette 0, 32, 64, 2\r
+SetPalette 50, 50, 0, 3\r
+SetPalette 64, 20, 0, 4\r
 \r
 mx = 200\r
 mz = 200\r
@@ -1056,17 +1062,35 @@ mkback
 \r
 box 30, 50, 290, 80\r
 \r
-pal 32, 64, 32, 250\r
+SetPalette 32, 64, 32, 250\r
 y = -8\r
 pri 30, 70 + y, 1, 250, "      T�nan t�helepanu eest"\r
 inpur\r
 \r
 END SUB\r
 \r
+' Subroutine to set color palette\r
+SUB SetPalette (r, g, b, c)\r
+    ' Ensure color values are within valid range\r
+    IF r < 0 THEN r = 0\r
+    IF g < 0 THEN g = 0\r
+    IF b < 0 THEN b = 0\r
+    IF r > 63 THEN r = 63\r
+    IF g > 63 THEN g = 63\r
+    IF b > 63 THEN b = 63\r
+\r
+    ' Set palette color\r
+    OUT &H3C8, c\r
+    OUT &H3C9, r\r
+    OUT &H3C9, g\r
+    OUT &H3C9, b\r
+END SUB\r
+\r
 SUB start\r
 SCREEN 13\r
 pi = 3.141592\r
 pii = pi\r
 fac = 360 / (pi * 2)\r
-getfnt\r
+InitializeFont\r
 END SUB\r
+\r