home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Educational / BIRD-SPELL (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  9KB  |  291 lines

  1. 50 REM BIRD SPELL BY DOUG HAPMAN
  2. 90 REM:     FROM B&P PD DISK # 66                PGMS FOR PD # 50 & JGPD # 77
  3. 100 GOSUB 2660
  4. 110 X=RND(-TI)
  5. 120 DIM W(20),W$(500)
  6. 130 PRINT"[147]":GOSUB 1190 :REM DRAW HOUSE
  7. 140 PRINT"PLEASE WAIT...
  8. 150 [141] 1380 :[143] POKE IN SPRITES
  9. 160 [141] 1920 :[143] GET WORDS
  10. 170 [141] 690  :[143] SET UP SPRITES
  11. 180 [153]"              "
  12. 190 W$[178]W$([187](1)[172]N[170]1)
  13. 200 [141] 650
  14. 210 L$[178]" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  15. 220 [153]"";
  16. 230 [129] I[178]2 [164] 14
  17. 240 [153] [202](L$,I,1)"";
  18. 250 [130]
  19. 260 [153]:[153]"";
  20. 270 [129] I[178]15 [164] 27
  21. 280 [153] [202](L$,I,1)"";
  22. 290 [130]
  23. 300 [153]""[166]18[171][195](G$));
  24. 310 [129] I[178]1 [164][195](G$)
  25. 320 [153] [202](G$,I,1)"";
  26. 330 [130]
  27. 340 [139] COUNT[179][177][195](W$) [167] 420
  28. 350 [151] 198,0
  29. 360 [129] DL[178]1 [164] 100:[130] DL:CL[178]CL[170]1:[139] CL[178]3 [167] CL[178]1
  30. 370 [153] [202]("OPEN",CL,1);
  31. 380 [153]"       YOU WIN !!!! PRESS <SPACE>
  32. 385 FORT=15TO0STEP-1:POKE54296,T:POKE54296,0:NEXT
  33. 390 GET A$:IF A$="" THEN 360
  34. 400 GOTO 2610
  35. 410 GOSUB 2000
  36. 420 GET A$:IF A$<"A" OR A$>"Z" AND A$<>"_" THEN 410
  37. 430 IF A$="_" THEN 760
  38. 440 P=ASC(A$)-64
  39. 450 IF MID$(L$,P+1,1)<>" " THEN 540
  40. 460 PRINT"        LETTER ALREADY CHOSEN          "
  41. 470 FOR I=1 TO 6:POKE54296,6:POKE54296,0:NEXT
  42. 480 PRINT"                                      "
  43. 490 PRINT""SPC(18-LEN(G$));
  44. 500 FOR I=1 TO LEN(G$)
  45. 510 PRINT MID$(G$,I,1)"";
  46. 520 NEXT
  47. 530 GOTO 420
  48. 540 L$=LEFT$(L$,P)+" "+MID$(L$,P+2)
  49. 550 RF=0 :REM FLAG FOR CORRECT GUESS
  50. 560 FOR I=1 TO LEN(W$)
  51. 570 IF MID$(W$,I,1) <> A$ THEN 610
  52. 580 G$=LEFT$(G$,I)+MID$(W$,I,1)+MID$(G$,I+2)
  53. 590 RF=RF+1
  54. 600 COUNT=COUNT+1
  55. 610 NEXT I
  56. 620 IF RF=0 THEN GOSUB 1030
  57. 630 IF RF THEN GOSUB 2070
  58. 640 GOTO 220
  59. 650 G$=" "
  60. 660 FOR I=1 TO LEN(W$):G$=G$+"-":W(I)=0:NEXT
  61. 670 RETURN
  62. 680 I=I+1:GOTO 1980
  63. 690 REM SET UP SPRITES
  64. 700 V=53248
  65. 710 FOR I=0 TO 15:POKE V+I,0:NEXT
  66. 720 POKE V+21,255
  67. 730 FOR I=V+39 TO V+46:POKE I,0:NEXT
  68. 740 X=0:Y=60:S=251
  69. 750 RETURN
  70. 760 PRINT"ENTER YOUR GUESS: ";
  71. 770 POKE V+21,PEEK(V+21) AND 254
  72. 780 FOR I=1 TO LEN(W$):PRINT"[164]";:NEXT
  73. 790 PRINT"";GU$;
  74. 800 IFLEN(GU$)<LEN(W$)THENPRINT"[223]";
  75. 810 IF LEN(GU$)<LEN(W$)-1 THEN FOR I=2TOLEN(W$)-LEN(GU$):PRINT"[164]";
  76. 820 GET K$:IF K$="" THEN 820
  77. 830 IF K$=CHR$(20) AND LEN(GU$)>0 THEN GU$=LEFT$(GU$,LEN(GU$)-1):GOTO 790
  78. 840 IF K$=CHR$(13) AND LEN(GU$)=LEN(W$) THEN 870
  79. 850 IF K$>="A" AND K$<="Z" AND LEN(GU$)<LEN(W$) THEN GU$=GU$+K$
  80. 860 GOTO 790
  81. 870 IF GU$<>W$ THEN 930
  82. 880 PRINT"                                      "
  83. 890 PRINT""SPC(18-LEN(" "+W$));
  84. 900 FOR I=1 TO LEN(" "+W$)
  85. 910 PRINT MID$(" "+W$,I,1)"";
  86. 920 NEXT:GOTO 350
  87. 930 PRINT"[144]             SORRY...YOU LOSE     "
  88. 935 FORJ=1TO3:FORT=1TO7:POKE54296,10:POKE54296,0:NEXT:FORD=1TO150:NEXT:NEXT
  89. 940 PRINT"[144]THE WORD WAS..."
  90. 950 PRINT""SPC(18-LEN(" "+W$));
  91. 960 FOR I=1 TO LEN(" "+W$)
  92. 970 PRINT MID$(" "+W$,I,1)"";
  93. 980 FOR D=1 TO 200:NEXT:NEXT
  94. 990 PRINT""TAB(13)"      >SPACE<   "
  95. 992 FORD=1TO250:NEXT:PRINT""TAB(13)"PRESS <SPACE>":FORD=1TO250:NEXT
  96. 1010 GET A$:IF A$="" THEN 990
  97. 1020 GOTO 2610
  98. 1030 DB=DB+1:S=S-3
  99. 1040 DX=32*DB+16:DY=225
  100. 1050 IF DB=8 THEN DB=0
  101. 1060 POKEV,XAND255:POKEV+16,PEEK(V+16)AND254OR-(X>255):POKEV+1,Y:POKE2040,S
  102. 1070 IF X=0 THEN POKE V+21,PEEK(V+21) OR 1
  103. 1080 FLAG=0
  104. 1090 IFABS(X-DX)>1THENX=X+3:FLAG=1:IFX>344THENX=0:POKEV+21,PEEK(V+21)AND254
  105. 1100 IF Y<DY THEN Y=Y+2:FLAG=1
  106. 1110 S=S+1:IF S=251 THEN S=248
  107. 1120 IF FLAG THEN 1060
  108. 1140 POKE V+2*DB,X AND 255:POKE V+16,PEEK(V+16)OR(2^DB)*(-(X>255))
  109. 1150 POKE V+2*DB+1,Y:POKE 2040+DB,254
  110. 1160 IF DB<>0 THEN POKE V+21,PEEK(V+21) AND 254
  111. 1170 X=0:Y=60:IF DB=0 THEN 930
  112. 1190 POKE 53281,3:POKE 53280,4
  113. 1200 PRINT"[159]
  114. 1210 [153]"
  115. 1220 PRINT
  116. 1230 PRINT"          [146]          [172][145][191][146]      
  117. 1240 [153]"      GET    WAITINT      SYSSTEP(null)STOPWAITFNFN    INT ABSWAIT
  118. 1250 PRINT"      [181]    [182][146]     [158][169]  [223][146][144][165]       [146]
  119. 1260 [153]"      FN    +WAIT    SYSSTEP    (null)WAIT   INT   ABSWAIT
  120. 1270 PRINT"            [146]        [168] [146]        [146]
  121. 1280 [153]"      PRINT#    WAIT       NOT    WAIT     PRINT# WAIT
  122. 1290 PRINT"[153]        [152]  [153]        [162][187] [168][153]     [152] [153]            ";
  123. 1300 PRINT"        [152]  [153]        [146] [161]  [153]     [152] [153]            ";
  124. 1310 PRINT"[153]";
  125. 1320 FOR I=0 TO 8:PRINT"                                        ";:NEXT
  126. 1330 FOR I=1 TO 8:L=1024+23*40+I*4:POKE L,114:POKE L+54272,0:NEXT
  127. 1340 FOR I=0 TO 39:POKE 1024+24*40+I,160:POKE 55296+24*40+I,13:NEXT
  128. 1350 PRINT"
  129. 1360 [153]"STOP
  130. 1370 RETURN
  131. 1380 I=15872:IF PEEK(I+1)=96 THEN FOR I=1 TO 64*6+2:READ A:NEXT:RETURN
  132. 1390 READ A:IF A=256 THEN 1410
  133. 1400 POKE I,A:I=I+1:GOTO 1390
  134. 1410 FOR I=0 TO 63:POKE 254*64+I,PEEK(249*64+I):NEXT:RETURN
  135. 1420 DATA 0,96,0,0,113,224,0
  136. 1430 DATA 121,176,0,125,252,117,193
  137. 1440 DATA 192,127,255,192,113,255,128
  138. 1450 DATA 0,252,0,0,24,0,0
  139. 1460 DATA 24,0,0,102,0,0,102
  140. 1470 DATA 0,0,0,0,0,0,0
  141. 1480 DATA 0,0,0,0,0,0,0
  142. 1490 DATA 0,0,0,0,0,0,0
  143. 1500 DATA 0,0,0,0,0,0,0
  144. 1510 DATA 0,0,0,0,0,1,224
  145. 1520 DATA 0,1,176,0,127,252,117
  146. 1530 DATA 193,192,127,255,192,113,255
  147. 1540 DATA 128,0,252,0,0,24,0
  148. 1550 DATA 0,24,0,0,102,0,0
  149. 1560 DATA 102,0,0,0,0,0,0
  150. 1570 DATA 0,0,0,0,0,0,0
  151. 1580 DATA 0,0,0,0,0,0,0
  152. 1590 DATA 0,0,0,0,0,0,0
  153. 1600 DATA 0,0,0,0,0,0,1
  154. 1610 DATA 224,0,1,176,112,127,252
  155. 1620 DATA 127,221,192,115,185,192,1
  156. 1630 DATA 179,128,0,172,0,0,24
  157. 1640 DATA 0,0,24,0,0,102,0
  158. 1650 DATA 0,102,0,0,0,0,0
  159. 1660 DATA 0,0,0,0,0,0,0
  160. 1670 DATA 0,0,0,0,0,0,0
  161. 1680 DATA 0,0,0,0,0,0,0
  162. 1690 DATA 0,0,0,0,96,0,0
  163. 1700 DATA 113,224,0,121,176,0,125
  164. 1710 DATA 252,117,193,192,127,255,192
  165. 1720 DATA 113,255,128,0,252,0,0
  166. 1730 DATA 0,0,0,0,0,0,0
  167. 1740 DATA 0,0,0,0,0,0,0
  168. 1750 DATA 0,0,0,0,0,0,0
  169. 1760 DATA 0,0,0,0,0,0,0
  170. 1770 DATA 0,0,0,0,0,0,0
  171. 1780 DATA 0,0,0,0,0,0,0
  172. 1790 DATA 0,1,224,0,1,176,0
  173. 1800 DATA 127,252,117,193,192,127,255
  174. 1810 DATA 192,113,255,128,0,252,0
  175. 1820 DATA 0,0,0,0,0,0,0
  176. 1830 DATA 0,0,0,0,0,0,0
  177. 1840 DATA 0,0,0,0,0,0,0
  178. 1850 DATA 0,0,0,0,0,0,0
  179. 1860 DATA 0,0,0,0,0,0,0
  180. 1870 DATA 0,0,0,0,0,0,0
  181. 1880 DATA 0,0,1,224,0,1,176
  182. 1890 DATA 112,127,252,127,221,192,115
  183. 1900 DATA 185,192,1,179,128,0,172
  184. 1910 DATA 0,0,112,0,0,0,0
  185. 1920 DATA 0,0,0,0,0,0,0
  186. 1930 DATA 0,0,0,0,0,0,0
  187. 1940 DATA 0,0,0,0,0,0,0
  188. 1950 DATA 0,0,0,0,0,0,0
  189. 1960 DATA 0,0,0,0,0,0,0,256
  190. 1970 I=1
  191. 1980 READ W$(I):IF W$(I)="*" THEN N=I+1:RETURN
  192. 1990 I=I+1:GOTO 1980
  193. 2000 POKEV,XAND255:POKEV+16,PEEK(V+16)AND254OR-(X>255):POKEV+1,Y:POKE2040,S
  194. 2010 IF X=0 THEN POKE V+21,PEEK(V+21) OR 1
  195. 2020 X=X+3:IF X>344 THEN X=0:POKE V+21,PEEK(V+21) AND 254
  196. 2030 Y=Y-1+RND(1)*2:IF Y>100 THEN Y=99
  197. 2040 IF Y<50 THEN Y=50
  198. 2050 S=S+1:IF S=254 THEN S=251
  199. 2060 RETURN
  200. 2070 DX=INT(P+13*(P>13))*16+24+40
  201. 2080 DY=173+INT(P/14)*24:IF S>250 THEN S=S-3
  202. 2090 POKEV,XAND255:POKEV+16,PEEK(V+16)AND254OR-(X>255):POKEV+1,Y:POKE2040,S
  203. 2100 IF X=0 THEN POKE V+21,PEEK(V+21) OR 1
  204. 2110 FLAG=0
  205. 2120 IFABS(X-DX)>2THENX=X+3:FLAG=1:IFX>344THENX=0:POKEV+21,PEEK(V+21)AND254
  206. 2130 IF Y<DY THEN Y=Y+2:FLAG=1
  207. 2140 S=S+1:IF S=251 THEN S=248
  208. 2150 IF FLAG THEN 2090
  209. 2160 X=DX:Y=DY
  210. 2170 POKEV,XAND255:POKEV+16,PEEK(V+16)AND254OR-(X>255):POKEV+1,Y:POKE2040,249
  211. 2180 POKE 56334,PEEK(56334) AND 254
  212. 2190 POKE 1,PEEK(1) AND 251
  213. 2200 FOR I=0 TO 7
  214. 2210 B=PEEK(53248+8*P+I)
  215. 2220 FOR J=248 TO 250
  216. 2230 POKE J*64+40+I*3,B
  217. 2240 NEXT J,I
  218. 2250 POKE 1,PEEK(1) OR 4
  219. 2260 POKE 56334,PEEK(56334) OR 1
  220. 2270 PRINT"";
  221. 2280 FOR I=2 TO 14
  222. 2290 PRINT MID$(L$,I,1)"";
  223. 2300 NEXT
  224. 2310 PRINT:PRINT"";
  225. 2320 FOR I=15 TO 27
  226. 2330 PRINT MID$(L$,I,1)"";
  227. 2340 NEXT
  228. 2350 DX=160-8*LEN(G$):DY=69
  229. 2360 POKEV,XAND255:POKEV+16,PEEK(V+16)AND254OR-(X>255):POKEV+1,Y:POKE2040,S
  230. 2370 IF X=0 THEN POKE V+21,PEEK(V+21) OR 1
  231. 2380 FLAG=0
  232. 2390 IFABS(X-DX)>2THENX=X+3:FLAG=1:IFX>344THENX=0:POKEV+21,PEEK(V+21)AND254
  233. 2400 IF Y>DY THEN Y=Y-2:FLAG=1
  234. 2410 S=S+1:IF S=251 THEN S=248
  235. 2420 IF FLAG THEN 2360
  236. 2430 X=DX:Y=DY
  237. 2440 POKEV,XAND255:POKEV+16,PEEK(V+16)AND254OR-(X>255):POKEV+1,Y:POKE2040,249
  238. 2450 PRINT""SPC(18-LEN(G$));
  239. 2460 FOR I=1 TO LEN(G$)
  240. 2470 IF MID$(G$,I,1)=A$ THEN PRINT A$;:RF=RF-1:IF RF=0 THEN GOSUB 2560
  241. 2480 IF MID$(G$,I,1) <> A$ THEN PRINT"";
  242. 2490 PRINT"";
  243. 2500 IF RF=0 THEN I=100:GOTO 2540
  244. 2510 FOR J=0 TO 15:X=X+1:S=S+1:IF S=251 THEN S=248
  245. 2520 POKE V,X AND 255:POKE V+16,PEEK(V+16) AND 254 OR -(X>255):POKE 2040,S
  246. 2530 NEXT J
  247. 2540 NEXT I
  248. 2550 RETURN
  249. 2560 FOR K=0 TO 7
  250. 2570 FOR J=248 TO250
  251. 2580 POKE J*64+40+K*3,0
  252. 2590 NEXT J,K
  253. 2600 RETURN
  254. 2610 PRINT"[147][144]DO YOU WISH TO PLAY AGAIN (Y/N) ?"
  255. 2615 POKE V+21,PEEK(V+21) AND 254
  256. 2620 PRINT"YOU MISSED THIS MANY:"
  257. 2630 GET A$:IF A$ <> "N" AND A$ <>"Y" THEN 2630
  258. 2640 IF A$="Y" THEN POKE V+21,0:RUN 110
  259. 2650 END
  260. 2660 POKE 53281,0:POKE 53280,0
  261. 2670 PRINT"[147]             INSTRUCTIONS
  262. 2680 [153]"SYS    CHOOSE LETTERS TO GUESS THE WORD.
  263. 2690 PRINT"IF YOU GUESS A WRONG LETTER, THE BIRD
  264. 2700 [153]"WILL LAND ON ITS PERCH.
  265. 2710 PRINT"    WHEN ALL THE PERCHES ARE FULL, OR
  266. 2720 [153]"YOU GUESSED THE WORD, THE GAME IS OVER
  267. 2730 PRINT"    YOU CAN HIT THE "CHR$(34)"_"CHR$(34)" KEY ANY TIME TO
  268. 2740 [153]"GUESS THE WORD. IF YOU GET IT WRONG,    YOU LOSE.
  269. 2750 PRINT"PRESS <SPACE> TO BEGIN"
  270. 2760 GET A$:IF A$="" THEN 2760
  271. 2770 RETURN
  272. 2780 DATAHAPPY,BRIDGE,FAMILY,CHILDREN,MONKEYS,RECENTLY,STARWARS,TENTEN,SNOWY
  273. 2790 DATA WINDOW,TRAIN,DWARF,BIRDS,CHEVROLET,DODGE,CRYSLER,JAPANESE,RECYCLE
  274. 2800 DATA SUPERMAN,CONCERT,PEOPLE,MAGIC,LETTERMAN,LENO,ARSENIO,DONAHUE,SUPER
  275. 2810 DATA SPACE,SCIENCE,PLANETS,GALAXY,STARS,WINDOW,JOYSTICK,MODEM,COMMODORE
  276. 2820 DATA ROOMS,TEACHER,CHALK,BLACKBOARD,AQUAINTED,CONTEST,INSTANT,WINNER,BOARD
  277. 2830 DATA SCREEN,COMPUTER,KEYBOARD,PROGRAM,CONTROL,SCREEN,SOFTDISK,LOADSTAR
  278. 2840 DATA SPELLING,WORDS,COLORS,LETTERS,PROCESSOR,GRAPHIC,SEX,VIOLENCE,PRINTING
  279. 2850 DATA MARKET,STREETS,SQUARE,TRIANGLE,WINDOW,TRESHHOLD,ENTRANCE,BATMAN,ROBIN
  280. 2860 DATA MOVIE,SPACESHIP,LAZER,AIRPLANE,BOAT,SUPERMAN,ALIEN,WALLPAPER,COUCH
  281. 2870 DATA STICK,ROCK,PAPER,WIN,PLACE,SHOW,CAMEL,JUICE,JOCKEY,SHORTS,SALUTE
  282. 2880 DATA CHANNEL,EXECUTIVE,MONEY,SHIRT,SHIRTTAIL,SNAIL,GRANDPRIX,SPEEDWAY
  283. 2890 DATA QUIET,LOUD,BILLBOARD,YACHT,MOTORCYCLE,ROMPER,CATTLE,ATTENUATOR,MASTER
  284. 2900 DATA SWITCH,SHOOTER,KILLER,MAGNUM,COMMANDER,WIZARD,WITCHES,WARLOCKS
  285. 3000 DATA HUSSEIN,CHRISTMAS,FLOPPY,DISTRIBUTE,WARRANTY,LIMITED,REGISTERED
  286. 3005 DATA CONCEPT,CONCLUSION,STRAIGHT,CUSTOMER,ARCHIVAL,CYBIL,HERCULES,MAVERICK
  287. 3010 DATA SUBSYSTEM,DEFECTIVE,CAMERA,HOMESPUN,EXCEPTIONS,PROGRAMMER,PARAMETERS
  288. 3015 DATA TECHNICAL,SUPPORT,REPLACEMENT,ENDEAVOR,DESIGNED,PACKAGE,CHAMPAGNE
  289. 3020 DATA MILLION,BEAUTIFUL,WONDERFUL,HANDSOME,POOF,ANOTHER,MYSTERIOUS,PACKAGE
  290. 3025 DATA FORGET,RECYCLED,CONSUMER,CANADA,LOUISIANA,AMERICAN,GREETINGS,*
  291.