initial cammit
[qbasicapps.git] / simulation / liquid.bas
1 ' Rounds up sharp edges\r
2 ' made by Svjatoslav Agejenko\r
3 ' in 2003.12\r
4 ' H-Page: svjatoslav.eu\r
5 ' E-Mail: svjatoslavagejenko@gmail.com\r
6  \r
7 DEFINT A-Z\r
8 WIDTH 80, 50\r
9 VIEW PRINT 1 TO 50\r
10 RANDOMIZE TIMER\r
11 CLS\r
12 DIM SHARED buf1(1 TO 80, 1 TO 50)\r
13 DIM SHARED buf2(1 TO 80, 1 TO 50)\r
14 \r
15 FOR y = 1 TO 50\r
16 FOR x = 1 TO 80\r
17 buf1(x, y) = INT(RND * 2)\r
18 NEXT x\r
19 NEXT y\r
20 \r
21 1\r
22 FOR y = 2 TO 49\r
23 FOR x = 2 TO 79\r
24 c = buf1(x - 1, y - 1)\r
25 c = c + buf1(x, y - 1)\r
26 c = c + buf1(x + 1, y - 1)\r
27 c = c + buf1(x - 1, y)\r
28 c = c + buf1(x + 1, y)\r
29 c = c + buf1(x - 1, y + 1)\r
30 c = c + buf1(x, y + 1)\r
31 c = c + buf1(x + 1, y + 1)\r
32 IF buf1(x, y) = 1 THEN\r
33 IF c > 3 THEN buf2(x, y) = 1 ELSE buf2(x, y) = 0\r
34 ELSE\r
35 IF c > 4 THEN buf2(x, y) = 1 ELSE buf2(x, y) = 0\r
36 END IF\r
37 NEXT x\r
38 NEXT y\r
39 \r
40 FOR y = 1 TO 50\r
41 FOR x = 1 TO 80\r
42 b = buf2(x, y)\r
43 buf1(x, y) = b\r
44 LOCATE y, x\r
45 IF b = 0 THEN PRINT ".";  ELSE PRINT "#"\r
46 NEXT x\r
47 NEXT y\r
48 SOUND 0, 3\r
49 GOTO 1\r
50 \r