* fixed some email addresses
[qbasicapps.git] / simulation / explosion / explode.bas
old mode 100755 (executable)
new mode 100644 (file)
index 5d75b75..54e0482
@@ -1,8 +1,8 @@
 ' Material simulation, simulates shockwaves propagation in gas.\r
 ' made by Svjatoslav Agejenko\r
 ' in 2003\r
-' H-Page: svjatoslav.eu\r
-' E-Mail: svjatoslavagejenko@gmail.com\r
+' homepage: svjatoslav.eu\r
+' email:    svjatoslav@svjatoslav.eu\r
  \r
 DECLARE SUB saveit ()\r
 DECLARE SUB playit ()\r
@@ -36,79 +36,79 @@ start
 'disp\r
 \r
 FOR y = 2 TO 99\r
-FOR x = 2 TO 99\r
-IF press(x, y) = wal THEN spdx(x - 1, y) = 0: spdy(x, y - 1) = 0: spdx(x, y) = 0: spdy(x, y) = 0: GOTO 3\r
-spdy(x, y) = spdy(x, y) - (press(x, y) / 500)  ' gravitation\r
-\r
-IF press(x + 1, y) = wal THEN spdx(x, y) = 0: GOTO 2\r
-spdx(x, y) = (press(x + 1, y) - press(x, y)) / 20 + spdx(x, y)\r
-2\r
-IF press(x, y + 1) = wal THEN spdy(x, y) = 0: GOTO 3\r
-spdy(x, y) = (press(x, y + 1) - press(x, y)) / 20 + spdy(x, y)\r
-3\r
-NEXT x\r
+    FOR x = 2 TO 99\r
+        IF press(x, y) = wal THEN spdx(x - 1, y) = 0: spdy(x, y - 1) = 0: spdx(x, y) = 0: spdy(x, y) = 0: GOTO 3\r
+        spdy(x, y) = spdy(x, y) - (press(x, y) / 500) ' gravitation\r
+\r
+        IF press(x + 1, y) = wal THEN spdx(x, y) = 0: GOTO 2\r
+        spdx(x, y) = (press(x + 1, y) - press(x, y)) / 20 + spdx(x, y)\r
+        2\r
+        IF press(x, y + 1) = wal THEN spdy(x, y) = 0: GOTO 3\r
+        spdy(x, y) = (press(x, y + 1) - press(x, y)) / 20 + spdy(x, y)\r
+        3\r
+    NEXT x\r
 NEXT y\r
 \r
 \r
 4\r
 b = 0\r
 FOR y = 2 TO 99\r
-FOR x = 2 TO 99\r
-a = press(x, y) + spdx(x, y) + spdy(x, y) - spdx(x - 1, y) - spdy(x, y - 1)\r
-\r
-IF a = 0 OR ((a < 0) AND (a > -.0001)) THEN\r
-IF spdx(x, y) < 0 THEN spdx(x, y) = 0\r
-IF spdy(x, y) < 0 THEN spdy(x, y) = 0\r
-IF spdx(x - 1, y) > 0 THEN spdx(x - 1, y) = 0\r
-IF spdy(x, y - 1) > 0 THEN spdy(x, y - 1) = 0\r
-END IF\r
-\r
-IF a < 0 THEN\r
-IF spdx(x, y) < 0 THEN spdx(x, y) = spdx(x, y) / 1.5\r
-IF spdy(x, y) < 0 THEN spdy(x, y) = spdy(x, y) / 1.5\r
-IF spdx(x - 1, y) > 0 THEN spdx(x - 1, y) = spdx(x - 1, y) / 1.5\r
-IF spdy(x, y - 1) > 0 THEN spdy(x, y - 1) = spdy(x, y - 1) / 1.5\r
-b = 1\r
-LOCATE 20, 1\r
-PRINT a\r
-END IF\r
-NEXT x\r
+    FOR x = 2 TO 99\r
+        a = press(x, y) + spdx(x, y) + spdy(x, y) - spdx(x - 1, y) - spdy(x, y - 1)\r
+\r
+        IF a = 0 OR ((a < 0) AND (a > -.0001)) THEN\r
+            IF spdx(x, y) < 0 THEN spdx(x, y) = 0\r
+            IF spdy(x, y) < 0 THEN spdy(x, y) = 0\r
+            IF spdx(x - 1, y) > 0 THEN spdx(x - 1, y) = 0\r
+            IF spdy(x, y - 1) > 0 THEN spdy(x, y - 1) = 0\r
+        END IF\r
+\r
+        IF a < 0 THEN\r
+            IF spdx(x, y) < 0 THEN spdx(x, y) = spdx(x, y) / 1.5\r
+            IF spdy(x, y) < 0 THEN spdy(x, y) = spdy(x, y) / 1.5\r
+            IF spdx(x - 1, y) > 0 THEN spdx(x - 1, y) = spdx(x - 1, y) / 1.5\r
+            IF spdy(x, y - 1) > 0 THEN spdy(x, y - 1) = spdy(x, y - 1) / 1.5\r
+            b = 1\r
+            LOCATE 20, 1\r
+            PRINT a\r
+        END IF\r
+    NEXT x\r
 NEXT y\r
 IF b = 1 THEN GOTO 4\r
 \r
 FOR y = 2 TO 99\r
-FOR x = 2 TO 99\r
-IF spdx(x, y) > 0 THEN spdxp(x - 1, y) = ((press(x, y) * spdx(x - 1, y)) + (spdx(x, y) * spdx(x, y))) / (press(x, y) + spdx(x, y)) - spdx(x - 1, y)\r
-IF spdy(x, y) > 0 THEN spdyp(x, y - 1) = ((press(x, y) * spdy(x, y - 1)) + (spdy(x, y) * spdy(x, y))) / (press(x, y) + spdy(x, y)) - spdy(x, y - 1)\r
-IF spdx(x - 1, y) < 0 THEN spdxp(x, y) = ((press(x, y) * spdx(x, y)) - (spdx(x - 1, y) * spdx(x - 1, y))) / (press(x, y) - spdx(x - 1, y)) - spdx(x, y)\r
-IF spdy(x, y - 1) < 0 THEN spdyp(x, y) = ((press(x, y) * spdy(x, y)) - (spdy(x, y - 1) * spdy(x, y - 1))) / (press(x, y) - spdy(x, y - 1)) - spdy(x, y)\r
-NEXT x\r
+    FOR x = 2 TO 99\r
+        IF spdx(x, y) > 0 THEN spdxp(x - 1, y) = ((press(x, y) * spdx(x - 1, y)) + (spdx(x, y) * spdx(x, y))) / (press(x, y) + spdx(x, y)) - spdx(x - 1, y)\r
+        IF spdy(x, y) > 0 THEN spdyp(x, y - 1) = ((press(x, y) * spdy(x, y - 1)) + (spdy(x, y) * spdy(x, y))) / (press(x, y) + spdy(x, y)) - spdy(x, y - 1)\r
+        IF spdx(x - 1, y) < 0 THEN spdxp(x, y) = ((press(x, y) * spdx(x, y)) - (spdx(x - 1, y) * spdx(x - 1, y))) / (press(x, y) - spdx(x - 1, y)) - spdx(x, y)\r
+        IF spdy(x, y - 1) < 0 THEN spdyp(x, y) = ((press(x, y) * spdy(x, y)) - (spdy(x, y - 1) * spdy(x, y - 1))) / (press(x, y) - spdy(x, y - 1)) - spdy(x, y)\r
+    NEXT x\r
 NEXT y\r
 \r
 \r
 FOR y = 2 TO 99\r
-FOR x = 2 TO 99\r
-press(x + 1, y) = press(x + 1, y) - spdx(x, y)\r
-press(x, y + 1) = press(x, y + 1) - spdy(x, y)\r
-press(x, y) = press(x, y) + spdx(x, y)\r
-press(x, y) = press(x, y) + spdy(x, y)\r
-NEXT x\r
+    FOR x = 2 TO 99\r
+        press(x + 1, y) = press(x + 1, y) - spdx(x, y)\r
+        press(x, y + 1) = press(x, y + 1) - spdy(x, y)\r
+        press(x, y) = press(x, y) + spdx(x, y)\r
+        press(x, y) = press(x, y) + spdy(x, y)\r
+    NEXT x\r
 NEXT y\r
 \r
 FOR y = 2 TO 99\r
-FOR x = 2 TO 99\r
-spdx(x, y) = spdx(x, y) + spdxp(x, y)\r
-spdxp(x, y) = 0\r
-spdy(x, y) = spdy(x, y) + spdyp(x, y)\r
-spdyp(x, y) = 0\r
-NEXT x\r
+    FOR x = 2 TO 99\r
+        spdx(x, y) = spdx(x, y) + spdxp(x, y)\r
+        spdxp(x, y) = 0\r
+        spdy(x, y) = spdy(x, y) + spdyp(x, y)\r
+        spdyp(x, y) = 0\r
+    NEXT x\r
 NEXT y\r
 \r
 \r
 FOR y = 1 TO 100\r
-FOR x = 1 TO 100\r
-PSET (x, y), press(x, y) + 16\r
-NEXT x\r
+    FOR x = 1 TO 100\r
+        PSET (x, y), press(x, y) + 16\r
+    NEXT x\r
 NEXT y\r
 \r
 saveit\r
@@ -122,10 +122,10 @@ CLOSE #1
 \r
 SUB disp\r
 FOR y = 47 TO 53\r
-FOR x = 47 TO 53\r
-LOCATE y - 46, (x - 46) * 4\r
-PRINT press(x, y)\r
-NEXT x\r
+    FOR x = 47 TO 53\r
+        LOCATE y - 46, (x - 46) * 4\r
+        PRINT press(x, y)\r
+    NEXT x\r
 NEXT y\r
 \r
 a$ = INPUT$(1)\r
@@ -142,9 +142,9 @@ x3 = x2 - x1
 y3 = y2 - y1\r
 \r
 FOR a = 0 TO m\r
-x5 = x3 * a / m + x1\r
-y5 = y3 * a / m + y1\r
-press(x5, y5) = wal\r
+    x5 = x3 * a / m + x1\r
+    y5 = y3 * a / m + y1\r
+    press(x5, y5) = wal\r
 NEXT a\r
 \r
 \r
@@ -152,12 +152,12 @@ END SUB
 \r
 SUB saveit\r
 FOR y = 1 TO 100\r
-a$ = ""\r
-FOR x = 1 TO 100\r
-a$ = a$ + CHR$(POINT(x, y))\r
-NEXT x\r
-linb = a$\r
-PUT #1, , linb\r
+    a$ = ""\r
+    FOR x = 1 TO 100\r
+        a$ = a$ + CHR$(POINT(x, y))\r
+    NEXT x\r
+    linb = a$\r
+    PUT #1, , linb\r
 NEXT y\r
 \r
 \r
@@ -174,19 +174,19 @@ SUB start
 frm = 0\r
 \r
 FOR a = 1 TO 100\r
-FOR b = 1 TO 100\r
-press(a, b) = 3\r
-spdx(a, b) = 0\r
-spdy(a, b) = 0\r
-spdxp(a, b) = 0\r
-spdyp(a, b) = 0\r
-NEXT b\r
+    FOR b = 1 TO 100\r
+        press(a, b) = 3\r
+        spdx(a, b) = 0\r
+        spdy(a, b) = 0\r
+        spdxp(a, b) = 0\r
+        spdyp(a, b) = 0\r
+    NEXT b\r
 NEXT a\r
 \r
 FOR y = 30 TO 60\r
-FOR x = 10 TO 50\r
-spot x, y, 30\r
-NEXT x\r
+    FOR x = 10 TO 50\r
+        spot x, y, 30\r
+    NEXT x\r
 NEXT y\r
 \r
 lin 2, 2, 2, 99\r
@@ -195,7 +195,7 @@ lin 2, 99, 99, 99
 lin 2, 2, 99, 2\r
 \r
 FOR x = 5 TO 40 STEP 5\r
-lin x, 80, x + 50, 80 - x\r
+    lin x, 80, x + 50, 80 - x\r
 NEXT x\r
 \r
 END SUB\r