1 ' Super Mario style game
\r
2 ' by Svjatoslav Agejenko 1999
\r
12 DECLARE SUB level1 ()
\r
13 DECLARE SUB nait (zaz%)
\r
14 DECLARE SUB wiew1 (a1%, b1%, c1%, d1%, a$)
\r
15 DECLARE SUB level ()
\r
16 DECLARE SUB save (a$)
\r
17 DECLARE SUB picedit ()
\r
18 DECLARE SUB wiew (a1%, b1%, c1%, d1%, a$)
\r
19 DECLARE SUB intro ()
\r
20 DECLARE SUB inpur ()
\r
21 DECLARE SUB mousedriver (AX%, bx%, cx%, dx%, lb%, rb%, EX%)
\r
22 DECLARE SUB tahed ()
\r
26 DIM SHARED text$(1 TO 500)
\r
30 DIM SHARED ruum(-5 TO 20, -5 TO 20) AS STRING
\r
31 DIM SHARED ruum1(-5 TO 20, -5 TO 20) AS STRING
\r
32 DIM SHARED maa(1 TO 11, 1 TO 10) AS STRING * 15
\r
33 DIM SHARED maa1(1 TO 10) AS INTEGER
\r
34 DIM SHARED maailm AS INTEGER
\r
35 DIM SHARED maailm1 AS INTEGER
\r
36 DIM SHARED text5(1 TO 15) AS STRING * 15
\r
37 DIM SHARED pilv(2100)
\r
38 DIM SHARED kast(202)
\r
39 DIM SHARED tellis(202)
\r
40 DIM SHARED poosas(1000)
\r
41 DIM SHARED puu(2000)
\r
42 DIM SHARED tuhi(202)
\r
43 DIM SHARED munt(202)
\r
44 DIM SHARED munt1(400)
\r
45 DIM SHARED munt2(200)
\r
46 DIM SHARED mari0(402)
\r
47 DIM SHARED mari(202, 1 TO 5)
\r
48 DIM SHARED koll(1 TO 230, 1 TO 10)
\r
49 DIM SHARED koll1(1 TO 202, 1 TO 5)
\r
50 DIM SHARED kolla(1 TO 10)
\r
51 DIM SHARED kollb(1 TO 10)
\r
52 DIM SHARED kollal(1 TO 10)
\r
53 DIM SHARED kolled(1 TO 10)
\r
55 DIM SHARED rahaz(1 TO 5)
\r
56 DIM SHARED number(100, 0 TO 11)
\r
60 DIM SHARED clra, clrb
\r
70 ekraan = 13: zpqf = 4
\r
88 wiew 0, 0, 1, 1, "pilv"
\r
89 GET (1, 1)-(109, 35), pilv
\r
91 wiew 0, 0, 1, 1, "kast"
\r
92 GET (1, 2)-(20, 21), kast
\r
94 wiew 0, 0, 1, 1, "tellis"
\r
95 GET (1, 2)-(20, 21), tellis
\r
97 GET (1, 2)-(20, 21), tuhi
\r
98 wiew 0, 0, 1, 1, "mario1"
\r
99 GET (1, 2)-(20, 21), mari(202, 1)
\r
101 wiew1 0, 0, 1, 1, "mario1"
\r
102 GET (3, 2)-(22, 21), mari(202, 2)
\r
104 wiew 0, 0, 1, 1, "mario2"
\r
105 GET (1, 2)-(20, 21), mari(202, 3)
\r
107 wiew1 0, 0, 1, 1, "mario2"
\r
108 GET (3, 2)-(22, 21), mari(202, 4)
\r
110 wiew 0, 0, 1, 1, "poosas"
\r
111 GET (1, 1)-(60, 21), poosas
\r
113 wiew 0, 0, 1, 1, "puu"
\r
114 GET (1, 1)-(40, 60), puu
\r
116 wiew 0, 0, 1, 1, "munt"
\r
117 GET (1, 1)-(10, 11), munt
\r
119 wiew 0, 0, 1, 1, "munt1"
\r
120 GET (0, 2)-(20, 11), munt1
\r
122 wiew 0, 0, 1, 1, "munt2"
\r
123 GET (0, 2)-(20, 11), munt2
\r
126 wiew 0, 0, 1, 1, "0"
\r
127 GET (0, 2)-(10, 11), number(100, 0)
\r
129 wiew 0, 0, 1, 1, "1"
\r
130 GET (0, 2)-(10, 11), number(100, 1)
\r
132 wiew 0, 0, 1, 1, "2"
\r
133 GET (0, 2)-(10, 11), number(100, 2)
\r
135 wiew 0, 0, 1, 1, "3"
\r
136 GET (0, 2)-(10, 11), number(100, 3)
\r
138 wiew 0, 0, 1, 1, "4"
\r
139 GET (0, 2)-(10, 11), number(100, 4)
\r
141 wiew 0, 0, 1, 1, "5"
\r
142 GET (0, 2)-(10, 11), number(100, 5)
\r
144 wiew 0, 0, 1, 1, "6"
\r
145 GET (0, 2)-(10, 11), number(100, 6)
\r
147 wiew 0, 0, 1, 1, "7"
\r
148 GET (0, 2)-(10, 11), number(100, 7)
\r
150 wiew 0, 0, 1, 1, "8"
\r
151 GET (0, 2)-(10, 11), number(100, 8)
\r
153 GET (0, 2)-(10, 11), number(100, 10)
\r
154 wiew 0, 0, 1, 1, "9"
\r
155 GET (0, 2)-(10, 11), number(100, 9)
\r
158 wiew 0, 0, 1, 1, "tigu"
\r
159 GET (1, 2)-(20, 21), koll1(202, 1)
\r
161 wiew 0, 0, 1, 1, "tigu1"
\r
162 GET (3, 2)-(22, 21), koll1(202, 2)
\r
164 wiew1 0, 0, 1, 1, "tigu"
\r
165 GET (1, 2)-(20, 21), koll1(202, 3)
\r
167 wiew1 0, 0, 1, 1, "tigu1"
\r
168 GET (3, 2)-(22, 21), koll1(202, 4)
\r
184 IF b1 > 0 THEN GET (a1, b1)-(a1 + 20, b1 + 20), mari0: PUT (a1, b1), mari(202, liig), OR
\r
187 IF kollb(ox) < 170 AND z = 1 THEN
\r
188 kollb(ox) = kollb(ox) + kollal(ox)
\r
189 kolla(ox) = kolla(ox) + kolled(ox)
\r
190 GET (kolla(ox), kollb(ox))-(kolla(ox) + 20, kollb(ox) + 20), koll(202, ox)
\r
191 IF kolled(ox) <= 0 THEN kolll = 1 ELSE kolll = 3
\r
192 IF zz > 2 THEN kolll = kolll + 1: IF zz = 3 THEN kollal(ox) = kollal(ox) + 1
\r
193 PUT (kolla(ox), kollb(ox)), koll1(202, kolll)
\r
198 IF z > 3 THEN z = 1
\r
201 IF zz > 5 THEN zz = 0
\r
203 IF edasi > 0 THEN edasi = edasi - 1: zy = zy + 1
\r
204 IF edasi < 0 THEN edasi = edasi + 1: zy = zy + 1
\r
205 IF zy > 2 THEN zy = 1
\r
206 IF zy = 2 THEN ov1 = 1: ov2 = 2
\r
207 IF zy = 1 THEN ov1 = 3: ov2 = 4
\r
210 IF kollb(ox) < 170 THEN
\r
211 IF ruum((kolla(ox) + 20) / 20, (kollb(ox) + 9) / 20) = "m" THEN kollal(ox) = -1
\r
212 IF kolla(ox) > 270 THEN kolled(ox) = -1
\r
213 IF kolla(ox) < 2 THEN kolled(ox) = 1
\r
214 IF ruum((kolla(ox) + 28) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = -1
\r
215 IF ruum((kolla(ox) + 10) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = 1
\r
216 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
221 IF ruum((a1 + 15) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0
\r
222 IF ruum((a1 + 25) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0
\r
223 IF ruum((a1 + 20) / 20, (b1 - 8) / 20) = "m" THEN alla = 1: ao = 20
\r
224 IF ruum((a1 + 28) / 20, (b1) / 20) = "m" THEN edasi = -1: qa = 1
\r
225 IF ruum((a1 + 10) / 20, (b1) / 20) = "m" THEN edasi = 1: qa = 1
\r
227 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
228 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
231 IF a$ = CHR$(0) + "H" AND ao < 10 THEN alla = -6
\r
232 IF a$ = CHR$(0) + "M" AND qa = 0 THEN edasi = edasi + 3: liig = ov1
\r
233 IF a$ = CHR$(0) + "K" AND qa = 0 THEN edasi = edasi - 3: liig = ov2
\r
234 IF a$ = CHR$(27) THEN esc
\r
235 IF a$ = "+" AND qa = 0 THEN maailm = maailm + 1: level: GOTO 12
\r
236 IF qa <> 0 THEN qa = 0
\r
237 IF edasi > 5 THEN edasi = 3
\r
238 IF edasi < -5 THEN edasi = -3
\r
239 IF alla > 3 THEN alla = 3
\r
241 IF b1 > 0 THEN PUT (a1, b1), mari0, PSET
\r
244 FOR ox = 10 TO 1 STEP -1
\r
245 IF kollb(ox) < 170 THEN PUT (kolla(ox), kollb(ox)), koll(202, ox), PSET
\r
252 IF clr > 0 THEN clr = 0: PUT (clra * 20, clrb * 20), tuhi, PSET
\r
253 IF a1 > 280 THEN maailm = maailm + 1: level: a1 = 3
\r
254 IF a1 < 2 THEN maailm = maailm - 1: level: a1 = 279
\r
255 IF b1 > 170 THEN FOR a = 3000 TO 500 STEP -100: SOUND a, .3: NEXT a: dead
\r
270 LINE (0, 0)-(319, 150), 0, BF
\r
271 LOCATE 20, 10 + prog
\r
277 IF maailm > 1 THEN maailm = maailm - 1
\r
287 DIM diep(1 TO 2000)
\r
288 GET (0, 0)-(150, 20), diep
\r
296 IF POINT(x, y) > 0 THEN LINE (x * 5, y * 5 + 50)-(x * 5 + 4, y * 5 + 54), 4, BF
\r
299 PUT (0, 0), diep, PSET
\r
304 GET (x, y)-(x + 20, y + 20), diep
\r
305 x = x + RND * 4 - 2
\r
306 y = y + RND * 4 - 1
\r
307 PUT (x, y), diep, PSET
\r
316 LINE (0, a)-(320, a), 4
\r
317 LINE (0, 200 - a)-(320, 200 - a), 4
\r
319 FOR a = 32 TO 0 STEP -1
\r
332 FOR a = b TO 200 STEP 20
\r
333 LINE (0, a)-(320, a), 0
\r
350 wiew 2, 2, 10, 1, "win.i01"
\r
354 IF maailm > 10 THEN
\r
356 PRINT "Mission complete!"
\r
362 text5(a + 1) = maa(a, maailm)
\r
367 IF ruum(b, a - 2) = "2" THEN MID$(maa(a, maailm1), b) = " "
\r
386 PAINT (1, 1), maa1(maailm)
\r
387 GET (1, 2)-(20, 21), tuhi
\r
390 c$ = RIGHT$(LEFT$(text5(a), b), 1)
\r
391 IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR
\r
392 IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR
\r
393 IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR
\r
394 IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1"
\r
395 IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m"
\r
396 IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o"
\r
397 IF c$ = " " THEN ruum(b, a) = " "
\r
399 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
400 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
401 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
402 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
403 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
404 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
405 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
406 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
407 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
408 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
417 maa(2, 1) = "m - - "
\r
419 maa(4, 1) = "m $ $ $ $ "
\r
420 maa(5, 1) = "m $ $ $ $ "
\r
421 maa(6, 1) = "m + momom "
\r
423 maa(8, 1) = "m . . "
\r
424 maa(9, 1) = "mmmmmmmmmmmmmmm"
\r
427 maa(1, 2) = " $2- "
\r
429 maa(3, 2) = " o$ - "
\r
430 maa(4, 2) = " o$ 3 "
\r
431 maa(5, 2) = " o o1 "
\r
432 maa(6, 2) = " + mmom"
\r
433 maa(7, 2) = " omom m "
\r
434 maa(8, 2) = " $ $ $ $ m "
\r
435 maa(9, 2) = "mmmm mm"
\r
438 maa(1, 3) = " mmmmm"
\r
439 maa(2, 3) = "- $ $ mmmmm"
\r
440 maa(3, 3) = " $ $ $ mmmmm"
\r
441 maa(4, 3) = " $ $ mmmmm"
\r
442 maa(5, 3) = " . mmmmm"
\r
443 maa(6, 3) = "mmmm 1 mmmm"
\r
444 maa(7, 3) = " mm m"
\r
445 maa(8, 3) = " mmm "
\r
446 maa(9, 3) = "mmm mmmmm"
\r
449 maa(1, 4) = "mmmmmmmmmmmmmmm"
\r
450 maa(2, 4) = "m$ $ $ $ $ "
\r
451 maa(3, 4) = "mm $m $4$ $ $ "
\r
452 maa(4, 4) = "m$m mmmmmommmm"
\r
453 maa(5, 4) = "m$ 3 2 m"
\r
454 maa(6, 4) = "m1 ooooooomo m"
\r
455 maa(7, 4) = "mooo$$$$$$$m m"
\r
457 maa(9, 4) = "mmmmmmmmmmmmmmm"
\r
460 maa(1, 5) = "mmmmmmmmmmmmmmm"
\r
462 maa(3, 5) = "m m 1 3 mmmm"
\r
463 maa(4, 5) = "m m mmm o m"
\r
464 maa(5, 5) = "m m4567892o m"
\r
465 maa(6, 5) = "m mooooommo m"
\r
467 maa(8, 5) = "m mmm"
\r
468 maa(9, 5) = "mmmm mmm mmmm"
\r
472 maa(2, 6) = " - $ - "
\r
473 maa(3, 6) = "m $ $ "
\r
474 maa(4, 6) = "m o o $ "
\r
475 maa(5, 6) = "m o o "
\r
478 maa(8, 6) = "mm 1 m 2 m "
\r
479 maa(9, 6) = "mmmmmmmmmmmmmmm"
\r
486 maa(5, 7) = " 3mmm"
\r
487 maa(6, 7) = " o + 4mmmm"
\r
488 maa(7, 7) = " ooo 5mmmmm"
\r
489 maa(8, 7) = " 6mmmmmm"
\r
490 maa(9, 7) = "mmmmmmmmmmmmmmm"
\r
493 maa(1, 8) = " mmmmmmmmmmmmm"
\r
494 maa(2, 8) = " m123m456m789 "
\r
495 maa(3, 8) = " mm$mmm$mmm$mm"
\r
496 maa(4, 8) = " mm$$$$$$$$$$m"
\r
497 maa(5, 8) = " mmom$mmm$mmmm"
\r
498 maa(6, 8) = " o$$$$$$$$$ o"
\r
499 maa(7, 8) = " omooooooo o"
\r
500 maa(8, 8) = " - m "
\r
501 maa(9, 8) = "mmmmmmmmmmmmmmm"
\r
504 maa(1, 9) = " 12345"
\r
505 maa(2, 9) = " 6789 "
\r
517 maa(3, 10) = "m - "
\r
518 maa(4, 10) = "m + "
\r
520 maa(6, 10) = "m + 2 "
\r
521 maa(7, 10) = "m mmm "
\r
522 maa(8, 10) = "m . 1 "
\r
523 maa(9, 10) = "mmmmmmmmmmm mm"
\r
527 OPEN a$ FOR INPUT AS #2
\r
529 FOR a = 1 TO pikkus
\r
530 LINE INPUT #2, text$(a)
\r
536 IF elud < 0 THEN die
\r
537 PUT (0, 180), munt1, PSET
\r
538 rahaz(1) = rahaz(1) + zaz
\r
540 IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1
\r
541 IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: elud = elud + 1
\r
547 PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET
\r
549 IF elud > 10 THEN elud = 10
\r
550 PUT (43, 180), number(100, 10), PSET
\r
551 PUT (53, 180), munt2, PSET
\r
552 PUT (73, 180), number(100, elud), PSET
\r
556 OPEN a$ FOR OUTPUT AS #2
\r
558 FOR a = 1 TO pikkus
\r
568 FOR a = 1 TO 80 STEP 8
\r
579 SUB wiew (a1, b1, c1, d1, a$)
\r
582 OPEN a$ + ".i01" FOR INPUT AS #1
\r
584 FOR a = 1 TO pikkus
\r
586 FOR b = 1 TO LEN(z$)
\r
587 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
593 SUB wiew1 (a1, b1, c1, d1, a$)
\r
598 OPEN a$ + ".i01" FOR INPUT AS #1
\r
600 FOR a = 1 TO pikkus
\r
602 FOR b = LEN(z$) TO 1 STEP -1
\r
603 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