10 : 20 : 30 : 40 REM"… PROGRAM BY RUSHDEN ROY …A 'L PLATE' PROGRAMMER.(JUNE 95) …IDEA TAKEN FROM THE BOOK "ME ERRORAND MY MICRO" PROGRAM MATCHEM. 50 : 60 : 70 MODE7 80 ON ERROR GOTO 1900 90 *FX210,0 100 *FX229,1 110 VDU23,1,0;0;0;0 120 PROCROY 130 PROCdh(6,8,1,"-MATCH THAT NOISE- ") 140 PROCdh(6,10,0,"The object of this game is to open") 150 PROCdh(6,11,0,"two boxes at a time and try to get") 160 PROCdh(6,12,0,"matching pairs.") 170 PROCdh(6,13,0,"When a box opens you will hear") 180 PROCdh(6,14,0,"a sound and see a letter. Or hear ") 190 PROCdh(6,15,0,"a sound only. Or see a letter only.") 200 PROCdh(6,17,0,"(This game is based on the program ") 210 PROCdh(6,18,0,"MATCHEM a card game in the book") 220 PROCdh(6,19,0,"'Me and My Micro')") 230 PROCdh(2,22,0,"Please press space >>>)") 240 REPEAT UNTIL GET=32 250 CLS 260 VDU23,1,0;0;0;0; 270 PROCdh(2,4,1,"Would you like the game ") 280 PROCdh(2,7,0,"fairly easy? (Sound only)........1") 290 PROCdh(2,10,0,"easy? (Letters only)........2") 300 PROCdh(2,13,0,"very easy? (Letters and sound)...3") 310 PROCdh(3,16,0,"Please choose 1, 2 or 3") 320 yes$="N" 330 REPEAT 340 choice$=GET$ 350 UNTIL choice$>="1" AND choice$<="3" 360 IF choice$="1" THEN yes$="N":*FX210,0 370 IF choice$="2" THEN yes$="Y":*FX210,1 380 IF choice$="3" THEN yes$="Y" 390 CLS 400 ENVELOPE2,30,6,0,0,255,0,0,126,0,0,-126,126,126 410 ENVELOPE3,3,6,0,1,255,0,0,126,0,0,-126,126,126 420 ENVELOPE5,4,-1,1,0,20,20,0,126,0,0,-126,126,126 430 ENVELOPE6,5,1,20,8,200,0,0,126,0,0,-126,126,126 440 ENVELOPE7,9,19,13,-8,4,4,4,126,0,0,-126,126,126 450 ENVELOPE8,1,18,0,0,2,0,0,126,0,0,-126,126,126 460 ENVELOPE9,3,0,0,0,0,0,0,-126,-2,0,-1,126,80 470 PROCinit 480 REPEAT 490 PROCchoosebox 500 firstguess=i%:n1=n:m1=m 510 PROCshowbox 520 REPEAT 530 PROCchoosebox 540 UNTILi%<>firstguess 550 PROCshowbox 560 guess=guess+1 570 FOR t=1TOdelay:NEXT t 580 PROCcheckformatch 590 IF match=1 THEN PROCifboxmatch 600 IF match=0 THEN PROCifnomatch 610 PRINTTAB(1,2)CHR$(134)"Tries= ";guess;" Score= ";score 620 UNTILscore=10 630 IF score=10 PROCendofgame 640 END 650 : 660 DEF PROCinit 670 guess=0:score=0 680 a$="AABBCCDDEEFFGGHHIIJJ" 690 j$="":delay=2500 700 FOR k=1TO20:l=LENa$:n=RND(l) 710 j$=j$+MID$(a$,n,1) 720 a$=LEFT$(a$,n-1)+RIGHT$(a$,l-n) 730 NEXT k 740 FOR n=0TO4 750 FORm=0TO3 760 SP$=" " 770 PRINTTAB(8*n+1,5*m+4);CHR$(147);CHR$(172);CHR$(172);CHR$(164);CHR$(172);CHR$(172);CHR$(172) 780 PRINTTAB(8*n+1,5*m+5);CHR$(131);CHR$(157);CHR$(129)n+5*m+1;SP$;CHR$(156) 790 PRINTTAB(8*n+1,5*m+6);CHR$(131);CHR$(157);CHR$(131)n+5*m+1;SP$;CHR$(156) 800 NEXTm:NEXTn 810 PRINTTAB(6,5);CHR$(147);CHR$(255);CHR$(156)TAB(14,5);CHR$(147);CHR$(255);CHR$(156)TAB(22,5);CHR$(147);CHR$(255);CHR$(156)TAB(30,5);CHR$(147);CHR$(255);CHR$(156)TAB(38,5)CHR$(147);CHR$(255) 820 PRINTTAB(7,6);CHR$(255);CHR$(156)TAB(15,6);CHR$(255);CHR$(156)TAB(23,6);CHR$(255);CHR$(156)TAB(31,6);CHR$(255);CHR$(156)TAB(39,6)CHR$(255) 830 PRINTTAB(6,10);CHR$(147);CHR$(255);CHR$(156)TAB(14,10);CHR$(147);CHR$(255);CHR$(156)TAB(22,10);CHR$(147);CHR$(255);CHR$(156)TAB(30,10);CHR$(147);CHR$(255);CHR$(156) 840 PRINTTAB(7,11);CHR$(255);CHR$(156)TAB(15,11);CHR$(255);CHR$(156)TAB(23,11);CHR$(255);CHR$(156)TAB(31,11);CHR$(255);CHR$(156) 850 ENDPROC 860 : 870 DEF PROCchoosebox 880 PROCdh(5,0,1,"See if you can match a pair of boxes.") 890 PRINTTAB(22,2)CHR$(134);"(To quit type 21)" 900 REPEAT 910 VDU23,1,1;0;0;0; 920 PRINTTAB(0,23);CHR$(134) 930 PRINTTAB(17,23);STRING$(20," ") 940 INPUTTAB(1,23)"Open box number ?"i% 950 IF i% <1 OR i%>21 THEN PRINTTAB(18,23)SPC(15):VDU7:GOTO940 960 IFi%=21 THEN PROCend 970 c$=MID$(j$,i%,1) 980 IF c$="_"THEN PRINTTAB(18,23)" ":VDU7 990 UNTIL i%>=1AND i%<=20ANDc$<>"_" 1000 PRINTTAB(18,23)" " 1010 m=INT((i%-1)/5) 1020 n=i%-5*m-1 1030 ENDPROC 1040 : 1050 DEF PROCshowbox 1060 IF"Y"=yes$THEN y$="A"ELSEy$=" " 1070 IFc$="A"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):SOUND0,9,100,1 1080 IF"Y"=yes$THEN y$="B"ELSEy$=" " 1090 IFc$="B"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):SOUND1,8,170,10:SOUND1,0,0,5:SOUND1,8,170,8 1100 IF"Y"=yes$THEN y$="C"ELSEy$=" " 1110 IFc$="C"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228) :SOUND1,7,150,20 1120 IF"Y"=yes$THEN y$="D"ELSEy$=" " 1130 IFc$="D"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):FORS%=255TO211STEP-4:SOUND1,-15,S%,1:FOR D=1TO40:NEXT:NEXT 1140 IF"Y"=yes$THEN y$="E"ELSEy$=" " 1150 IFc$="E"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):FOR P=100TO8STEP-10:SOUND1,-15,P,2:NEXT 1160 IF"Y"=yes$THEN y$="F"ELSEy$=" " 1170 IFc$="F"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):SOUND1,2,4,30 1180 IF"Y"=yes$THEN y$="G"ELSEy$=" " 1190 IFc$="G"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):SOUND0,3,7,20 1200 IF"Y"=yes$THEN y$="H"ELSEy$=" " 1210 IFc$="H"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228) :FORc=1TO3:SOUND0,-15,0,7:SOUND0,-12,1,7:NEXTc 1220 IF"Y"=yes$THEN y$="I"ELSEy$=" " 1230 IFc$="I"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):SOUND1,5,200,20 1240 IF"Y"=yes$THEN y$="J"ELSEy$=" " 1250 IFc$="J"THENx$=CHR$(147)+CHR$(184)+CHR$(161)+y$+" "+CHR$(162)+CHR$(228):SOUND0,6,1,20 1260 PRINTTAB(8*n+1,5*m+4)x$ 1270 ENDPROC 1280 : 1290 DEF PROCcheckformatch 1300 match=0 1310 IF MID$(j$,firstguess,1)=MID$(j$,i%,1)THEN match=1 1320 ENDPROC 1330 : 1340 DEF PROCifboxmatch 1350 j$=LEFT$(j$,firstguess-1)+"_"+RIGHT$(j$,LEN j$-firstguess) 1360 j$=LEFT$(j$,i%-1)+"_"+RIGHT$(j$,LEN j$-i%) 1370 bl$=" " 1380 PRINTTAB(8*n+1,5*m+4);bl$ 1390 PRINTTAB(8*n1+1,5*m1+4);bl$ 1400 PRINTTAB(8*n+1,5*m+5);CHR$(146);" )p& "CHR$(129) 1410 PRINTTAB(8*n1+1,5*m1+5);CHR$(146);" )p& "CHR$(129) 1420 PRINTTAB(8*n+1,5*m+6);CHR$(146);" & ) "CHR$(129) 1430 PRINTTAB(8*n1+1,5*m1+6);CHR$(146);" & ) "CHR$(129) 1440 score=score+1 1450 ENDPROC 1460 : 1470 DEF PROCifnomatch 1480 PRINTTAB(8*n1+1,5*m1+4);CHR$(147);CHR$(172);CHR$(172);CHR$(164);CHR$(172);CHR$(172);CHR$(172) 1490 PRINTTAB(8*n+1,5*m+4);CHR$(147);CHR$(172);CHR$(172);CHR$(164);CHR$(172);CHR$(172);CHR$(172) 1500 ENDPROC 1510 : 1520 DEFPROCROY 1530 PRINT 1540 PRINT"“7`+47``57k`5 ````` PROGRAM BY ````````" 1550 PRINT"’5b(55( 5m h%7`+4757`k 7k`57`k 7e757`k" 1560 PRINT"‘uzp5upp5jpz 5( 5555js05 n15bs550!5u0`5" 1570 PRINT"“ppppppppppp upp5u5upp5uzp5upp5u7t5upp5" 1580 PRINT 1590 PRINT"‚ FOR 8-BIT SOFTWARE" 1600 PRINT""' 1610 ENDPROC 1620 : 1630 DEF PROCdh(C%,L%,D%,A$) 1640 IF D% A$=CHR$(141)+A$ 1650 X%=(40-LENA$)DIV 2-1 1660 FORY%=L%TOL%+D%:PRINTTAB(X%,Y%);CHR$(128+C%);A$:NEXT 1670 ENDPROC 1680 : 1690 DEF PROCend 1700 CLS 1710 PRINTTAB(10,10)"BYE FROM ROY" 1720 VDU23,1,1;0;0;0 1730 *FX229,0 1740 *FX210,0 1750 *FX21,0 1760 END 1770 ENDPROC 1780 DEF PROCendofgame 1790 CLS 1800 w$="WOW!" 1810 PRINTTAB(3,3);CHR$(133)CHR$(136);w$;CHR$(134);w$;CHR$(130);w$;CHR$(131);w$;CHR$(132);w$;CHR$(129);w$ 1820 PROCdh(3,5,1,"WELL DONE") 1830 PROCdh(3,8,0," YOU HAD") 1840 PRINTTAB(18,10);CHR$(131);guess 1850 PROCdh(3,12,0," TRIES") 1860 PRINTTAB(0,15)CHR$(134)"Would you like another game ? Y/N"; 1870 ans$=GET$:IF ans$<>"Y"ANDans$<>"N" THEN GOTO 1870 1880 IF ans$="Y" GOTO 250ELSE PROCend 1890 ENDPROC 1900 ON ERROR OFF:IF ERR=20 THEN RUN ELSE MODE 7:REPORT:PRINT" at line ";ERL:*FX229,0