home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 9
/
009.d81
/
recollect
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
8KB
|
277 lines
10 s=65520:f=54272
20 poke783,peek(783)and254
30 poke53280,14:poke53281,1:printchr$(14):printchr$(8):dimqu$(60),re$(60)
39 :
40 gosub10000:rem *** title page ***
49 :
50 gosub11000:rem *** instructions ***
59 :
60 gosub4000:rem *** read text file ***
69 :
70 gosub1100:rem *** scramble query and repsonse ***
79 :
80 gosub3000:rem *** format screen ***
89 :
90 gosub1200:rem *** get query and response ***
99 :
100 q$=qu$:v=5:h=1:lf=38:gosub1000
109 :
110 v=13:h=4:pp=0:pr=0:gosub2100:rem *** keyboard input ***
119 :
120 ifflag=1thenpoke781,13:poke782,4:syss:printre$:gosub970
130 ifflag=1thensc=0:poke781,21:poke782,9:syss:print"[206]o points for this one![146]"
135 flag=0
139 :
140 hs=hs+sc:poke781,19:poke782,10-len(str$(hs)):syss:prinths:sc=0
149 :
150 poke781,23:poke782,5:syss:print"[196]o you want to continue (y/n)? "
160 poke198,0:wait198,1:getkey$
170 ifkey$="y"orkey$="[217]"then80
180 ifkey$="n"orkey$="[206]"then200
190 goto150
200 poke781,23:poke782,0:syss
205 print"[196]o you want to select another category":print"(y/n)?";
210 poke198,0:wait198,1:getkey$
220 ifkey$="y"orkey$="[217]"then60
230 ifkey$="n"orkey$="[206]"then3200
240 goto200
900 stop
957 :
958 rem *** wrong letter sound ***
959 :
960 pokef+24,15:pokef+6,240:pokef+4,17
961 forx1=25to1step-4:pokef+1,26-x1:nextx1:pokef+4,32:pokef+4,16:return
967 :
968 rem *** wrong answer sound ***
969 :
970 pokef+24,24:pokef+6,240:pokef+4,17
971 fora=1to4:forx1=16to62step4:pokef+1,77-x1:nextx1:nexta:pokef+4,32
972 pokef+4,16:return
977 :
978 rem *** right answer sound ***
979 :
980 pokef+24,15:pokef+6,240:pokef+4,17
981 fora=1to4:forx1=1to25:pokef+1,80-x1:nextx1:nexta:pokef+4,32:pokef+4,16:return
987 :
988 rem *** letter sound ***
989 :
990 pokef+1,14:pokef+5,3:pokef+6,240:pokef+24,15:pokef+4,17
991 ford=3to40step15:pokef+1,d:pokef+4,17:nextd:pokef+4,32:return
997 :
998 rem *** format statements ***
999 :
1000 iflen(q$)>lfthen1020
1010 poke781,v:poke782,h:syss:printq$:return
1020 yf=0:xf=lf
1030 ifmid$(q$,xf,1)=chr$(32)thenpoke781,v:poke782,h:syss
1040 ifmid$(q$,xf,1)=chr$(32)thenprintleft$(q$,xf-1):v=v+1:goto1060
1050 xf=xf-1:goto1030
1060 yf=xf+lf:ifyf>len(q$)thenyf=len(q$)-xf
1070 ifyf<=lfthenpoke781,v:poke782,h:syss:printright$(q$,yf):return
1080 ifmid$(q$,yf,1)=chr$(32)thenpoke781,v:poke782,h:syss
1090 ifmid$(q$,yf,1)=chr$(32)thenprintmid$(q$,xf+1,yf-xf):xf=yf:v=v+1:goto1060
1095 yf=yf-1:goto1080
1097 :
1098 rem *** scramble query/response ***
1099 :
1100 forx=1tonu:a%=(rnd(1)*nu)+1
1105 t1$=qu$(x):qu$(x)=qu$(a%):qu$(a%)=t1$
1110 t2$=re$(x):re$(x)=re$(a%):re$(a%)=t2$:next:z9=0
1120 return
1197 :
1198 rem *** get query/response ***
1199 :
1200 z9=z9+1:ifz9>nuthen1220
1210 qu$=qu$(z9):re$=re$(z9):return
1220 printchr$(147):print"[207]ne moment, please, while [201] get some"
1230 print"more questions......."
1240 gosub1100:gosub3000:goto1200
2097 :
2098 rem *** keyboard input ***
2099 :
2100 forx=1tolen(re$):ti$="000000"
2110 getkey$:gosub2200:ifsc<=0thenflag=1:x=len(re$):goto2150
2111 ifkey$=""then2110
2115 ifkey$=chr$(133)thenflag=1:x=len(re$):goto2150
2116 ifkey$>chr$(192)thent$=chr$(asc(key$)-128):goto2118
2117 t$=key$
2118 m$=mid$(re$,x,1):ifm$>chr$(128)thenm$=chr$(asc(m$)-128)
2120 ift$=m$thengosub2220:goto2150
2140 pp=pp+1:gosub960:goto2110
2150 next
2155 ifflag=0thenpoke781,12:poke782,24:syss:print"[129] [210][201][199][200][212]! [146]":gosub980
2160 return
2197 :
2198 rem *** timer/score routine ***
2199 :
2200 ifti$<>"000000"thenpr=pr+1:ti$="000000"
2205 sc=100-pp-pr
2210 poke781,10:poke782,38-len(str$(sc)):syss:printsc:return
2217 :
2218 rem *** print key ***
2219 :
2220 poke781,v:poke782,h:syss:printkey$:gosub990:h=h+1:return
2997 :
2998 rem *** format screen ***
2999 :
3000 printchr$(147):poke781,1:poke782,0:syss
3010 forx=1to120:print"*";:next
3020 print"":forx=1to80:print"*";:next
3030 print"":forx=1to80:print"*";:next
3040 poke781,2:poke782,15:syss:print" [210][197][195][207][204][204][197][195][212][160][146]"
3050 poke781,10:poke782,20:syss:print"[213][206][201][212][160][211][195][207][210][197] >>>[146]"
3060 poke781,11:poke782,0:syss:print"[212][200][197][160][210][197][211][208][207][206][211][197][160][201][211]:[146]"
3070 poke781,13:poke782,0:syss:print">>>[146]"
3080 poke781,18:poke782,0:syss:print"[199][193][205][197][160][211][195][207][210][197][146]"
3090 poke781,18:poke782,18:syss:print"[208]ress <[198]1>[146] for answer"
3100 :
3110 poke781,19:poke782,10-len(str$(hs)):syss:prinths:sc=0
3120 return
3197 :
3198 rem *** end game ***
3199 :
3200 printchr$(147)
3210 print"[217]our final score was "hs:flag=0
3219 :
3220 open15,8,15:open4,8,4,"0:r.high score,seq,read"
3230 forx=0to9:input#4,h$(x,0):input#4,h$(x,1):next:close4:close15
3239 :
3240 ifhs<val(h$(9,1))thenflag=1
3249 :
3250 ifflag=1thenprint"[217]our score was not high enough to be"
3260 ifflag=1thenprint"included in my high score list."
3270 ifflag=1thenprint"[194]etter luck next time!":flag=0:goto3510
3279 :
3280 print:print"[217]our score was very good! [197]nter your"
3290 print"initials and [201] will include it in my"
3300 print"high score list!"
3309 :
3310 print:print
3320 input"[197]nter your initials";it$
3330 print:print"[207]ne moment, please....."
3340 ifit$=""thenit$="[193][193][193]"
3350 iflen(it$)>3thenit$=left$(it$,3)
3360 h$(9,0)=it$:h$(9,1)=right$(str$(hs),len(str$(hs))-1)
3369 :
3370 fori=0to8:forj=i+1to9:ifval(h$(i,1))>=val(h$(j,1))then3400
3380 k$=h$(i,1):h$(i,1)=h$(j,1):h$(j,1)=k$
3390 k$=h$(i,0):h$(i,0)=h$(j,0):h$(j,0)=k$
3400 nextj:nexti
3409 :
3410 open15,8,15,"i0":print#15,"s0:r.high score"
3420 open4,8,4,"0:r.high score,seq,write"
3430 forx=0to9:print#4,h$(x,0):print#4,h$(x,1):next
3440 close4:close15
3449 :
3450 poke781,23:poke782,1:syss:print"[208]ress ([211][208][193][195][197] [194][193][210]> to continue.";
3460 poke198,0:wait198,1:getkey$
3469 :
3470 printchr$(147):print"[200]igh scores for [210][197][195][207][204][204][197][195][212] are:"
3480 print:forx=0to9:printh$(x,0);tab(15-len(h$(x,1)));h$(x,1):print:next
3489 :
3490 poke781,23:poke782,1:syss:print"[208]ress <[211][208][193][195][197] [194][193][210]> to continue.";
3500 poke198,0:wait198,1:getkey$
3509 :
3510 printchr$(147):print:print:print"[196]oes someone else want to try [210][197][195][207][204][204][197][195][212] (y/n)?[160]";
3520 poke198,0:wait198,1:getkey$
3530 ifkey$="y"orkey$="[217]"thensc=0:hs=0:goto60
3540 ifkey$="n"orkey$="[206]"then3560
3550 goto3520
3559 :
3560 print"[147][212]hanks for playing [210][197][195][207][204][204][197][195][212]!"
3570 goto63000 :rem *** end ***
3997 :
3998 rem *** read text file ***
3999 :
4000 printchr$(147)
4010 print"[215]hich file would you like me to get?"
4020 poke781,5:poke782,5:syss:print"0. [197]xit program"
4030 poke781,7:poke782,5:syss:print"1. [210][197][195][207][204][204][197][195][212] entertainment"
4040 poke781,9:poke782,5:syss:print"2. [210][197][195][207][204][204][197][195][212] geography"
4050 rem poke781,11:poke782,5:syss:print"3. [210][197][195][207][204][204][197][195][212] animals"
4060 poke781,14:poke782,1:syss:print"[215]hich one (0-2) -[160]";
4070 poke198,0:wait198,1:getkey$:printkey$
4075 ifkey$="0"then3200
4080 ifkey$="1"thenfi$="r.entertainment":goto4120
4090 ifkey$="2"thenfi$="r.geography":goto4120
4100 rem ifkey$="3"thenfi$="r.animals":goto4120
4110 goto4060
4120 print:print:print"[207]ne moment, please, while [201] get the information...."
4122 open15,8,15
4125 open4,8,4,"0:"+fi$+",seq,read"
4130 input#4,nu
4140 forx=1tonu:input#4,qu$(x):input#4,re$(x):next
4150 close4:close15
4160 return
9997 :
9998 rem *** title page ***
9999 :
10000 printchr$(147)
10010 printtab(12)"*#*#*#*#*#*#*#*"
10020 printtab(12)"# #"
10030 printtab(12)"* *"
10040 printtab(12)"# [210][197][195][207][204][204][197][195][212] #"
10050 printtab(12)"* *"
10060 printtab(12)"# #"
10070 printtab(12)"*#*#*#*#*#*#*#*"
10080 print:print:printtab(9)"[193] [199]ame of [210]emembering"
10090 print"";tab(19)"by"
10100 print"