home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
genie-commodore-file-library
/
C64Educational
/
SKELETON
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
6KB
|
168 lines
1 REM ******************
2 REM * SKELETON *
3 REM * GAMES FOR KIDS *
5 REM ******************
6 REM FROM PD DISK (JOY/QUEST) T-32
100 CB=828:NW%=43
105 VC=53248:POKE VC+32,6:POKE VC+33,13:PRINTCHR$(147)
110 DIM NT%(19),WT$(NW%-1),WI$(19),CC$(NW%-1)
115 MC=54272:FOR X=MC TO 54296:POKE X,0:NEXT X
120 S1=((PEEK(53272)AND240)/16)*1024:S2=55296
130 FOR X=0 TO 19:READ Z:NT%(X)=Z:NEXT X:FOR X=1 TO NW%:READ X$,XX$
135 WT$(X-1)=X$:CC$(X-1)=XX$:NEXT X
140 PRINT"[129] S K E L E T O N "
142 GOSUB 8000
146 PRINT" THIS GAME TEACHES YOU THE NAMES OF THE BONES IN THE HUMAN SKELETON:"
148 PRINT"[129] [196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196][196]"
150 PRINT" THE COMPUTER WILL SELECT THE NAMES OF"
160 PRINT" THE BONES, AND PRESENT THEM TO YOU."
170 PRINT" YOU MUST DETERMINE THE BONE BY"
175 PRINT" GUESSING ONE LETTER AT A TIME."
180 PRINT" IF YOU PICK MORE THAN 11 INCORRECT"
190 PRINT" LETTERS, A SKELETON WILL HANG IN YOUR CLOSET!!"
200 PRINT" PRESS <SPACE> TO START)":GOSUB 2500
210 PRINT "[147] DO YOU WISH TO PLAY"
214 PRINT" B[146]EGINNERS OR A[146]DVANCED?"
215 GET Q$:IF Q$<>"B" AND Q$<>"A" THEN 215
216 IF Q$="A" THEN NW%=43
217 IF Q$="B" THEN NW%=25
219 PRINT" (TEN SECOND DELAY)";
220 FOR X=1 TO NW%:POKE CB+X,0:NEXT X
230 FOR X=1 TO NW%:GOSUB 800:POKE CB+Z,X:NEXT X:POKE VC+33,15:PRINTCHR$(147)
300 FOR LC=1 TO NW%
310 X=PEEK(CB+LC):WO$=WT$(X-1):SY$=CC$(X-1)
320 LW%=LEN(WO$)
330 SC=0:FOR X=0 TO LW%-1
340 WI$(X)=MID$(WO$,X+1,1):IF ASC(WI$(X))=32 THEN SC=SC+1
345 NEXT X
350 LC%=0:OF%=881:SO=640:BC%=0:GOSUB 1000:LW%=LW%-1
400 GET X$:IF X$="" THEN 400
410 X=ASC(X$):IF X<65 OR X>90 THEN 400
500 HI=0:FOR Y=0 TO LW%:IF WI$(Y)<>X$ THEN 530
510 HI=1:WI$(Y)="$":POKE S1+SO+CC+Y*2,X-64
520 LC%=LC%+1
530 NEXT Y:IF HI=1 THEN 560
540 GOSUB 3000:BC%=BC%+1
550 IF BC%>10 THEN GOSUB 2000:LO%=LO%+1:FOR X=1 TO 5000:NEXT X:GOTO 700
560 IF (LC%+SC)<=LW% THEN 400
570 GOSUB 4000:WI%=WI%+1
700 PRINT"[147][151] ANOTHER BONE ?[146]":PRINT" ENTER Y[146] OR N[146]"
720 GET X$:IF X$="" THEN 720
730 IF X$="Y" THEN NEXT LC:GOTO 220
740 IF X$<>"N" THEN 720
750 PRINT"[151] NUMBER CORRECT =";WI%
760 PRINT" NUMBER MISSED =";LO%
770 PRINT" FINAL SCORE =";INT((WI%*100)/(WI%+LO%));"[157]%"
780 END
800 Y=0
810 Z=INT(RND(1)*NW%)+1:IF PEEK(CB+Z)=0 THEN RETURN
820 Y=Y+1:IF Y<10 THEN 810
830 Z=1
840 IF PEEK(CB+Z)=0 THEN RETURN
850 Z=Z+1:GOTO 840
1000 PRINT"[147][151] S K E L E T O N"
1110 PRINT""
1500 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";
1502 QX=LEN(SY$)/2:QQ=INT(QX):IF QQ<>QX THEN QQ=QQ+1
1504 QQ=20-QQ
1505 PRINT SPC(QQ);SY$
1510 PRINT" ENTER A LETTER:";
1515 CC=INT((40-(LW%*2-1))/2)
1520 Z=0:FOR Y=0 TO ((LW%-1)*2) STEP 2:X=70:IF ASC(WI$(Z))=32 THEN X=32
1540 POKE S1+SO+CC+Y,X:IF X=70 THEN POKE S2+SO+CC+Y,6
1550 Z=Z+1:NEXTY
1560 Z=WI%+LO%:IF Z=0 THEN Z=.1
1570 PRINT"";SPC(13);"SCORE =";
1580 PRINT INT((WI%*100)/Z);"[157]%";
1590 RETURN
2000 FOR X=0 TO LW%:IF WI$(X)="$" THEN 2020
2010 Y=ASC(WI$(X)):IF Y=32 THEN 2020
2015 POKE S1+SO+CC+X*2,Y-64
2020 NEXT X
2030 POKE MC+0,0:POKE MC+1,0:POKE MC+5,15:POKE MC+6,15:POKE MC+24,8
2040 FOR Y=80 TO 20 STEP-10
2050 POKE MC+1,Y:POKE MC+4,17:FOR X=1 TO 60:NEXT X
2060 POKE MC+4,16:FOR X=1 TO 30:NEXT X,Y
2070 POKE MC+24,0
2080 RETURN
2500 REM *** SPRITE AND SONG ***
2505 X=5:Y=0:POKE MC+24,15:POKE VC+21,1
2510 Z=INT(NT%(Y)/256)
2520 POKE MC+0,NT%(Y)-(Z*256)
2530 POKE MC+1,Z:POKE MC+4,17
2540 Y=Y+1:IF Y>19 THEN Y=0
2550 POKE VC+0,X:X=X+10
2560 IF X>60 AND(PEEK(VC+16)AND1)=1 THEN X=5:POKE VC+16,0:POKE VC+0,X
2570 IF X>255 THEN X=5:POKE VC+16,1:POKE VC+0,X
2580 IF PEEK(2040)=13 THEN POKE 2040,14:GOTO 2600
2590 POKE 2040,13
2600 FOR Z=1 TO 120:NEXT Z:POKE MC+4,16
2610 FOR Z=1 TO 20:NEXT Z
2620 GET X$:IF X$="" THEN 2510
2630 POKE MC+24,0:POKE VC+21,0
2640 RETURN
3000 PRINT"[144]";
3005 ON(BC%+1)GOTO 3010,3020,3030,3040,3050,3060,3070,3080,3090,3100,3110,3120
3010 PRINT"";SPC(18);"[169] [223][146]":GOTO 3500
3020 PRINT SPC(18);"[209] [209][146]":GOTO 3500
3030 PRINT SPC(18);" ! [146]":GOTO 3500
3040 PRINT SPC(18);"[223][192][146][169]":GOTO 3500
3050 PRINT SPC(14);"[214] -[146] [214]":GOTO 3500
3060 PRINT SPC(15);"[205] [221] [206]":GOTO 3500
3070 PRINT SPC(16);"[205][175][198][177][198][175][206]":GOTO 3500
3080 PRINT SPC(18);"[198][219][198]":GOTO 3500
3090 PRINT SPC(18);"[198][219][198]":GOTO 3500
3100 PRINT SPC(15);"[206][205] [219] [206][205]":GOTO 3500
3110 PRINT SPC(13);"[205][206] [205][209] [209][146][206] [205][206]"
3500 POKEMC+0,0:POKEMC+1,5:POKEMC+4,33:POKEMC+5,15:POKEMC+6,15:POKEMC+24,8
3505 POKE VC+33,0
3510 FOR Y=1 TO 100:NEXT Y:POKE MC+4,32
3520 FOR Y=1 TO 30:NEXT Y:POKE MC+24,0:POKE VC+33,15
3530 POKE S1+OF%,X-64:POKE S2+OF%,0:OF%=OF%+2
3540 RETURN
4000 REM *** FLASH ON A WIN ***
4010 POKE MC+0,0:POKE MC+1,0:POKE MC+5,15:POKE MC+6,15:POKE MC+24,12
4020 FOR X=8 TO 15
4030 POKE VC+33,X
4040 POKE MC+1,X*4:POKE MC+4,17
4050 FOR Y=1 TO 50:NEXT Y
4060 POKE MC+4,16:FOR Y=1 TO 30:NEXT Y,X
4070 POKE MC+24,0
4080 RETURN
5000 DATA 1072,1607,1804,1804,1607,1432,1204,1432,1204,1432,1072,1072
5010 DATA 1432,1804,2145,1804,2145,1607,1204,1072
6000 REM *** LOAD THE SPRITES ***
6020 .
7000 DATA "CLAVICLE","COLLARBONE","HUMERUS","UPPER ARM"
7005 DATA "ULNA","FOREARM","RADIUS","FOREARM","TIBIA","SHIN"
7010 DATA "FIBULA","CALF","FEMUR","THIGH"
7015 DATA "METATARSAL BONES","FOOT (SOLE)","TARSAL BONES","FOOT (ANKLE)"
7020 DATA "PATELLA","KNEECAP","CARPAL BONES","HAND (WRIST)","METACARPAL BONES"
7025 DATA "HAND (KNUCKLE)","PHALANGES","FINGERS","PHALANGES","TOES","COCCYX"
7030 DATA "TAILBONE","ILIUM","PELVIS (HIP)","PUBIS","PELVIS (GROIN)","ISCHIUM"
7035 DATA "PELVIS (SEAT)","SACRUM","BASE OF SPINE","VERTEBRAE","SPINE","RIBS"
7040 DATA "CHEST","STERNUM","BREASTBONE","SCAPULA","SHOULDER BLADE","MANDIBLE"
7045 DATA "JAW","CRANIUM","BRAIN CASE","PARIETAL BONE","TOP OF YOUR HEAD"
7050 DATA "SPHENOID","THE BASE OF THE SKULL","TEMPORAL BONE"
7055 DATA "ALONGSIDE YOUR HEAD","OCCIPITAL BONE","THE BACK OF THE HEAD"
7060 DATA "MASTOID PROCESS","TUCKED BEHIND THE EAR","PUBIC SYMPHYSIS"
7065 DATA "PELVIC CONNECTION (GROIN)","LUMBAR VERTEBRAE","THE LOWER SPINE"
7070 DATA "THORACIC VERTEBRAE","THE MIDDLE OF THE BACK","CERVICAL VERTEBRAE"
7075 DATA "A PAIN IN THE NECK","MAXILLA","STIFF UPPER LIP","ZYGOMATIC BONE"
7077 DATA "CHEEK","NASAL BONE","NOSE","FRONTAL BONE","FOREHEAD"
7080 DATA "SACROILIAC JOINT","THE PELVIC CONNECTION (HIP)","AXIS"
7085 DATA "TURN YOUR HEAD","ATLAS","HOLD UP YOUR HEAD"
7090 DATA "AXIS","SECOND NECK BONE","ATLAS","TOP NECK BONE"
8000 REM *** LOAD THE SPRITES ***
8010 FOR X=832 TO 832+127:READ Z:POKE X,Z:NEXT X
8020 POKE VC+0,0:POKE VC+1,93:POKE VC+16,0:POKE VC+21,0:POKE VC+23,1
8030 POKE VC+27,0:POKE VC+28,0:POKE VC+29,1:POKE VC+39,0:POKE 2040,13
8040 POKE MC+0,0:POKE MC+1,0:POKE MC+5,79:POKE MC+6,129
8050 RETURN
8900 DATA 0,56,0,0,84,0,0,56,0,0,16,0,48,124,0,8,146,0,5,125,0,2,16,128
8910 DATA 0,124,64,0,16,32,0,124,192,0,186,0,0,68,0,0,130,0,1,1,0,2,0,128
8920 DATA 1,1,0,0,130,0,1,131,0,0,0,0,0,0,0,0
8930 DATA 0,56,0,0,84,0,0,56,0,0,16,0,0,124,0,1,147,0,2,124,128,4,16,64,2,124
8940 DATA 128,4,16,64,2,124,128,0,186,0,0,68,0,0,68,0,0,68,0,0,0,0,0,68
8950 DATA 0,0,68,0,0,68,0,0,130,0,0,0,0,0