1 ' Super Mario style game
\r
2 ' by Svjatoslav Agejenko 1999
\r
3 ' E-mail: svjatoslavagejenko@gmail.com
\r
13 DECLARE SUB level1 ()
\r
14 DECLARE SUB nait (zaz%)
\r
15 DECLARE SUB wiew1 (a1%, b1%, c1%, d1%, a$)
\r
16 DECLARE SUB level ()
\r
17 DECLARE SUB save (a$)
\r
18 DECLARE SUB picedit ()
\r
19 DECLARE SUB wiew (a1%, b1%, c1%, d1%, a$)
\r
20 DECLARE SUB intro ()
\r
21 DECLARE SUB inpur ()
\r
22 DECLARE SUB mousedriver (AX%, bx%, cx%, dx%, lb%, rb%, EX%)
\r
23 DECLARE SUB tahed ()
\r
27 DIM SHARED text$(1 TO 500)
\r
31 DIM SHARED ruum(-5 TO 20, -5 TO 20) AS STRING
\r
32 DIM SHARED ruum1(-5 TO 20, -5 TO 20) AS STRING
\r
33 DIM SHARED maa(1 TO 11, 1 TO 10) AS STRING * 15
\r
34 DIM SHARED maa1(1 TO 10) AS INTEGER
\r
35 DIM SHARED maailm AS INTEGER
\r
36 DIM SHARED maailm1 AS INTEGER
\r
37 DIM SHARED text5(1 TO 15) AS STRING * 15
\r
38 DIM SHARED pilv(2100)
\r
39 DIM SHARED kast(202)
\r
40 DIM SHARED tellis(202)
\r
41 DIM SHARED poosas(1000)
\r
42 DIM SHARED puu(2000)
\r
43 DIM SHARED tuhi(202)
\r
44 DIM SHARED munt(202)
\r
45 DIM SHARED munt1(400)
\r
46 DIM SHARED munt2(200)
\r
47 DIM SHARED mari0(402)
\r
48 DIM SHARED mari(202, 1 TO 5)
\r
49 DIM SHARED koll(1 TO 230, 1 TO 10)
\r
50 DIM SHARED koll1(1 TO 202, 1 TO 5)
\r
51 DIM SHARED kolla(1 TO 10)
\r
52 DIM SHARED kollb(1 TO 10)
\r
53 DIM SHARED kollal(1 TO 10)
\r
54 DIM SHARED kolled(1 TO 10)
\r
56 DIM SHARED rahaz(1 TO 5)
\r
57 DIM SHARED number(100, 0 TO 11)
\r
61 DIM SHARED clra, clrb
\r
71 ekraan = 13: zpqf = 4
\r
89 wiew 0, 0, 1, 1, "pilv"
\r
90 GET (1, 1)-(109, 35), pilv
\r
92 wiew 0, 0, 1, 1, "kast"
\r
93 GET (1, 2)-(20, 21), kast
\r
95 wiew 0, 0, 1, 1, "tellis"
\r
96 GET (1, 2)-(20, 21), tellis
\r
98 GET (1, 2)-(20, 21), tuhi
\r
99 wiew 0, 0, 1, 1, "mario1"
\r
100 GET (1, 2)-(20, 21), mari(202, 1)
\r
102 wiew1 0, 0, 1, 1, "mario1"
\r
103 GET (3, 2)-(22, 21), mari(202, 2)
\r
105 wiew 0, 0, 1, 1, "mario2"
\r
106 GET (1, 2)-(20, 21), mari(202, 3)
\r
108 wiew1 0, 0, 1, 1, "mario2"
\r
109 GET (3, 2)-(22, 21), mari(202, 4)
\r
111 wiew 0, 0, 1, 1, "poosas"
\r
112 GET (1, 1)-(60, 21), poosas
\r
114 wiew 0, 0, 1, 1, "puu"
\r
115 GET (1, 1)-(40, 60), puu
\r
117 wiew 0, 0, 1, 1, "munt"
\r
118 GET (1, 1)-(10, 11), munt
\r
120 wiew 0, 0, 1, 1, "munt1"
\r
121 GET (0, 2)-(20, 11), munt1
\r
123 wiew 0, 0, 1, 1, "munt2"
\r
124 GET (0, 2)-(20, 11), munt2
\r
127 wiew 0, 0, 1, 1, "0"
\r
128 GET (0, 2)-(10, 11), number(100, 0)
\r
130 wiew 0, 0, 1, 1, "1"
\r
131 GET (0, 2)-(10, 11), number(100, 1)
\r
133 wiew 0, 0, 1, 1, "2"
\r
134 GET (0, 2)-(10, 11), number(100, 2)
\r
136 wiew 0, 0, 1, 1, "3"
\r
137 GET (0, 2)-(10, 11), number(100, 3)
\r
139 wiew 0, 0, 1, 1, "4"
\r
140 GET (0, 2)-(10, 11), number(100, 4)
\r
142 wiew 0, 0, 1, 1, "5"
\r
143 GET (0, 2)-(10, 11), number(100, 5)
\r
145 wiew 0, 0, 1, 1, "6"
\r
146 GET (0, 2)-(10, 11), number(100, 6)
\r
148 wiew 0, 0, 1, 1, "7"
\r
149 GET (0, 2)-(10, 11), number(100, 7)
\r
151 wiew 0, 0, 1, 1, "8"
\r
152 GET (0, 2)-(10, 11), number(100, 8)
\r
154 GET (0, 2)-(10, 11), number(100, 10)
\r
155 wiew 0, 0, 1, 1, "9"
\r
156 GET (0, 2)-(10, 11), number(100, 9)
\r
159 wiew 0, 0, 1, 1, "tigu"
\r
160 GET (1, 2)-(20, 21), koll1(202, 1)
\r
162 wiew 0, 0, 1, 1, "tigu1"
\r
163 GET (3, 2)-(22, 21), koll1(202, 2)
\r
165 wiew1 0, 0, 1, 1, "tigu"
\r
166 GET (1, 2)-(20, 21), koll1(202, 3)
\r
168 wiew1 0, 0, 1, 1, "tigu1"
\r
169 GET (3, 2)-(22, 21), koll1(202, 4)
\r
185 IF b1 > 0 THEN GET (a1, b1)-(a1 + 20, b1 + 20), mari0: PUT (a1, b1), mari(202, liig), OR
\r
188 IF kollb(ox) < 170 AND z = 1 THEN
\r
189 kollb(ox) = kollb(ox) + kollal(ox)
\r
190 kolla(ox) = kolla(ox) + kolled(ox)
\r
191 GET (kolla(ox), kollb(ox))-(kolla(ox) + 20, kollb(ox) + 20), koll(202, ox)
\r
192 IF kolled(ox) <= 0 THEN kolll = 1 ELSE kolll = 3
\r
193 IF zz > 2 THEN kolll = kolll + 1: IF zz = 3 THEN kollal(ox) = kollal(ox) + 1
\r
194 PUT (kolla(ox), kollb(ox)), koll1(202, kolll)
\r
199 IF z > 3 THEN z = 1
\r
202 IF zz > 5 THEN zz = 0
\r
204 IF edasi > 0 THEN edasi = edasi - 1: zy = zy + 1
\r
205 IF edasi < 0 THEN edasi = edasi + 1: zy = zy + 1
\r
206 IF zy > 2 THEN zy = 1
\r
207 IF zy = 2 THEN ov1 = 1: ov2 = 2
\r
208 IF zy = 1 THEN ov1 = 3: ov2 = 4
\r
211 IF kollb(ox) < 170 THEN
\r
212 IF ruum((kolla(ox) + 20) / 20, (kollb(ox) + 9) / 20) = "m" THEN kollal(ox) = -1
\r
213 IF kolla(ox) > 270 THEN kolled(ox) = -1
\r
214 IF kolla(ox) < 2 THEN kolled(ox) = 1
\r
215 IF ruum((kolla(ox) + 28) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = -1
\r
216 IF ruum((kolla(ox) + 10) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = 1
\r
217 IF kolla(ox) - 20 < a1 AND kolla(ox) + 20 > a1 AND kollb(ox) - 5 < b1 AND kollb(ox) + 20 > b1 THEN aargh: dead: GOTO 12
\r
222 IF ruum((a1 + 15) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0
\r
223 IF ruum((a1 + 25) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0
\r
224 IF ruum((a1 + 20) / 20, (b1 - 8) / 20) = "m" THEN alla = 1: ao = 20
\r
225 IF ruum((a1 + 28) / 20, (b1) / 20) = "m" THEN edasi = -1: qa = 1
\r
226 IF ruum((a1 + 10) / 20, (b1) / 20) = "m" THEN edasi = 1: qa = 1
\r
228 IF ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "o" THEN alla = 1: ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "": ruum((a1 + 20) / 20, (b1 - 8) / 20) = "2": clra = ((a1 + 20) / 20) - 1: clrb = (b1 - 8) / 20: clr = 1: SOUND 50, .5
\r
229 IF ruum((a1 + 20) / 20, (b1) / 20) = "1" THEN ruum((a1 + 20) / 20, (b1) / 20) = "2": clra = ((a1 + 21) / 20) - 1: clrb = (b1) / 20: clr = 1: raha = raha + 1: nait 1: SOUND 1000, 1: SOUND 2000, 1
\r
232 IF a$ = CHR$(0) + "H" AND ao < 10 THEN alla = -6
\r
233 IF a$ = CHR$(0) + "M" AND qa = 0 THEN edasi = edasi + 3: liig = ov1
\r
234 IF a$ = CHR$(0) + "K" AND qa = 0 THEN edasi = edasi - 3: liig = ov2
\r
235 IF a$ = CHR$(27) THEN esc
\r
236 IF a$ = "+" AND qa = 0 THEN maailm = maailm + 1: level: GOTO 12
\r
237 IF qa <> 0 THEN qa = 0
\r
238 IF edasi > 5 THEN edasi = 3
\r
239 IF edasi < -5 THEN edasi = -3
\r
240 IF alla > 3 THEN alla = 3
\r
242 IF b1 > 0 THEN PUT (a1, b1), mari0, PSET
\r
245 FOR ox = 10 TO 1 STEP -1
\r
246 IF kollb(ox) < 170 THEN PUT (kolla(ox), kollb(ox)), koll(202, ox), PSET
\r
253 IF clr > 0 THEN clr = 0: PUT (clra * 20, clrb * 20), tuhi, PSET
\r
254 IF a1 > 280 THEN maailm = maailm + 1: level: a1 = 3
\r
255 IF a1 < 2 THEN maailm = maailm - 1: level: a1 = 279
\r
256 IF b1 > 170 THEN FOR a = 3000 TO 500 STEP -100: SOUND a, .3: NEXT a: dead
\r
271 LINE (0, 0)-(319, 150), 0, BF
\r
272 LOCATE 20, 10 + prog
\r
278 IF maailm > 1 THEN maailm = maailm - 1
\r
288 DIM diep(1 TO 2000)
\r
289 GET (0, 0)-(150, 20), diep
\r
297 IF POINT(x, y) > 0 THEN LINE (x * 5, y * 5 + 50)-(x * 5 + 4, y * 5 + 54), 4, BF
\r
300 PUT (0, 0), diep, PSET
\r
305 GET (x, y)-(x + 20, y + 20), diep
\r
306 x = x + RND * 4 - 2
\r
307 y = y + RND * 4 - 1
\r
308 PUT (x, y), diep, PSET
\r
317 LINE (0, a)-(320, a), 4
\r
318 LINE (0, 200 - a)-(320, 200 - a), 4
\r
320 FOR a = 32 TO 0 STEP -1
\r
333 FOR a = b TO 200 STEP 20
\r
334 LINE (0, a)-(320, a), 0
\r
351 wiew 2, 2, 10, 1, "win.i01"
\r
355 IF maailm > 10 THEN
\r
357 PRINT "Mission complete!"
\r
363 text5(a + 1) = maa(a, maailm)
\r
368 IF ruum(b, a - 2) = "2" THEN MID$(maa(a, maailm1), b) = " "
\r
387 PAINT (1, 1), maa1(maailm)
\r
388 GET (1, 2)-(20, 21), tuhi
\r
391 c$ = RIGHT$(LEFT$(text5(a), b), 1)
\r
392 IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR
\r
393 IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR
\r
394 IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR
\r
395 IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1"
\r
396 IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m"
\r
397 IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o"
\r
398 IF c$ = " " THEN ruum(b, a) = " "
\r
400 IF c$ = "1" THEN kolla(1) = (b - 1) * 20: kollb(1) = (a - 2) * 20: GET (kolla(1), kollb(1))-(kolla(1) + 20, kollb(1) + 20), koll(202, 1)
\r
401 IF c$ = "2" THEN kolla(2) = (b - 1) * 20: kollb(2) = (a - 2) * 20: GET (kolla(2), kollb(2))-(kolla(2) + 20, kollb(2) + 20), koll(202, 2)
\r
402 IF c$ = "3" THEN kolla(3) = (b - 1) * 20: kollb(3) = (a - 2) * 20: GET (kolla(3), kollb(3))-(kolla(3) + 20, kollb(3) + 20), koll(202, 3)
\r
403 IF c$ = "4" THEN kolla(4) = (b - 1) * 20: kollb(4) = (a - 2) * 20: GET (kolla(4), kollb(4))-(kolla(4) + 20, kollb(4) + 20), koll(202, 4)
\r
404 IF c$ = "5" THEN kolla(5) = (b - 1) * 20: kollb(5) = (a - 2) * 20: GET (kolla(5), kollb(5))-(kolla(5) + 20, kollb(5) + 20), koll(202, 5)
\r
405 IF c$ = "6" THEN kolla(6) = (b - 1) * 20: kollb(6) = (a - 2) * 20: GET (kolla(6), kollb(6))-(kolla(6) + 20, kollb(6) + 20), koll(202, 6)
\r
406 IF c$ = "7" THEN kolla(7) = (b - 1) * 20: kollb(7) = (a - 2) * 20: GET (kolla(7), kollb(7))-(kolla(7) + 20, kollb(7) + 20), koll(202, 7)
\r
407 IF c$ = "8" THEN kolla(8) = (b - 1) * 20: kollb(8) = (a - 2) * 20: GET (kolla(8), kollb(8))-(kolla(8) + 20, kollb(8) + 20), koll(202, 8)
\r
408 IF c$ = "9" THEN kolla(9) = (b - 1) * 20: kollb(9) = (a - 2) * 20: GET (kolla(9), kollb(9))-(kolla(9) + 20, kollb(9) + 20), koll(202, 9)
\r
409 IF c$ = "0" THEN kolla(10) = (b - 1) * 20: kollb(10) = (a - 2) * 20: GET (kolla(10), kollb(10))-(kolla(10) + 20, kollb(10) + 20), koll(202, 10)
\r
418 maa(2, 1) = "m - - "
\r
420 maa(4, 1) = "m $ $ $ $ "
\r
421 maa(5, 1) = "m $ $ $ $ "
\r
422 maa(6, 1) = "m + momom "
\r
424 maa(8, 1) = "m . . "
\r
425 maa(9, 1) = "mmmmmmmmmmmmmmm"
\r
428 maa(1, 2) = " $2- "
\r
430 maa(3, 2) = " o$ - "
\r
431 maa(4, 2) = " o$ 3 "
\r
432 maa(5, 2) = " o o1 "
\r
433 maa(6, 2) = " + mmom"
\r
434 maa(7, 2) = " omom m "
\r
435 maa(8, 2) = " $ $ $ $ m "
\r
436 maa(9, 2) = "mmmm mm"
\r
439 maa(1, 3) = " mmmmm"
\r
440 maa(2, 3) = "- $ $ mmmmm"
\r
441 maa(3, 3) = " $ $ $ mmmmm"
\r
442 maa(4, 3) = " $ $ mmmmm"
\r
443 maa(5, 3) = " . mmmmm"
\r
444 maa(6, 3) = "mmmm 1 mmmm"
\r
445 maa(7, 3) = " mm m"
\r
446 maa(8, 3) = " mmm "
\r
447 maa(9, 3) = "mmm mmmmm"
\r
450 maa(1, 4) = "mmmmmmmmmmmmmmm"
\r
451 maa(2, 4) = "m$ $ $ $ $ "
\r
452 maa(3, 4) = "mm $m $4$ $ $ "
\r
453 maa(4, 4) = "m$m mmmmmommmm"
\r
454 maa(5, 4) = "m$ 3 2 m"
\r
455 maa(6, 4) = "m1 ooooooomo m"
\r
456 maa(7, 4) = "mooo$$$$$$$m m"
\r
458 maa(9, 4) = "mmmmmmmmmmmmmmm"
\r
461 maa(1, 5) = "mmmmmmmmmmmmmmm"
\r
463 maa(3, 5) = "m m 1 3 mmmm"
\r
464 maa(4, 5) = "m m mmm o m"
\r
465 maa(5, 5) = "m m4567892o m"
\r
466 maa(6, 5) = "m mooooommo m"
\r
468 maa(8, 5) = "m mmm"
\r
469 maa(9, 5) = "mmmm mmm mmmm"
\r
473 maa(2, 6) = " - $ - "
\r
474 maa(3, 6) = "m $ $ "
\r
475 maa(4, 6) = "m o o $ "
\r
476 maa(5, 6) = "m o o "
\r
479 maa(8, 6) = "mm 1 m 2 m "
\r
480 maa(9, 6) = "mmmmmmmmmmmmmmm"
\r
487 maa(5, 7) = " 3mmm"
\r
488 maa(6, 7) = " o + 4mmmm"
\r
489 maa(7, 7) = " ooo 5mmmmm"
\r
490 maa(8, 7) = " 6mmmmmm"
\r
491 maa(9, 7) = "mmmmmmmmmmmmmmm"
\r
494 maa(1, 8) = " mmmmmmmmmmmmm"
\r
495 maa(2, 8) = " m123m456m789 "
\r
496 maa(3, 8) = " mm$mmm$mmm$mm"
\r
497 maa(4, 8) = " mm$$$$$$$$$$m"
\r
498 maa(5, 8) = " mmom$mmm$mmmm"
\r
499 maa(6, 8) = " o$$$$$$$$$ o"
\r
500 maa(7, 8) = " omooooooo o"
\r
501 maa(8, 8) = " - m "
\r
502 maa(9, 8) = "mmmmmmmmmmmmmmm"
\r
505 maa(1, 9) = " 12345"
\r
506 maa(2, 9) = " 6789 "
\r
518 maa(3, 10) = "m - "
\r
519 maa(4, 10) = "m + "
\r
521 maa(6, 10) = "m + 2 "
\r
522 maa(7, 10) = "m mmm "
\r
523 maa(8, 10) = "m . 1 "
\r
524 maa(9, 10) = "mmmmmmmmmmm mm"
\r
528 OPEN a$ FOR INPUT AS #2
\r
530 FOR a = 1 TO pikkus
\r
531 LINE INPUT #2, text$(a)
\r
537 IF elud < 0 THEN die
\r
538 PUT (0, 180), munt1, PSET
\r
539 rahaz(1) = rahaz(1) + zaz
\r
541 IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1
\r
542 IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: elud = elud + 1
\r
548 PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET
\r
550 IF elud > 10 THEN elud = 10
\r
551 PUT (43, 180), number(100, 10), PSET
\r
552 PUT (53, 180), munt2, PSET
\r
553 PUT (73, 180), number(100, elud), PSET
\r
557 OPEN a$ FOR OUTPUT AS #2
\r
559 FOR a = 1 TO pikkus
\r
569 FOR a = 1 TO 80 STEP 8
\r
580 SUB wiew (a1, b1, c1, d1, a$)
\r
583 OPEN a$ + ".i01" FOR INPUT AS #1
\r
585 FOR a = 1 TO pikkus
\r
587 FOR b = 1 TO LEN(z$)
\r
588 LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1) - 1, b1 + ((a + 1) * d1)), ASC(RIGHT$(LEFT$(z$, b), 1)) - 40, BF
\r
594 SUB wiew1 (a1, b1, c1, d1, a$)
\r
599 OPEN a$ + ".i01" FOR INPUT AS #1
\r
601 FOR a = 1 TO pikkus
\r
603 FOR b = LEN(z$) TO 1 STEP -1
\r
604 LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF
\r