10 REM ********************** ****t*tt*t*#**t*t* 20 REM * 6ANZENB0 RDEN * 30 REM * Voor MSX-2, geschrev en in sept. 1989 * 40 REM * public do main * 50 REM * $ Jacowsk i * * 60 REM ********************** ««ft************** 70 REM 80 CLEAR 500 : MAXFILES=2 : DN KE Y GOSUB 2310 : KEY(l) ON 90 POKE 644331,1 : 'ctrl/stop aan 100 GOSUB 2400 : GOSUB 1280 : ' ke uzeschem/aanvangsscherm 110 REM 120 LGI=" 130 GOSUB 760 : GOSUB 260 : GOSUB 790 :'openen bestand/schernopb/sprite 1 oop 140 X = 18 : Y=145 : M=25 : N=145 150 GOSUB 900 s'plaatsen sprites 160 REM-------------------------------- .........- LATEN DRAAIEN DOBBELSTEEN 170 ON STRIG GOSUB 1010 180 STRI6(0) ON 190 PRESET (10,195) : PRINT #1,LG* 200 IF SP=0 THEN PRESET (15,195) : PRINT II,"Oké ";GR$;* draaien aaar.. N 210 IF SP=1 THEN PRESET (15,195) ; PRINT ll^Oké draaien naar.. N • 220 60T0 220 230 END 240 REM #########»##########•##* SUBR OUTINES #§tiiti#i»ll###t#iitlt##ti# 250 REM-------------------------------- ----------- SCHERMOPBOUW ------------ 260 CLS : COLOR 15,5,12 : SCREEN 7 ,2 270 PRESET (11,195) sPRINTIl,"Even Machten a.u.b." 280 LINE (0,0>-<512,180),6,B 290 LINE (7,3)-(505,177),6,B 300 PAINT (2,2),6,6 s PAINT (8,4),1 0,6 310 CIRCLE <80,80),50,3,,,1.4 : PAINT (81,81),3,3 320 CIRCLE (150,130),40,11,,,1.4 : PAINT (151,131),tl,11 330 CIRCLE (450,100),30,2,,,1.36 : PAINT (451,101),2,2 340 CIRCLE (350,70),40,14,,,1.36 : PAINT (351,71) ,14,14 350 Q=B 360 FOR K= 1 TO 9 370 LINE (11,6+Q)-(500,6+Q),14 380 LINE (11+R,6)-(11+R,174),14 390 Q=Q+2l i R*R+61 400 NEXT K 410 REM ------------------------------ --------------kleine veld---------- 420 LINE <0,186)-(512,212),6,B 430 LINE (7,189)-(505,208),6,B 440 PAINT (2,187),6,6 450 REM------------------------------- -------------- dobbel veld -------- 460 LINE (444,9)-(495,35),6,B 470 LINE <451,12)-(488,31),6,8 480 PAINT (449,10),6,6 : PAINT (460 ,18),1,6 490 REM....................-.......... ............- J/N - veld.........- 500 LINE (384,9)-(435,35),6,B SI0 LINE <391,12)-(428,31),6,B 520 PAINT (390,10),6,6 : PAINT (400 ,15),5,6 : PAINT (3,183),12,6 530 REM ------------------------------ -------------- loopvakken --------- 540 FOR K= 1 TO 11 550 LINE <-2+40*K,165-3»K>-(38+ 40#K,168-3*K),1,8 : PAINT <6+40*K,166-3*K >,15,1 560 NEXT K 570 FOR K= 1 TO 10 580 LINE (~2+40*K,99+3*K>-(38+4 0*K,102+3*K),1,B : PAINT (6+40*K,100+3*K >,15,1 590 LINE (38+40+K,102-3*K)-(78+ 40*K,105-3*K),1,B : PAINT (39+40+K,103-3* 600 LINE (-2+40*K,39+3*K)-(38+4 0*K,42+3*K),1,B : PAINT (6+40*K,41+3*K) ,15,1 610 NEXT K 620 FOR K* 1 TO 6 630 LINE <38+40*K,42-3*K)-(78+4 B*K,45-3*K),1,B : PAINT (39+40*K,43-3*K 1,15,1 640 650 26,142! 660 20,157! 670 46,118: 680 9,100) 690 19,82) 700 26,50) 710 06,71) 720 16,25) 730 NEXT K PAINT (246,148),7,1 • • PAINT (3 ,7,1 PAINT (446,133),7,1 i PAINT <1 ,7,1 PAINT (126,109) ,7,1 ■ ■ PAINT (2 ,7,1 PAINT (406,130),7,1 ■ ■ PAINT (7 7,1 PAINT (159,94),7,1 • • PAINT (3 7,1 PAINT (439,73) ,7,1 ■ • PAINT <1 7,1 PAINT (286,62),7,1 ■ ■ PAINT (4 7,1 PAINT (119,37) ,7,1 ■ • PAINT (3 4,1 PRESET(11,195)SPRINT#! , "Even w a.u.b. de sprites worden opgeb OUHd" 740 RETURN 750 REM ------------------------------ -------------- BESTAND OPENEN ------ 760 OPEN "BRP:VRAGEN" FOR OUTPUT A S* 1 770 RETURN 780 REM ------------------------------ -------------- SPRITELOOP - 790 800 810 820 830 840 B* = ,,H FOR K= 1 TO 9 A$(K)="" FOR L=1 TO 32 READ B$ A$(K > = A$(K)+CHR4 »CHR* il)+CHR*(13)+CHR*<13)+CHR $ (4)+ CHRI(4)+CHRI(4)+CHR$(4)+C HR*(12)+CHR*(4>+CHR*(4)+CHR*<4)+CHR$( 6)+CHR4(6) 910 COLOR SPRÏTEt(3)=CHR*(1)+CHR4<1)+ CHRI(l)+CHR$(1)+CHR* <13)+CHRI<13)+CHR $ (1)+CHRI(1)+CHR4(1)+CHR4(1)+CH R#<12)+CHR*(1)+CHR* <1)+CHRI(1)+CHR*(b )+CHR4(6) 920 PUT SPRITE 0, <483,13),15,1 930 0=453 : P=13 : PUT SPRITE 1,(0 jP) 1-3)8 940 PUT SPRITE 2,(475,150), ,7 950 PUT SPRITE 3,(491,150), ,9 960 PRESET (10,195) s PRINT #1,LG % 970 PRESET (400,19) : PRINT #1,"J N* 980 SP=0 990 RETURN 1000 REM.............................. -------------------- DRAAIEN DOBBELSTEE N - 1010 STRIS(0) OFF 1020 FOR K= 1 TO 30 1030 Z=INT(RND(-TIME)*6+1) 1040 IF Z=1 THEN 0=15 1050 IF Z=2 THEN 0=14 1060 IF Z=3 THEN Q=3 1070 IF Z=4 THEN 0=7 1080 IF Z=5 THEN Q=10 1090 IF Z=6 THEN 0=13 1100 PUT SPRITE 0,(483,13),O,Z 1110 PLAY "L8V13T25506A" 1120 FOR L= 1 TO 20 s NEXT L 1130 NEXT K 1140 PRESET (10,195) : PRINT#1,L6* 1150 PRESET (15,195) s PRINT#l,"Je hebt "; Zi " gegooid !!!" 1160 FOR K= 1 TO 200 : NEXT K 1170 IF SP=0 THEN LET SP=1 ELSE LET SP=0 1180 IF SP=0 THEN GOSUB 1570 ELSE G OSUB 1700 1190 RETURN 170 1200 REM------------------------------ ------------------BESTURIN6 J/N SPOOK 1210 D=STICK(0) 1220 IF D=3 THEN 0=461 : P=13 : PUT SPRITE 1,(0,P) ,3,8 1230 IF D=7 THEN 0=453 : P=13 : PUT SPRITE 1,(0,P),3,8 1240 ON STRIG GOSUB 1950 1250 STRIG(0) ON 1260 GOTO 1210 1270 REM ----------------------------- ---------------- AANVAN8SSCHERM -- 1280 CLS : WIDTH 40 1290 REM 1300 LOCATE 0,0 : PRINT1'********»* s****»»******#****************" 1310 LOCATE 0,1 : PRINT"* 1320 LOCATE 0,2 : PRINT"* 6ANZEB0RDEN o.i.d. mm 1330 LOCATE 0,3 : PRINT"* %**%$$ 1340 LOCATE 0,4 : PRINT"* patiebalk start je de dobbel 1350 LOCATE 0,5 : PRINT"* en vraag kun je beantwoorden 1360 LOCATE 0,6 : PRINT"* spookje op J of N te zetten 1370 LOCATE 0,7 : PRINT"* et de spatie balk te beslis-1380 LOCATE 0,8 : PRINT"* k goed na want het kan je 1390 LOCATE 0,9 : PRINT"* kosten. 1400 LOCATE 0,10: PRINT"* zier en met F1 kun je altijd 1410 LOCATE 0,11: PRINT"* 1420 LOCATE 0,12: PRINT"* Jacowski 1430 LOCATE 0,13: PRINT"* Met de s *" steen. E *■ door het *" en dan m *" sen. Den *" plaatsen *" Veel ple *" stoppen *■ 1440 LQCATE 0,14: PRINT"* Septeabe r 1989 MSX-2 *" 1450 LOCATE 0,15: PRINT"********** *#*********#**«#*ft»«*****t*t**" 1460 REM 1470 FOR K= 1 TO 3000 : NEXT K 1480 COLOR 15,4,5 1490 LOCATE 0,18 : LINEINPUT"Ni e i s de blauwe speler ? *;6R$ 1500 IF 6R$="" THEN GOTO 1490 1510 COLOR 15,1,5 1520 LOCATE 0,20 : LINEINPUT"en wi e de zwarte ? ";ZW$ 1530 IF ZW$="" THEN GOTO 1520 PRESET (10,195) ï PRINTil,L6* 1540 FOR K= 1 TO 150 : NEXT K 1550 RETURN 1560 REM ---------------------------- ----------- VERPLAATSEN ZW SPRITE - 1570 FOR K= 1 TO Z 1580 PLAY"L8V13T25506B PRITE 3,< X,Y), ,9 1590 IF Y<26 X+20 : Y=Y-3 1600 IF Y<56 AND Y>26 X-20 : Y=Y-3 1610 IF Y<86 AND Y>56 X+20 : Y=Y-3 1620 IF Y<116 AND Y>86 X-20 : Y=Y-3 1630 IF Y<146 AND Y>116 THEN X= X+20 : Y=Y-3 1640 FOR L= 1 TO 250 : NEXT L 1650 IF Y<7 THEN GOTO 2130 1660 NEXT K 1670 IF Y = 136 OR Y=127 OR Y=121 OR Y=l12 OR Y= 109 OR Y=97 OR Y=88 OR Y =79 OR Y=73 OR Y=6l OR Y=52 OR Y=49 OR Y=40 OR Y=28 OR Y=16 THEN 60SUB 1830 1680 RETURN 1690 REM ------------------------------ ----------- VERPLAATSEN GN SPRITE - 1700 FOR K= 1 TO Z 1710 PLAY-L8V13T25506C" t PUT S PRITE 2,(M,N), ,7 1720 IF N<26 THEN M= M+20 i N=N-3 1730 IF N<56 AND N>26 THEN M= M-20 : N=N-3 1740 IF N<86 AND N>56 THEN M= M+20 : N=N-3 1750 IF N<116 AND N>86 THEN M= M-20 s N=N-3 1760 IF N<146 AND N>116 THEN M= M+20 : N=N-3 1770 FOR L= 1 TO 250 : NEXT L 1780 IF N<7 THEN 60T0 2130 1790 NEXT K 1800 IF N=136 OR N=127 OR N-121 OR N=112 OR N= 109 OR N=97 OR N=BB OR N =79 OR N=73 OR N=61 OR N=52 OR N=49 OR N=40 OR N=28 OR N=16 THEN GOSUB 1830 1810 RETURN 1820 REM------------------------------- -----------------BONUS VRAGEN........- 1830 1840 PRESET (15,195) : PRINTil,"Je hebt recht op een bonusvraag" 1850 PLAY"L8V13T25505AAAAAAAA" : F OR K = 1 TO 150 : NEXT K 1860 OPEN "VRAGEN.BES" AS 2 LEN=61 : FIELD 2, 60 AS FVR*, 1 AS FAN* 1870 R=INT(RND(-TIME)*LOF(2)/61+1) 1880 GET 2,R 1890 PRESET (10,195) : PRINTI1, LG * 1900 PRESET (10,191) : PRINT il,"V RAAG: " 1910 PRESET (10,199) : PRINT #1,FV R* 1920 CLOSE 2 : GOSUB 1210 : REM - -J N SPOOK- 1930 RETURN 1940 REM ---------------------------- --------------- WINST/VERLIES BEPALIN 6- 1950 IF 0=461 THEN AX*="N" : BX*="n H 1960 IF 0=453 THEN AX*="JH : BX*="j N 1970 STRI6(0) OFF 1980 PRESET (10,191) i PRINTil,LG* : PRESET (10,199) : PRINTil,LG* 1990 IF FAN*=AX* OR FAN*=BX* THEN G OSUB 2030 : GOTO 170 2000 IF NOT (FAN*=AXf OR FAN*=BX*) THEN GOSUB 2090 : GOTO 170 2010 REM 2020 REM----------------------------- .......... WINST RONDE ------------- 2030 PRESET (11,195) : PRINTil,"GO ED ZO, 2 plaatsen vooruit": PLAY"L8V13T25505DBGFACE EDF6BBBB" : GOSUB 2060 s Z=2 : IF SP= 0 THEN GOSUB 1570 E LSE GOSUB 1700 2040 RETURN 2050 REM 2060 FOR K= 1 TO 250 : NEXT K s RET URN 2070 REM 2080 REM------------------------------ ---------- VERLIES RONDE ----------- 2090 PRESET (15,195) : PRINT #1,"H ELAAS, fout geen bonus dus " : PUT S THEN X= THEN X= THEN X= THEN X= 2100 PLAY"L8V13T200O3ADEFGBCAA" : GOSUB 2060 2110 RETURN 2120 REN 2130 PRESET <10,195) : PRINTtl,L6$ 2380 FOR K= 1 TO 1250 : NEXT K : R ETURN 2390 REM------------------------------ .....-.............- KEUZESCHERM -- 2400 CLS : COLOR 15,5,5 : SCREEN 0 2140 IF SP=1 THEN PRESET (55,195) : WIDTH 40 : PRINT#1,"HOERA, ";GR*;" je hebt gew 2410 LOCATE 9,7 : PRINT "1 = SPELE onnen" ELSE PRESET (15,195) : N* PRINTtl ,"HOERA, ";ZW$;" je hebt gewon 2420 LOCATE 9,9 : PRINT "2 = VRA6E nen" N INVOEREN" 2150 PLAY"L8V13T200O6ADEFCB6GDFEAA 2430 LOCATE 9,11: PRINT "3 = OVERZ CCDACDBEFFGACEDFBGCBADEDDGEEBAACCBGGE ICHT VRAGEN" FAADEEFFFF" s GOSUB 2380 2440 LOCATE 9,13: PRINT "4 = EXIT" 2160 PRESET (10,195) : PRINT«1,L6* 2450 LOCATE 9,17: INPUT "Tik Uw ke 2170 PRESET (55,195) : PRINTIl,"Je uze i in "}KZ zult je wel erg gelukkig voelen" : 2460 IF KZ <1 OR KZ>4 THEN GOTO 24 GOSUB 2380 2180 PRESET (10,195) : PRINT#1,LG$ 2190 PRESET (55,195) : PRINTfl,"Wi 1 je nog een spelletje spelen ?" : GOSUB 2380 2200 PRESET (10,195) : PRINT#1,LG* 00 2470 IF KZ =1 THEN RETURN 2480 IF KZ =2 THEN GOSUB 2980 : GO TO 2400 2490 IF KZ =3 THEN GOSUB 3140 : GO TO 2400 2500 IF KZ =4 THEN GOTO 2310 2510 REM............................... 2210 PRESET (55,195) s PRINT#l,"Je kunt met het J/N spookje beslissen' 2220 D=STICK(0) 2230 IF D=3 THEN 0=461 : P=13 : PUT SPRITE 1,(0,P),3,8 2240 IF D=7 THEN 0=453 s P=13 : PUT SPRITE 1,<0,P) ,3,8 2250 ON STRIG GOSUB 2280 2260 STRIG(0) ON 2270 GOTO 2220 2280 IF 0=461 THEN GOTO 2310 2290 IF 0=453 THEN GOTO 140 2300 REM--.............................- ...........-............ EINDSCHERM - 2310 COLOR 15,5,5 s SCREEN 0 2320 CLS : LOCATE 10,10 : PRINT"Go odbey then" 2330 LOCATE 10,17 : PRINT'1 Jac owski ' 2340 LOCATE 1,22 : PRINTM" 2350 POKE 64433!,0 : 'ctrl/stop a an 2360 GOTO 2360 2370 REM------------------------------- -Data Sprite D0B1 2520 DATA FF,FF,FF,FF,FF,FF,FC,FC 2530 DATA FC, FC,FF,FF,FF,FF,FF,FF 2540 DATA FF,FF,FF,FF,FF,FF,3F,3F 2550 DATA 3F,3F,FF,FF,FF,FF,FF,FF 2560 REM------------------------- -Data Sprite D0B2 2570 DATA FF,FF,FF,FF,FF,FF,FF,FF 2580 DATA FF , FF,C3,C3,C3,C3,FF,FF 2590 DATA FF,FF,C3,C3,C3,C3,FF,FF 2600 DATA FF,FF,FF,FF,FF,FF,FF,FF 2610 REM------------------------- -Data Sprite D0B3 2620 DATA FF,FF,FF,FF,FF,FF,FC,FC 2630 DATA FC,FC,FF,87,87,87,87,FF 2640 DATA FF,E1,E1,E1,E1,FF,3F,3F 2650 DATA 3F,3F,FF,FF,FF,FF,FF,FF 2660 REM-........................ -Data Sprite D0B4 2670 DATA FF,87,87,87,87,FF,FF,FF 2680 DATA FF,FF,FF,87,B7,87,87,FF 2690 DATA FF,El,E1,E1,El,FF,FF,FF 2700 DATA FF,FF,FF,El,El,El,El,FF 2710 REM------------------------- -Data Sprite D0B5 timertje 2720 DATA FF,87,87,87,87,FF,FC,FC 2730 DATA FC,FC,FF,87,87,87,87,FF 2740 DATA FF,E1,El,E1,E1,FF , 3F,3F 2750 DATA 3F,3F,FF,E1,E1,E1,E1,FF 2760 REM...........................- -Data Sprite D0B6 2770 DATA FF,87,87,87,87,FF,87,87 2780 DATA 87,87,FF,87,87,B7,87,FF 2790 DATA FF,El,El,El,El,FF,El,El 2800 DATA El,El,FF,El,El,El,El,FF 2810 REM------------------------------ -Data Sprite POP 2820 DATA 03,03,03,1F,03.03,01,07 2830 DATA 0B,13,0B.07,0E,0E,04,IC 2840 DATA C0,C0,C0,F8,C0,C0,80,E0 2850 DATA D0,C8,D0,E0,70,70,20,38 2860 REM------------------------------ -Data Sprite SPOOKJE 2870 DATA FF,FF,FF,81,81,81,81,81 2880 DATA 81,81,81,81,81,FF,FF,FF 2890 DATA 00,00,00,00,00,00,00,00 2900 DATA 00,00,00,00,00,00,00,00 2910 REM------------------------------ Data Sprite VROUW 2920 DATA 01,03,07,07,03,01,03,05 2930 DATA 09,05,03,07,0F,1F,04,0C 2940 DATA 80,C0,E0,E0,C0,80,C0,A0 2950 DATA 90,A0,C0,E0,F0,F8,20,30 2960 REM ************************** E INDE DATA ******************* 2970 REM.............VRAAGPROGRAMMA BIJ GANZENBORDEN ------------ 2980 WIDTH 80 : OPEN "VRAGEN.BES- AS 1 LEN=61 2990 FIELD 1, 60 AS FVRt, 1 AS FAN $ 3000 CLS : R=LOF(11/61+1 3010 LOCATE 0,5 : LINEINPUT"VRAAG ? ' jVR* 3020 IF VR4=** THEN GOTO 3010 3030 IF LEN(VRi)>60 THEN GOTO 3010 3110 IF J*="J" OR Jf="j" THEN 60T0 3000 ELSE CLOSE 1 3120 RETURN 3130 ---------------------------- --- overzicht van de vragen en antwoo rden 3140 WIDTH 80 i OPEN-VRAGEN.BES" AS 1 LEN=61 3150 FIELD 1, 60 AS FVR$, 1 AS FANf : CLS 3160 FOR R= 1 TO LOF(1>/61 3170 GET1,R 3180 PRINT FVR*f" #|FAN* : PRINT 3190 IF R/10=1NT" ï DEFUSR=9150 : X=U SR<0) : CLS : 'return 3200 NEXT R 3210 CLOSE1 : LOCATE 0,22 : PRINT " geef * s DEFUSR=9150 : X=USR( 0) 3220 RETURN 3230 REM **************************** ************************************* *** 3040 IF LEN(VR$)<60 THEN LET VR*=V R* + * " s GOTO 3040 3050 LOCATE 0,9 : LINEINPUT"ANTWOO RD (J OF N) :■ ;AN* 3060 IF AN$="" THEN GOTO 3050 3070 IF LEN1 THEN GOTO 3050 3080 LSET FVR4=VR$ : LSET FANF=AN$ 3090 PUT 1, R 3100 LOCATE 0,13 : LINEINPUT"Nog me er vragen invoeren