fc1e3bd11e405b039c14f474844c598daa860f94
[qbasicapps.git] / games / mario / smario.bas
1 ' Super Mario style game\r
2 ' by Svjatoslav Agejenko 1999\r
3 ' E-mail: svjatoslavagejenko@gmail.com\r
4 \r
5 DECLARE SUB CL ()\r
6 DECLARE SUB esc ()\r
7 DECLARE SUB aargh ()\r
8 DECLARE SUB die ()\r
9 \r
10 \r
11 DECLARE SUB dead ()\r
12 DEFINT A-Z\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
24 \r
25 DIM SHARED sj$\r
26 DIM SHARED ekraan\r
27 DIM SHARED text$(1 TO 500)\r
28 DIM SHARED pikkus\r
29 \r
30 \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
55 \r
56 DIM SHARED rahaz(1 TO 5)\r
57 DIM SHARED number(100, 0 TO 11)\r
58 DIM SHARED elud\r
59 \r
60 DIM SHARED raha\r
61 DIM SHARED clra, clrb\r
62 DIM SHARED a1, b1\r
63 \r
64 DIM SHARED prog\r
65 prog = 1\r
66 SCREEN 13\r
67 maailm = 1\r
68 maailm1 = 1\r
69 level1\r
70 1\r
71 ekraan = 13: zpqf = 4\r
72 \r
73 FOR a = 0 TO 254\r
74 OUT &H3C8, a\r
75 OUT &H3C9, 0\r
76 OUT &H3C9, 0\r
77 OUT &H3C9, 0\r
78 NEXT a\r
79 OUT &H3C8, 255\r
80 OUT &H3C9, 60\r
81 OUT &H3C9, 60\r
82 OUT &H3C9, 60\r
83 LOCATE 20, 3\r
84 COLOR 255\r
85 PRINT "LOADING "\r
86 \r
87 \r
88 CL\r
89 wiew 0, 0, 1, 1, "pilv"\r
90 GET (1, 1)-(109, 35), pilv\r
91 CL\r
92 wiew 0, 0, 1, 1, "kast"\r
93 GET (1, 2)-(20, 21), kast\r
94 CL\r
95 wiew 0, 0, 1, 1, "tellis"\r
96 GET (1, 2)-(20, 21), tellis\r
97 CL\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
101 CL\r
102 wiew1 0, 0, 1, 1, "mario1"\r
103 GET (3, 2)-(22, 21), mari(202, 2)\r
104 CL\r
105 wiew 0, 0, 1, 1, "mario2"\r
106 GET (1, 2)-(20, 21), mari(202, 3)\r
107 CL\r
108 wiew1 0, 0, 1, 1, "mario2"\r
109 GET (3, 2)-(22, 21), mari(202, 4)\r
110 CL\r
111 wiew 0, 0, 1, 1, "poosas"\r
112 GET (1, 1)-(60, 21), poosas\r
113 CL\r
114 wiew 0, 0, 1, 1, "puu"\r
115 GET (1, 1)-(40, 60), puu\r
116 CL\r
117 wiew 0, 0, 1, 1, "munt"\r
118 GET (1, 1)-(10, 11), munt\r
119 CL\r
120 wiew 0, 0, 1, 1, "munt1"\r
121 GET (0, 2)-(20, 11), munt1\r
122 CL\r
123 wiew 0, 0, 1, 1, "munt2"\r
124 GET (0, 2)-(20, 11), munt2\r
125 \r
126 CL\r
127 wiew 0, 0, 1, 1, "0"\r
128 GET (0, 2)-(10, 11), number(100, 0)\r
129 CL\r
130 wiew 0, 0, 1, 1, "1"\r
131 GET (0, 2)-(10, 11), number(100, 1)\r
132 CL\r
133 wiew 0, 0, 1, 1, "2"\r
134 GET (0, 2)-(10, 11), number(100, 2)\r
135 CL\r
136 wiew 0, 0, 1, 1, "3"\r
137 GET (0, 2)-(10, 11), number(100, 3)\r
138 CL\r
139 wiew 0, 0, 1, 1, "4"\r
140 GET (0, 2)-(10, 11), number(100, 4)\r
141 CL\r
142 wiew 0, 0, 1, 1, "5"\r
143 GET (0, 2)-(10, 11), number(100, 5)\r
144 CL\r
145 wiew 0, 0, 1, 1, "6"\r
146 GET (0, 2)-(10, 11), number(100, 6)\r
147 CL\r
148 wiew 0, 0, 1, 1, "7"\r
149 GET (0, 2)-(10, 11), number(100, 7)\r
150 CL\r
151 wiew 0, 0, 1, 1, "8"\r
152 GET (0, 2)-(10, 11), number(100, 8)\r
153 CL\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
157 \r
158 CL\r
159 wiew 0, 0, 1, 1, "tigu"\r
160 GET (1, 2)-(20, 21), koll1(202, 1)\r
161 CL\r
162 wiew 0, 0, 1, 1, "tigu1"\r
163 GET (3, 2)-(22, 21), koll1(202, 2)\r
164 CL\r
165 wiew1 0, 0, 1, 1, "tigu"\r
166 GET (1, 2)-(20, 21), koll1(202, 3)\r
167 CL\r
168 wiew1 0, 0, 1, 1, "tigu1"\r
169 GET (3, 2)-(22, 21), koll1(202, 4)\r
170 \r
171 SCREEN 0\r
172 SCREEN 13\r
173 level\r
174 a1 = 50\r
175 b1 = 50\r
176 edasi = 0\r
177 liig = 1\r
178 ov1 = 1\r
179 ov2 = 2\r
180 raha = 0\r
181 elud = 3\r
182 z = 1\r
183 nait 0\r
184 12\r
185 IF b1 > 0 THEN GET (a1, b1)-(a1 + 20, b1 + 20), mari0: PUT (a1, b1), mari(202, liig), OR\r
186 \r
187 FOR ox = 1 TO 10\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
195 END IF\r
196 NEXT ox\r
197 SOUND 0, .5\r
198 z = z + 1\r
199 IF z > 3 THEN z = 1\r
200 IF z = 1 THEN\r
201 zz = zz + 1\r
202 IF zz > 5 THEN zz = 0\r
203 alla = alla + 1\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
209 \r
210 FOR ox = 1 TO 10\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
218 END IF\r
219 NEXT ox\r
220 END IF\r
221 \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
227 \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
230 ao = ao + 1\r
231 a$ = INKEY$\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
241 \r
242 IF b1 > 0 THEN PUT (a1, b1), mari0, PSET\r
243 \r
244 IF z = 1 THEN\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
247 NEXT ox\r
248 END IF\r
249 \r
250 \r
251 b1 = b1 + alla\r
252 a1 = a1 + edasi\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
257 GOTO 12\r
258 \r
259 SUB aargh\r
260 a = 1700\r
261 b = 1900\r
262 FOR c = 1 TO 50\r
263 a = a + 3\r
264 b = b - 5\r
265 SOUND a, .2\r
266 SOUND b, .2\r
267 NEXT c\r
268 END SUB\r
269 \r
270 SUB CL\r
271 LINE (0, 0)-(319, 150), 0, BF\r
272 LOCATE 20, 10 + prog\r
273 prog = prog + 1\r
274 PRINT "."\r
275 END SUB\r
276 \r
277 SUB dead\r
278 IF maailm > 1 THEN maailm = maailm - 1\r
279 \r
280 level\r
281 a1 = 20\r
282 b1 = 100\r
283 elud = elud - 1\r
284 nait 0\r
285 END SUB\r
286 \r
287 SUB die\r
288 DIM diep(1 TO 2000)\r
289 GET (0, 0)-(150, 20), diep\r
290 LOCATE 1, 1\r
291 PRINT "You are    "\r
292 LOCATE 2, 1\r
293 PRINT " killed!   "\r
294  \r
295 FOR x = 0 TO 80\r
296 FOR y = 0 TO 16\r
297 IF POINT(x, y) > 0 THEN LINE (x * 5, y * 5 + 50)-(x * 5 + 4, y * 5 + 54), 4, BF\r
298 NEXT y\r
299 NEXT x\r
300 PUT (0, 0), diep, PSET\r
301 \r
302 FOR a = 1 TO 100\r
303 x = RND * 290 + 4\r
304 y = RND * 170 + 4\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
309 NEXT a\r
310 FOR a = 1 TO 50\r
311 a$ = INKEY$\r
312 NEXT a\r
313 a$ = INPUT$(1)\r
314 \r
315 FOR a = 0 TO 100\r
316 SOUND 0, .05\r
317 LINE (0, a)-(320, a), 4\r
318 LINE (0, 200 - a)-(320, 200 - a), 4\r
319 NEXT a\r
320 FOR a = 32 TO 0 STEP -1\r
321 SOUND 0, .5\r
322 OUT &H3C8, 4\r
323 OUT &H3C9, a\r
324 OUT &H3C9, 0\r
325 OUT &H3C9, 0\r
326 NEXT a\r
327 END\r
328 \r
329 END SUB\r
330 \r
331 SUB esc\r
332 FOR b = 0 TO 20\r
333 FOR a = b TO 200 STEP 20\r
334 LINE (0, a)-(320, a), 0\r
335 NEXT a\r
336 SOUND 0, .5\r
337 NEXT b\r
338 SYSTEM\r
339 \r
340 END SUB\r
341 \r
342 SUB inpur\r
343 sj$ = ""\r
344 WHILE sj$ = ""\r
345 sj$ = INKEY$\r
346 WEND\r
347 END SUB\r
348 \r
349 SUB intro\r
350 CLS\r
351 wiew 2, 2, 10, 1, "win.i01"\r
352 END SUB\r
353 \r
354 SUB level\r
355 IF maailm > 10 THEN\r
356 CLS\r
357 PRINT "Mission complete!"\r
358 PRINT "Game over"\r
359 END\r
360 END IF\r
361 \r
362 FOR a = 1 TO 10\r
363 text5(a + 1) = maa(a, maailm)\r
364 NEXT a\r
365 \r
366 FOR a = 1 TO 10\r
367 FOR b = 1 TO 15\r
368 IF ruum(b, a - 2) = "2" THEN MID$(maa(a, maailm1), b) = " "\r
369 NEXT b\r
370 NEXT a\r
371 maailm1 = maailm\r
372 \r
373 FOR a = -3 TO 20\r
374 FOR b = -3 TO 20\r
375 ruum(a, b) = ""\r
376 ruum1(a, b) = ""\r
377 NEXT b\r
378 NEXT a\r
379 \r
380 FOR a = 1 TO 10\r
381 kollb(a) = 1000\r
382 kolled(a) = 1\r
383 kollal(a) = 0\r
384 NEXT a\r
385 \r
386 CLS\r
387 PAINT (1, 1), maa1(maailm)\r
388 GET (1, 2)-(20, 21), tuhi\r
389 FOR a = 2 TO 10\r
390 FOR b = 1 TO 15\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
399 \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
410 NEXT b\r
411 NEXT a\r
412 nait 0\r
413 END SUB\r
414 \r
415 SUB level1\r
416 maa1(1) = 1\r
417 maa(1, 1) = "m              "\r
418 maa(2, 1) = "m  -      -    "\r
419 maa(3, 1) = "m              "\r
420 maa(4, 1) = "m     $ $ $ $  "\r
421 maa(5, 1) = "m    $ $ $ $   "\r
422 maa(6, 1) = "m +     momom  "\r
423 maa(7, 1) = "m              "\r
424 maa(8, 1) = "m    .   .     "\r
425 maa(9, 1) = "mmmmmmmmmmmmmmm"\r
426 \r
427 maa1(2) = 1\r
428 maa(1, 2) = " $2-           "\r
429 maa(2, 2) = " o$            "\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
437 \r
438 maa1(3) = 1\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
448 \r
449 maa1(4) = 0\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
457 maa(8, 4) = "              m"\r
458 maa(9, 4) = "mmmmmmmmmmmmmmm"\r
459 \r
460 maa1(5) = 0\r
461 maa(1, 5) = "mmmmmmmmmmmmmmm"\r
462 maa(2, 5) = "   m           "\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
467 maa(7, 5) = "m            mm"\r
468 maa(8, 5) = "m           mmm"\r
469 maa(9, 5) = "mmmm  mmm  mmmm"\r
470 \r
471 maa1(6) = 1\r
472 maa(1, 6) = "m              "\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
477 maa(6, 6) = "m          +   "\r
478 maa(7, 6) = "m              "\r
479 maa(8, 6) = "mm 1 m 2  m    "\r
480 maa(9, 6) = "mmmmmmmmmmmmmmm"\r
481 \r
482 maa1(7) = 1\r
483 maa(1, 7) = "       -       "\r
484 maa(2, 7) = "  -            "\r
485 maa(3, 7) = "             1m"\r
486 maa(4, 7) = "            2mm"\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
492 \r
493 maa1(8) = 1\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
503 \r
504 maa1(9) = 0\r
505 maa(1, 9) = "          12345"\r
506 maa(2, 9) = "          6789 "\r
507 maa(3, 9) = "             mm"\r
508 maa(4, 9) = "           m   "\r
509 maa(5, 9) = "         m     "\r
510 maa(6, 9) = "       m       "\r
511 maa(7, 9) = "     m         "\r
512 maa(8, 9) = "   m           "\r
513 maa(9, 9) = "mm             "\r
514 \r
515 maa1(10) = 1\r
516 maa(1, 10) = "m              "\r
517 maa(2, 10) = "   -           "\r
518 maa(3, 10) = "m      -       "\r
519 maa(4, 10) = "m        +     "\r
520 maa(5, 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
525 END SUB\r
526 \r
527 SUB load (a$)\r
528 OPEN a$ FOR INPUT AS #2\r
529 INPUT #2, pikkus\r
530 FOR a = 1 TO pikkus\r
531 LINE INPUT #2, text$(a)\r
532 NEXT a\r
533 CLOSE\r
534 END SUB\r
535 \r
536 SUB nait (zaz)\r
537 IF elud < 0 THEN die\r
538 PUT (0, 180), munt1, PSET\r
539 rahaz(1) = rahaz(1) + zaz\r
540 FOR b = 1 TO 3\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
543 NEXT b\r
544 LOCATE 1, 1\r
545 r = 3\r
546 FOR a = 1 TO 2\r
547 r = r - 1\r
548 PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET\r
549 NEXT a\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
554 END SUB\r
555 \r
556 SUB save (a$)\r
557 OPEN a$ FOR OUTPUT AS #2\r
558 PRINT #2, pikkus\r
559 FOR a = 1 TO pikkus\r
560 PRINT #2, text$(a)\r
561 NEXT a\r
562 CLOSE\r
563 END SUB\r
564 \r
565 DEFSNG A-Z\r
566 SUB tahed\r
567 CLS\r
568 t = 13\r
569 FOR a = 1 TO 80 STEP 8\r
570 FOR b = 1 TO 20\r
571 t = t + 1\r
572 LOCATE b, a\r
573 PRINT CHR$(t); t\r
574 NEXT b\r
575 NEXT a\r
576 \r
577 END SUB\r
578 \r
579 DEFINT A-Z\r
580 SUB wiew (a1, b1, c1, d1, a$)\r
581 laius1 = c1 - a1\r
582 pikkus1 = d1 - b1\r
583 OPEN a$ + ".i01" FOR INPUT AS #1\r
584 INPUT #1, pikkus\r
585 FOR a = 1 TO pikkus\r
586 LINE INPUT #1, z$\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
589 NEXT b\r
590 NEXT a\r
591 CLOSE\r
592 END SUB\r
593 \r
594 SUB wiew1 (a1, b1, c1, d1, a$)\r
595 a1 = a1 * 8\r
596 b1 = b1 * 8\r
597 laius1 = c1 - a1\r
598 pikkus1 = d1 - b1\r
599 OPEN a$ + ".i01" FOR INPUT AS #1\r
600 INPUT #1, pikkus\r
601 FOR a = 1 TO pikkus\r
602 LINE INPUT #1, z$\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
605 NEXT b\r
606 NEXT a\r
607 CLOSE\r
608 END SUB\r
609 \r