1 DECLARE SUB ruut (x!, y!, z!)
\r
3 ' arrow keys - move around
\r
4 ' 2, 6, 4, 8 - look around
\r
10 DECLARE SUB mkkoll ()
\r
11 DECLARE SUB putkol ()
\r
14 DECLARE SUB start ()
\r
15 DIM SHARED npo, nlo, np, nl
\r
16 DIM SHARED px(1 TO 3000)
\r
17 DIM SHARED py(1 TO 3000)
\r
18 DIM SHARED pz(1 TO 3000)
\r
19 DIM SHARED rpx(1 TO 7000)
\r
20 DIM SHARED rpy(1 TO 7000)
\r
21 DIM SHARED orpx(0 TO 9000)
\r
22 DIM SHARED orpy(0 TO 9000)
\r
24 DIM SHARED lin1(1 TO 3800)
\r
25 DIM SHARED lin2(1 TO 3800)
\r
26 DIM SHARED linc(1 TO 3800)
\r
27 DIM SHARED olin1(1 TO 3800)
\r
28 DIM SHARED olin2(1 TO 3800)
\r
30 DIM SHARED myx, myy, myz
\r
31 DIM SHARED myxs, myys, myzs
\r
33 DIM SHARED an1s, an2s
\r
36 DIM SHARED life(1 TO 50, 1 TO 50)
\r
37 DIM SHARED life2(1 TO 50, 1 TO 50)
\r
51 myx = SIN(frm / 20) * 12
\r
52 myy = SIN(frm / 50) * 10 + 15
\r
53 myz = COS(frm / 20) * 12
\r
56 an2 = 2.2 + SIN(frm / 50) / 2
\r
117 IF life(x, y) = 1 THEN
\r
118 v = ABS(x - 26) + ABS(y - 26) + frm
\r
119 ruut x - 25, SIN(v / 5) * 5, y - 25
\r
126 IF frm \ 10 = frm / 10 THEN
\r
130 c = life(x - 1, y - 1)
\r
131 c = c + life(x, y - 1)
\r
132 c = c + life(x + 1, y - 1)
\r
133 c = c + life(x - 1, y)
\r
134 c = c + life(x + 1, y)
\r
135 c = c + life(x - 1, y + 1)
\r
136 c = c + life(x, y + 1)
\r
137 c = c + life(x + 1, y + 1)
\r
139 IF life(x, y) = 1 THEN
\r
140 IF (c > 3) OR (c < 2) THEN life2(x, y) = 0 ELSE life2(x, y) = 1
\r
142 IF c = 3 THEN life2(x, y) = 1 ELSE life2(x, y) = 0
\r
150 life(x, y) = life2(x, y)
\r
170 x1 = x * s1 - z * c1
\r
171 z1 = x * c1 + z * s1
\r
172 y1 = y * s2 - z1 * c2
\r
173 z2 = y * c2 + z1 * s2
\r
178 rpx(a) = 320 + (x1 / z2 * 400)
\r
179 rpy(a) = 240 - (y1 / z2 * 400)
\r
188 IF orpx(l1) = -1 OR orpx(l2) = -1 THEN ELSE LINE (orpx(l1), orpy(l1))-(orpx(l2), orpy(l2)), 0
\r
191 IF rpx(l1) = -1 OR rpx(l2) = -1 THEN ELSE LINE (rpx(l1), rpy(l1))-(rpx(l2), rpy(l2)), linc(a)
\r
195 FOR a = nl + 1 TO onl
\r
198 IF orpx(l1) = -1 OR orpx(l2) = -1 THEN ELSE LINE (orpx(l1), orpy(l1))-(orpx(l2), orpy(l2)), 0
\r
335 an1 = 3.14 / 2 - .29
\r
348 OPEN "3dlife.dat" FOR INPUT AS #1
\r
351 IF EOF(1) <> 0 THEN GOTO 4
\r
355 FOR b = 1 TO LEN(a$)
\r
356 c$ = RIGHT$(LEFT$(a$, b), 1)
\r
357 IF c$ = "#" THEN life(x, y) = 1
\r