2 ' by Svjatoslav Agejenko 2002
\r
3 ' E-mail: svjatoslavagejenko@gmail.com
\r
5 DECLARE FUNCTION cnum$ (a%)
\r
6 DECLARE SUB putworm (a%)
\r
7 DECLARE SUB level (a%)
\r
9 DECLARE SUB sc2 (x%, y%)
\r
11 DECLARE SUB autop (a%)
\r
13 DECLARE SUB prc (a%)
\r
14 DECLARE SUB stuff ()
\r
15 DECLARE SUB dead (a%)
\r
16 DECLARE SUB add (a%)
\r
18 DECLARE SUB subt (b%)
\r
20 DECLARE SUB start ()
\r
22 DECLARE SUB sc (x%, y%)
\r
25 DIM SHARED buf(0 TO 36, 0 TO 36)
\r
26 DIM SHARED buf2(0 TO 36, 0 TO 36)
\r
27 DIM SHARED ussx(1 TO 2000, 1 TO 5)
\r
28 DIM SHARED ussy(1 TO 2000, 1 TO 5)
\r
29 DIM SHARED ussp(1 TO 5)
\r
30 DIM SHARED ussl(1 TO 5)
\r
31 DIM SHARED usss(1 TO 5)
\r
32 DIM SHARED ussk(1 TO 2000, 1 TO 5)
\r
33 DIM SHARED usskp(1 TO 5)
\r
35 DIM SHARED ux(1 TO 5), uy(1 TO 5), uxp(1 TO 5), uyp(1 TO 5)
\r
38 DIM SHARED elud(1 TO 5)
\r
39 DIM SHARED auto(1 TO 5)
\r
40 DIM SHARED ail, lvl, wai
\r
58 INPUT "How mutch players 1 - 5:", ussm
\r
59 INPUT "How mutch of them is computers:", a
\r
60 FOR b = ussm TO ussm - a + 1 STEP -1
\r
64 INPUT "How mutch lives:", elum
\r
65 INPUT "Speed: (1-slow 3-ok 10-very fast)", spd
\r
87 IF buf(x, y) = 2 THEN buf2(x, y) = 0
\r
88 IF buf(x, y) > 9 OR buf(x, y) = 1 THEN buf2(x, y) = -1
\r
92 IF buf2(16, 16) = 32000 THEN buf2(16, 16) = 15000
\r
99 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
101 FOR x = 35 TO 2 STEP -1
\r
102 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
105 IF (buf2(1, y) > buf2(35, y) + 1) AND (buf2(35, y) >= 0) THEN buf2(1, y) = buf2(35, y) + 1: b = 1
\r
106 IF (buf2(35, y) > buf2(1, y) + 1) AND (buf2(1, y) >= 0) THEN buf2(35, y) = buf2(1, y) + 1: b = 1
\r
111 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
113 FOR y = 35 TO 2 STEP -1
\r
114 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
118 IF (buf2(x, 1) > buf2(x, 35) + 1) AND (buf2(x, 35) >= 0) THEN buf2(x, 1) = buf2(x, 35) + 1: b = 1
\r
119 IF (buf2(x, 35) > buf2(x, 1) + 1) AND (buf2(x, 1) >= 0) THEN buf2(x, 35) = buf2(x, 1) + 1: b = 1
\r
122 IF b = 1 THEN GOTO 6
\r
133 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
134 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
135 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
136 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
151 IF tx = 1 THEN tx = 34
\r
152 IF ty = 1 THEN ty = 34
\r
153 IF tx = 35 THEN tx = 2
\r
154 IF ty = 35 THEN ty = 2
\r
159 IF d > ail THEN GOTO 8
\r
160 IF (e > 0) AND (b > -1) THEN GOTO 7
\r
166 'DIM SHARED ussk(1 TO 2000, 1 TO 5)
\r
167 'DIM SHARED usskp(1 TO 5)
\r
177 IF usskp(a) > 0 THEN
\r
178 b = ussk(usskp(a), a)
\r
179 IF b = 1 THEN uxp(a) = -1: uyp(a) = 0
\r
180 IF b = 2 THEN uxp(a) = 0: uyp(a) = -1
\r
181 IF b = 3 THEN uxp(a) = 1: uyp(a) = 0
\r
182 IF b = 4 THEN uxp(a) = 0: uyp(a) = 1
\r
183 IF b = 5 THEN ai a: GOTO 5
\r
184 usskp(a) = usskp(a) + 1
\r
187 nx = ux(a) + uxp(a)
\r
188 ny = uy(a) + uyp(a)
\r
189 b = buf(INT(nx), INT(ny))
\r
190 IF (b = 1 OR b > 9) AND (c = 0) THEN ai a: c = 1: GOTO 5
\r
198 IF LEFT$(b$, 1) = " " THEN b$ = RIGHT$(b$, LEN(b$) - 1)
\r
204 elud(a) = elud(a) - 1
\r
214 PRINT "G E T R E A D Y"
\r
216 PRINT "L E V E L :"; a
\r
239 b$ = cnum(a) + ".lvl"
\r
240 OPEN b$ FOR INPUT AS #1
\r
243 IF EOF(1) <> 0 THEN GOTO 11
\r
245 IF LEFT$(c$, 1) = "/" THEN
\r
247 IF d > 35 THEN GOTO 12
\r
249 IF g > 36 THEN g = 36
\r
251 f$ = RIGHT$(LEFT$(c$, e), 1)
\r
252 IF f$ = "#" OR f$ = "m" THEN buf(e - 1, d) = 1 ELSE buf(e - 1, d) = 0
\r
277 ussp(a) = ussp(a) + 1
\r
279 IF elud(a) = 0 THEN GOTO 4
\r
281 IF auto(a) = 1 THEN autop a
\r
285 ux(a) = ux(a) + uxp(a)
\r
286 uy(a) = uy(a) + uyp(a)
\r
287 IF ux(a) = 35 THEN ux(a) = 2
\r
288 IF uy(a) = 35 THEN uy(a) = 2
\r
289 IF ux(a) = 1 THEN ux(a) = 34
\r
290 IF uy(a) = 1 THEN uy(a) = 34
\r
297 IF buf(x, y) = 2 THEN
\r
301 ussl(a) = ussl(a) + mtm
\r
302 usss(a) = usss(a) + mtm
\r
304 IF (elud(b) > 0) AND (auto(b) = 1) THEN ai b
\r
310 IF buf(x, y) > 0 THEN dead a: GOTO 4
\r
311 IF a = 1 THEN buf(x, y) = 10
\r
312 IF a = 2 THEN buf(x, y) = 11
\r
313 IF a = 3 THEN buf(x, y) = 12
\r
314 IF a = 4 THEN buf(x, y) = 13
\r
315 IF a = 5 THEN buf(x, y) = 14
\r
317 IF ussp(a) > 2000 THEN ussp(a) = ussp(a) - 2000
\r
318 ussx(ussp(a), a) = x
\r
319 ussy(ussp(a), a) = y
\r
327 FOR c = b TO 1 STEP -1
\r
333 uy(a) = INT(RND * 30 + 2)
\r
334 ux(a) = INT(RND * 10 + 5)
\r
335 FOR b = ux(a) TO ux(a) + 10
\r
336 IF buf(b, uy(a)) <> 0 THEN GOTO 9
\r
350 LINE (x1, y1)-(x1 + 3, y1 + 3), 0, BF
\r
352 SELECT CASE buf(x, y)
\r
354 LINE (x1, y1)-(x1 + 3, y1 + 3), 1, BF
\r
356 LINE (x1, y1)-(x1 + 3, y1 + 3), 7, BF
\r
357 LINE (x1, y1)-(x1 + 3, y1 + 3), 8, B
\r
359 LINE (x1, y1)-(x1 + 3, y1 + 3), 14, BF
\r
361 LINE (x1, y1)-(x1 + 3, y1 + 3), 10, BF
\r
363 PSET (x1 + 3, y1), 0
\r
364 PSET (x1, y1 + 3), 0
\r
365 PSET (x1 + 3, y1 + 3), 0
\r
368 LINE (x1, y1)-(x1 + 3, y1 + 3), 12, BF
\r
370 PSET (x1 + 3, y1), 0
\r
371 PSET (x1, y1 + 3), 0
\r
372 PSET (x1 + 3, y1 + 3), 0
\r
375 LINE (x1, y1)-(x1 + 3, y1 + 3), 13, BF
\r
377 PSET (x1 + 3, y1), 0
\r
378 PSET (x1, y1 + 3), 0
\r
379 PSET (x1 + 3, y1 + 3), 0
\r
382 LINE (x1, y1)-(x1 + 3, y1 + 3), 15, BF
\r
384 PSET (x1 + 3, y1), 0
\r
385 PSET (x1, y1 + 3), 0
\r
386 PSET (x1 + 3, y1 + 3), 0
\r
389 LINE (x1, y1)-(x1 + 3, y1 + 3), 9, BF
\r
391 PSET (x1 + 3, y1), 0
\r
392 PSET (x1, y1 + 3), 0
\r
393 PSET (x1 + 3, y1 + 3), 0
\r
427 LINE (x * 2 + 200, y * 2 + 100)-(x * 2 + 201, y * 2 + 101), buf2(x, y) MOD 255, BF
\r
467 PRINT RIGHT$(STR$(a), 1)
\r
471 IF auto(a) = 1 THEN PRINT "*" ELSE PRINT "-"
\r
476 PRINT RIGHT$(b$, LEN(b$) - 1)
\r
481 PRINT RIGHT$(b$, LEN(b$) - 1)
\r
497 PRINT "Level:"; lvl
\r
504 x = INT(RND * 33 + 2)
\r
505 y = INT(RND * 33 + 2)
\r
506 IF buf(x, y) = 0 THEN
\r
517 a = ussp(b) - ussl(b)
\r
518 IF a < 1 THEN a = a + 2000
\r
519 IF ussx(a, b) > 0 THEN
\r
521 buf(ussx(a, b), ussy(a, b)) = 0
\r
522 sc ussx(a, b), ussy(a, b)
\r
529 IF a$ = CHR$(27) THEN SYSTEM
\r
530 IF (a$ = CHR$(0) + "M") AND (uxp(1) <> -1) THEN uxp(1) = 1: uyp(1) = 0
\r
531 IF (a$ = CHR$(0) + "K") AND (uxp(1) <> 1) THEN uxp(1) = -1: uyp(1) = 0
\r
532 IF (a$ = CHR$(0) + "P") AND (uyp(1) <> -1) THEN uxp(1) = 0: uyp(1) = 1
\r
533 IF (a$ = CHR$(0) + "H") AND (uyp(1) <> 1) THEN uxp(1) = 0: uyp(1) = -1
\r
535 IF (a$ = "d") AND (uxp(2) <> -1) THEN uxp(2) = 1: uyp(2) = 0
\r
536 IF (a$ = "a") AND (uxp(2) <> 1) THEN uxp(2) = -1: uyp(2) = 0
\r
537 IF (a$ = "s") AND (uyp(2) <> -1) THEN uxp(2) = 0: uyp(2) = 1
\r
538 IF (a$ = "w") AND (uyp(2) <> 1) THEN uxp(2) = 0: uyp(2) = -1
\r
542 IF auto(b) = 1 THEN auto(b) = 0 ELSE auto(b) = 1
\r