2 ' by Svjatoslav Agejenko 2002
\r
4 DECLARE FUNCTION cnum$ (a%)
\r
5 DECLARE SUB putworm (a%)
\r
6 DECLARE SUB level (a%)
\r
8 DECLARE SUB sc2 (x%, y%)
\r
10 DECLARE SUB autop (a%)
\r
12 DECLARE SUB prc (a%)
\r
13 DECLARE SUB stuff ()
\r
14 DECLARE SUB dead (a%)
\r
15 DECLARE SUB add (a%)
\r
17 DECLARE SUB subt (b%)
\r
19 DECLARE SUB start ()
\r
21 DECLARE SUB sc (x%, y%)
\r
24 DIM SHARED buf(0 TO 36, 0 TO 36)
\r
25 DIM SHARED buf2(0 TO 36, 0 TO 36)
\r
26 DIM SHARED ussx(1 TO 2000, 1 TO 5)
\r
27 DIM SHARED ussy(1 TO 2000, 1 TO 5)
\r
28 DIM SHARED ussp(1 TO 5)
\r
29 DIM SHARED ussl(1 TO 5)
\r
30 DIM SHARED usss(1 TO 5)
\r
31 DIM SHARED ussk(1 TO 2000, 1 TO 5)
\r
32 DIM SHARED usskp(1 TO 5)
\r
34 DIM SHARED ux(1 TO 5), uy(1 TO 5), uxp(1 TO 5), uyp(1 TO 5)
\r
37 DIM SHARED elud(1 TO 5)
\r
38 DIM SHARED auto(1 TO 5)
\r
39 DIM SHARED ail, lvl, wai
\r
57 INPUT "How mutch players 1 - 5:", ussm
\r
58 INPUT "How mutch of them is computers:", a
\r
59 FOR b = ussm TO ussm - a + 1 STEP -1
\r
63 INPUT "How mutch lives:", elum
\r
64 INPUT "Speed: (1-slow 3-ok 10-very fast)", spd
\r
86 IF buf(x, y) = 2 THEN buf2(x, y) = 0
\r
87 IF buf(x, y) > 9 OR buf(x, y) = 1 THEN buf2(x, y) = -1
\r
91 IF buf2(16, 16) = 32000 THEN buf2(16, 16) = 15000
\r
98 IF (buf2(x + 1, y) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x + 1, y) = buf2(x, y) + 1: b = 1
\r
100 FOR x = 35 TO 2 STEP -1
\r
101 IF (buf2(x - 1, y) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x - 1, y) = buf2(x, y) + 1: b = 1
\r
104 IF (buf2(1, y) > buf2(35, y) + 1) AND (buf2(35, y) >= 0) THEN buf2(1, y) = buf2(35, y) + 1: b = 1
\r
105 IF (buf2(35, y) > buf2(1, y) + 1) AND (buf2(1, y) >= 0) THEN buf2(35, y) = buf2(1, y) + 1: b = 1
\r
110 IF (buf2(x, y + 1) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x, y + 1) = buf2(x, y) + 1: b = 1
\r
112 FOR y = 35 TO 2 STEP -1
\r
113 IF (buf2(x, y - 1) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x, y - 1) = buf2(x, y) + 1: b = 1
\r
117 IF (buf2(x, 1) > buf2(x, 35) + 1) AND (buf2(x, 35) >= 0) THEN buf2(x, 1) = buf2(x, 35) + 1: b = 1
\r
118 IF (buf2(x, 35) > buf2(x, 1) + 1) AND (buf2(x, 1) >= 0) THEN buf2(x, 35) = buf2(x, 1) + 1: b = 1
\r
121 IF b = 1 THEN GOTO 6
\r
132 IF (buf2(tx - 1, ty) < b) AND (buf2(tx - 1, ty) >= 0) THEN b = buf2(tx - 1, ty): tmpxp = -1: tmpyp = 0: c = 1
\r
133 IF (buf2(tx, ty - 1) < b) AND (buf2(tx, ty - 1) >= 0) THEN b = buf2(tx, ty - 1): tmpxp = 0: tmpyp = -1: c = 2
\r
134 IF (buf2(tx + 1, ty) < b) AND (buf2(tx + 1, ty) >= 0) THEN b = buf2(tx + 1, ty): tmpxp = 1: tmpyp = 0: c = 3
\r
135 IF (buf2(tx, ty + 1) < b) AND (buf2(tx, ty + 1) >= 0) THEN b = buf2(tx, ty + 1): tmpxp = 0: tmpyp = 1: c = 4
\r
150 IF tx = 1 THEN tx = 34
\r
151 IF ty = 1 THEN ty = 34
\r
152 IF tx = 35 THEN tx = 2
\r
153 IF ty = 35 THEN ty = 2
\r
158 IF d > ail THEN GOTO 8
\r
159 IF (e > 0) AND (b > -1) THEN GOTO 7
\r
165 'DIM SHARED ussk(1 TO 2000, 1 TO 5)
\r
166 'DIM SHARED usskp(1 TO 5)
\r
176 IF usskp(a) > 0 THEN
\r
177 b = ussk(usskp(a), a)
\r
178 IF b = 1 THEN uxp(a) = -1: uyp(a) = 0
\r
179 IF b = 2 THEN uxp(a) = 0: uyp(a) = -1
\r
180 IF b = 3 THEN uxp(a) = 1: uyp(a) = 0
\r
181 IF b = 4 THEN uxp(a) = 0: uyp(a) = 1
\r
182 IF b = 5 THEN ai a: GOTO 5
\r
183 usskp(a) = usskp(a) + 1
\r
186 nx = ux(a) + uxp(a)
\r
187 ny = uy(a) + uyp(a)
\r
188 b = buf(INT(nx), INT(ny))
\r
189 IF (b = 1 OR b > 9) AND (c = 0) THEN ai a: c = 1: GOTO 5
\r
197 IF LEFT$(b$, 1) = " " THEN b$ = RIGHT$(b$, LEN(b$) - 1)
\r
203 elud(a) = elud(a) - 1
\r
213 PRINT "G E T R E A D Y"
\r
215 PRINT "L E V E L :"; a
\r
238 b$ = cnum(a) + ".lvl"
\r
239 OPEN b$ FOR INPUT AS #1
\r
242 IF EOF(1) <> 0 THEN GOTO 11
\r
244 IF LEFT$(c$, 1) = "/" THEN
\r
246 IF d > 35 THEN GOTO 12
\r
248 IF g > 36 THEN g = 36
\r
250 f$ = RIGHT$(LEFT$(c$, e), 1)
\r
251 IF f$ = "#" OR f$ = "m" THEN buf(e - 1, d) = 1 ELSE buf(e - 1, d) = 0
\r
276 ussp(a) = ussp(a) + 1
\r
278 IF elud(a) = 0 THEN GOTO 4
\r
280 IF auto(a) = 1 THEN autop a
\r
284 ux(a) = ux(a) + uxp(a)
\r
285 uy(a) = uy(a) + uyp(a)
\r
286 IF ux(a) = 35 THEN ux(a) = 2
\r
287 IF uy(a) = 35 THEN uy(a) = 2
\r
288 IF ux(a) = 1 THEN ux(a) = 34
\r
289 IF uy(a) = 1 THEN uy(a) = 34
\r
296 IF buf(x, y) = 2 THEN
\r
300 ussl(a) = ussl(a) + mtm
\r
301 usss(a) = usss(a) + mtm
\r
303 IF (elud(b) > 0) AND (auto(b) = 1) THEN ai b
\r
309 IF buf(x, y) > 0 THEN dead a: GOTO 4
\r
310 IF a = 1 THEN buf(x, y) = 10
\r
311 IF a = 2 THEN buf(x, y) = 11
\r
312 IF a = 3 THEN buf(x, y) = 12
\r
313 IF a = 4 THEN buf(x, y) = 13
\r
314 IF a = 5 THEN buf(x, y) = 14
\r
316 IF ussp(a) > 2000 THEN ussp(a) = ussp(a) - 2000
\r
317 ussx(ussp(a), a) = x
\r
318 ussy(ussp(a), a) = y
\r
326 FOR c = b TO 1 STEP -1
\r
332 uy(a) = INT(RND * 30 + 2)
\r
333 ux(a) = INT(RND * 10 + 5)
\r
334 FOR b = ux(a) TO ux(a) + 10
\r
335 IF buf(b, uy(a)) <> 0 THEN GOTO 9
\r
349 LINE (x1, y1)-(x1 + 3, y1 + 3), 0, BF
\r
351 SELECT CASE buf(x, y)
\r
353 LINE (x1, y1)-(x1 + 3, y1 + 3), 1, BF
\r
355 LINE (x1, y1)-(x1 + 3, y1 + 3), 7, BF
\r
356 LINE (x1, y1)-(x1 + 3, y1 + 3), 8, B
\r
358 LINE (x1, y1)-(x1 + 3, y1 + 3), 14, BF
\r
360 LINE (x1, y1)-(x1 + 3, y1 + 3), 10, BF
\r
362 PSET (x1 + 3, y1), 0
\r
363 PSET (x1, y1 + 3), 0
\r
364 PSET (x1 + 3, y1 + 3), 0
\r
367 LINE (x1, y1)-(x1 + 3, y1 + 3), 12, BF
\r
369 PSET (x1 + 3, y1), 0
\r
370 PSET (x1, y1 + 3), 0
\r
371 PSET (x1 + 3, y1 + 3), 0
\r
374 LINE (x1, y1)-(x1 + 3, y1 + 3), 13, BF
\r
376 PSET (x1 + 3, y1), 0
\r
377 PSET (x1, y1 + 3), 0
\r
378 PSET (x1 + 3, y1 + 3), 0
\r
381 LINE (x1, y1)-(x1 + 3, y1 + 3), 15, BF
\r
383 PSET (x1 + 3, y1), 0
\r
384 PSET (x1, y1 + 3), 0
\r
385 PSET (x1 + 3, y1 + 3), 0
\r
388 LINE (x1, y1)-(x1 + 3, y1 + 3), 9, BF
\r
390 PSET (x1 + 3, y1), 0
\r
391 PSET (x1, y1 + 3), 0
\r
392 PSET (x1 + 3, y1 + 3), 0
\r
426 LINE (x * 2 + 200, y * 2 + 100)-(x * 2 + 201, y * 2 + 101), buf2(x, y) MOD 255, BF
\r
466 PRINT RIGHT$(STR$(a), 1)
\r
470 IF auto(a) = 1 THEN PRINT "*" ELSE PRINT "-"
\r
475 PRINT RIGHT$(b$, LEN(b$) - 1)
\r
480 PRINT RIGHT$(b$, LEN(b$) - 1)
\r
496 PRINT "Level:"; lvl
\r
503 x = INT(RND * 33 + 2)
\r
504 y = INT(RND * 33 + 2)
\r
505 IF buf(x, y) = 0 THEN
\r
516 a = ussp(b) - ussl(b)
\r
517 IF a < 1 THEN a = a + 2000
\r
518 IF ussx(a, b) > 0 THEN
\r
520 buf(ussx(a, b), ussy(a, b)) = 0
\r
521 sc ussx(a, b), ussy(a, b)
\r
528 IF a$ = CHR$(27) THEN SYSTEM
\r
529 IF (a$ = CHR$(0) + "M") AND (uxp(1) <> -1) THEN uxp(1) = 1: uyp(1) = 0
\r
530 IF (a$ = CHR$(0) + "K") AND (uxp(1) <> 1) THEN uxp(1) = -1: uyp(1) = 0
\r
531 IF (a$ = CHR$(0) + "P") AND (uyp(1) <> -1) THEN uxp(1) = 0: uyp(1) = 1
\r
532 IF (a$ = CHR$(0) + "H") AND (uyp(1) <> 1) THEN uxp(1) = 0: uyp(1) = -1
\r
534 IF (a$ = "d") AND (uxp(2) <> -1) THEN uxp(2) = 1: uyp(2) = 0
\r
535 IF (a$ = "a") AND (uxp(2) <> 1) THEN uxp(2) = -1: uyp(2) = 0
\r
536 IF (a$ = "s") AND (uyp(2) <> -1) THEN uxp(2) = 0: uyp(2) = 1
\r
537 IF (a$ = "w") AND (uyp(2) <> 1) THEN uxp(2) = 0: uyp(2) = -1
\r
541 IF auto(b) = 1 THEN auto(b) = 0 ELSE auto(b) = 1
\r