home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / comdore / 64games / wordscrm.prg (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1987-07-10  |  9.3 KB  |  296 lines

  1. 5 GOTO100
  2. 10 .
  3. 12 .     >>> WORDSCRAMBLE! <<<
  4. 14 .
  5. 16 . A ROSKI SOFTWARE PRESENTATION
  6. 18 .             1983
  7. 20 .
  8. 22 . WRITTEN BY:
  9. 24 .   ADAM B. ROSEN
  10. 26 .   8 EMPRESS PINES DRIVE
  11. 28 .   RONKONKOMA, NY  11779
  12. 30 .
  13. 32 . SYSTEM CONFIGURATION:
  14. 34 .   COMMODORE 64 COMPUTER
  15. 36 .   DATA STORAGE UNIT
  16. 38 .     (DISK OR TAPE)
  17. 40 .
  18. 42 . DEFINITION OF VARIABLES:
  19. 44 .
  20. 46 .   A$ = GAME TITLE
  21. 48 .   B$ = AUTHOR'S BY-LINE
  22. 50 .   C$ = VERSION (1 OR 2 PLAYER)
  23. 52 .   N$ = PLAYER'S NAME
  24. 54 .   R$ = PLAYER'S RESPONSE(S)
  25. 56 .   S$ = SCRAMBLED WORD (ARRAY)
  26. 58 .   W$ = MYSTERY WORD
  27. 60 .    C = MISCELLANEOUS USES
  28. 62 .    D = MISCELLANEOUS USES
  29. 64 .    G = GUESSES PER TURN
  30. 66 .    T = TOTAL GUESSES PER PLAYER
  31. 68 .    M = MATCHING LETTERS
  32. 70 .    N = WORDS PER PLAYER
  33. 72 .    P = SUBSCRIPT FOR PLAYER #
  34. 74 .    T = TOTAL GUESSES PER PLAYER
  35. 76 .    W = MISCELLANEOUS USES
  36. 78 .    X = MISCELLANEOUS USES
  37. 80 . GAME = TOTAL WORDS PER GAME
  38. 82 .  TI$ = REALTIME CLOCK
  39. 84 .
  40. 100 PRINT"ô":POKE53280,14:POKE53281,14
  41. 105 A$="*** WORDSCRAMBLE! ***":B$="BY  ADAM B. ROSEN"
  42. 110 GOSUB3000
  43. 115 PRINT"   THIS GAME HAS TWO VERSIONS.  THE"
  44. 120 PRINT"FIRST ALLOWS A PLAYER TO MATCH WITS"
  45. 125 PRINT"AGAINST THE COMPUTER, WHICH PICKS WORDS"
  46. 130 PRINT"TO SCRAMBLE FROM ITS LIBRARY OF"
  47. 135 PRINT"CHOICES.  (A RATHER SMALL LIBRARY IF"
  48. 140 PRINT"YOU ASK ME, BUT IT CAN BE EXPANDED.)"
  49. 145 PRINT"THE SECOND ALLOWS TWO PLAYERS TO"
  50. 150 PRINT"COMPETE AGAINST EACH OTHER UNSCRAMBLING"
  51. 155 PRINT"WORDS INPUTTED BY THE PLAYERS"
  52. 160 PRINT"THEMSELVES.  THE OVERALL OBJECT OF THE"
  53. 165 PRINT"GAME IS TO UNSCRAMBLE A WORD IN THE"
  54. 170 PRINT"LEAST NUMBER OF TURNS."
  55. 175 PRINT"HIT ";CHR$(34);"C";CHR$(34);" TO CONTINUE..."
  56. 180 GETR$:IFR$<>"C"THEN180
  57. 185 PRINT"ô   SINCE IT IS NOT EASY TO UNSCRAMBLE"
  58. 190 PRINT"WORDS QUICKLY, AN AID HAS BEEN BUILT"
  59. 195 PRINT"INTO THE PROGRAM.  A PLAYER MAY ENTER,"
  60. 200 PRINT"IN ANY COMBINATION, ALL OF THE LETTERS"
  61. 205 PRINT"OF THE SCRAMBLED WORD AND THE COMPUTER"
  62. 210 PRINT"WILL TELL HOW MANY LETTERS ARE IN THE"
  63. 215 PRINT"SAME POSITIONSÆ AS THOSE IN THE"
  64. 220 PRINT"MYSTERY WORD."
  65. 225 PRINT"   ONE MORE THING.  IF YOU'RE TRULY"
  66. 230 PRINT"STUMPED, TYPE HELPÆ IN RESPONSE TO A"
  67. 235 PRINT"PROMPT.  BE WARNED, HOWEVER; THERE IS A"
  68. 240 PRINT"PENALTY FOR THIS SERVICE."
  69. 245 PRINT"HIT ";CHR$(34);"C";CHR$(34);" TO CONTINUE...":W=RND(-TI)
  70. 250 GETR$:IFR$<>"C"THEN250
  71. 255 PRINT"ô    CHOOSE YOUR OPTION:":PRINT" 1)  ONE PLAYER VERSION."
  72. 260 PRINT" 2)  TWO PLAYER VERSION.":PRINT"    HIT APPROPRIATE KEY..."
  73. 265 GETR$:IFVAL(R$)<1ORVAL(R$)>2THEN265
  74. 270 DIMS$(15):IFVAL(R$)=2THEN700
  75. 275 REM ONE PLAYER VERSION
  76. 280 PRINT"ô":GOSUB3000
  77. 285 C$="*** ONE PLAYER VERSION ***"
  78. 290 PRINTTAB(19-(LEN(C$))/2);C$
  79. 295 INPUT"HELLO!  WHAT IS YOUR NAME";N$
  80. 300 PRINT"HOW MANY WORDS WOULD YOU LIKE TO TRY"
  81. 305 PRINT"TO UNSCRAMBLE, ";N$;:INPUTN
  82. 307 IFN=0THEN742
  83. 310 PRINT"   I WILL CHOOSE A WORD BETWEEN FOUR"
  84. 315 PRINT"AND SIXTEEN LETTERS IN LENGTH.  YOU"
  85. 320 PRINT"MUST TRY AND UNSCRAMBLE THE WORD IN THE"
  86. 325 PRINT"LEAST NUMBER OF TURNS."
  87. 330 PRINT"HIT ";CHR$(34);"S";CHR$(34);" TO START..."
  88. 335 GETR$:IFR$<>"S"THEN335
  89. 340 PRINT"ô":T=0:FORGAME=1TON
  90. 345 PRINT"LET ME THINK OF A WORD.  HMMMMMM..."
  91. 350 TI$="000000":RESTORE
  92. 355 IFTI$<"000002"THEN355
  93. 360 W=INT((RND(1)*99)+1)
  94. 365 FORX=1TOW:READW$:NEXTX
  95. 370 GOSUB3100
  96. 375 PRINT"OK, I HAVE ONE.  NOW, ";N$;", IT'S"
  97. 380 PRINT"YOUR TURN TO TRY TO UNSCRAMBLE IT."
  98. 385 PRINT"ENTER YOUR GUESSES AFTER THE PROMPTS."
  99. 390 PRINT"REMEMBER, IF YOU GIVE UP, TYPE HELPÆ."
  100. 395 PRINT"GOOD LUCK!"
  101. 400 PRINT"SCRAMBLED WORD IS:  ";:G=1
  102. 405 GOSUB3300
  103. 410 PRINT:PRINT"GUESS #";G;:INPUT"¥";R$
  104. 415 IFR$=W$THEN470
  105. 420 IFR$<>"HELP"THEN435
  106. 425 T=T+20+G:GOSUB3500
  107. 430 GOTO505
  108. 435 GOSUB3600
  109. 440 PRINT"I'M SORRY, ";N$;", THAT'S"
  110. 445 PRINT"INCORRECT.  HOWEVER, YOU DO HAVE";M
  111. 450 PRINT"LETTERS IN THE RIGHT PLACES."
  112. 455 G=G+1:M=0
  113. 460 IF(G/4)=INT(G/4)THENPRINT"SCRAMBLED WORD IS:  ";:GOSUB3300
  114. 465 GOTO410
  115. 470 PRINT"THAT'S RIGHT!  WORD WAS:  ";W$
  116. 480 PRINTN$", YOU TOOK";G;"GUESSES."
  117. 485 PRINT"CONGRATULATIONS!"
  118. 490 T=T+G
  119. 495 TI$="000000"
  120. 500 IFTI$<"000003"THEN500
  121. 505 NEXTGAME
  122. 510 TI$="000000"
  123. 515 IFTI$<"000002"THEN515
  124. 520 C$="GAME OVER!":PRINT"ô";TAB(20-(LEN(C$))/2);C$
  125. 525 PRINT"";N$;", YOU TOOK";T;"GUESSES"
  126. 530 PRINT"AT";N;"WORDS, AN AVERAGE OF";(T/N)
  127. 535 PRINT"GUESSES PER WORD."
  128. 540 IF(T/N)<=5THENPRINT"CONGRATULATIONS!"
  129. 545 IF(T/N)>5AND(T/N)<=10THENPRINT"GOOD SHOW!"
  130. 555 IF(T/N)>10THENPRINT"NOT BAD, BUT YOU NEED SOME PRACTICE!"
  131. 560 GOTO1050
  132. 700 REM TWO PLAYER VERSION
  133. 705 PRINT"ô":GOSUB3000
  134. 710 C$="*** TWO PLAYER VERSION ***"
  135. 715 PRINTTAB(19-(LEN(C$)/2));C$;""
  136. 720 FORP=1TO2
  137. 725 PRINT"PLAYER";P;"¥, WHAT IS YOUR NAME";:INPUTN$(P)
  138. 730 NEXTP
  139. 735 PRINT"HOW MANY WORDS SHALL WE MAKE EACH"
  140. 740 INPUT"PLAYER UNSCRAMBLE";N
  141. 742 IFN=0THENPRINT"HAVE IT YOUR WAY.":END
  142. 745 P=1:PRINT"";N$(P);" STARTS.  TYPE IN"
  143. 750 PRINT"A WORD BETWEEN FOUR AND SIXTEEN LETTERS"
  144. 755 PRINT"IN LENGTH.  PLEASE NOTE:"
  145. 760 PRINT"YOUR WORD WILL NOTÆ APPEAR ON THE"
  146. 765 PRINT"SCREEN AS YOU TYPE IT, SO CHECK FOR"
  147. 770 PRINT"MISTAKES WHILE ENTERING LETTERS.  YOU"
  148. 775 PRINT"WILL BE GIVEN THE OPTION OF RETYPING"
  149. 780 PRINT"THE ENTIRE WORD, IF YOU SO DESIRE."
  150. 785 FORGAME=1TO(2*N):IFGAME=1THEN800
  151. 790 PRINT"NOW, ";N$(P);", IT'S YOUR TURN TO"
  152. 795 PRINT"INPUT A WORD."
  153. 800 PRINT"YOUR WORD?Ü ";:INPUTW$
  154. 805 INPUT"ANY MISTAKES  N¥¥¥";R$
  155. 810 IFR$="Y"THEN800
  156. 815 IFLEN(W$)>=4ANDLEN(W$)<=16THEN830
  157. 820 PRINT"YOUR WORD MUST BE BETWEEN FOUR AND"
  158. 825 PRINT"SIXTEEN LETTERS IN LENGTH.":GOTO800
  159. 830 GOSUB3100
  160. 835 PRINT"ô":IFP=1THENP=2:GOTO845
  161. 840 P=1
  162. 845 PRINT"OK, ";N$(P);", IT'S YOUR TURN."
  163. 850 PRINT"TRY TO UNSCRAMBLE THE WORD BELOW IN THE"
  164. 855 PRINT"LEAST NUMBER OF GUESSES.  REMEMBER:"
  165. 860 PRINT"IF YOU GIVE UP, TYPE HELPÆ.  ENTER"
  166. 865 PRINT"YOUR GUESSES AFTER THE PROMPTS."
  167. 870 PRINT"GOOD LUCK!":PRINT"SCRAMBLED WORD IS:  ";:G(P)=1
  168. 875 GOSUB3300
  169. 880 PRINT:PRINT"GUESS #";G(P);:INPUT"¥";R$
  170. 890 IFR$=W$THEN955
  171. 900 IFR$<>"HELP"THEN915
  172. 905 T(P)=T(P)+20+G(P):GOSUB3500
  173. 910 GOTO980
  174. 915 GOSUB3600
  175. 920 PRINT"I'M SORRY, "N$(P);", THAT'S"
  176. 930 PRINT"INCORRECT.  HOWEVER, YOU DO HAVE";M
  177. 935 PRINT"LETTERS IN THE RIGHT PLACES."
  178. 940 G(P)=G(P)+1
  179. 945 IF(G(P)/4)=INT(G(P)/4)THENPRINT"SCRAMBLED WORD IS:  ";:GOSUB3300
  180. 950 GOTO880
  181. 955 PRINT"THAT'S RIGHT!  WORD WAS:  ";W$
  182. 960 PRINTN$(P);", YOU TOOK";G(P);"GUESSES."
  183. 965 PRINT"CONGRATULATIONS!"
  184. 970 T(P)=T(P)+G(P)
  185. 980 NEXTGAME
  186. 985 TI$="000000"
  187. 990 IFTI$<"000003"THEN990
  188. 995 PRINT"ô":C$="GAME OVER!"
  189. 1000 PRINTTAB(20-(LEN(C$)/2));C$
  190. 1005 FORP=1TO2
  191. 1010 PRINT"";N$(P);" TOOK";T(P);"GUESSES"
  192. 1015 PRINT"AT";N;"WORDS, AN AVERAGE OF";(T(P)/N)
  193. 1020 PRINT"GUESSES PER WORD."
  194. 1025 NEXTP
  195. 1030 IFT(1)<T(2)THENPRINT"";N$(1);" IS THE WINNER!":GOTO1050
  196. 1035 IFT(1)>T(2)THENPRINT"";N$(2);" IS THE WINNER!":GOTO1050
  197. 1040 PRINT"I DON'T BELIEVE IT, BUT IT'S A TIE!"
  198. 1045 PRINT"CONGRATULATIONS TO YOU BOTH!"
  199. 1050 INPUT"WOULD YOU LIKE TO PLAY AGAIN  Y¥¥¥";R$
  200. 1055 IFR$="Y"THEN1075
  201. 1060 A$="THANK YOU FOR PLAYING!":B$="æHAVE A NICE DAY!":PRINT"ô":GOSUB3000
  202. 1065 A$=" WORDSCRAMBLE!":B$="æBY ADAM B. ROSEN":PRINT"":GOSUB3000
  203. 1070 A$="A ROSKI SOFTWARE PRESENTATION":B$="æ1983":PRINT"":GOSUB3000:END
  204. 1075 CLR
  205. 1080 A$="*** WORDSCRAMBLE! ***":B$="BY  ADAM B. ROSEN"
  206. 1085 GOTO255
  207. 3000 REM TITLE CENTERING SUBROUTINE
  208. 3005 PRINT"";TAB(19-(LEN(A$)/2)-.5);A$;""
  209. 3010 PRINTTAB(19-(LEN(B$)/2)-.5);B$;""
  210. 3015 RETURN
  211. 3100 REM WORD SCRAMBLING SUBROUTINE
  212. 3105 IF(LEN(W$)/2)=INT(LEN(W$)/2)THEN3175
  213. 3110 W=INT((LEN(W$)/2)+.5)
  214. 3115 C=1:D=0
  215. 3120 S$(0)=MID$(W$,W,1)
  216. 3125 FORX=1TO(LEN(W$)-1)STEP2
  217. 3130 S$(X)=MID$(W$,C,1)
  218. 3135 S$(X+1)=MID$(W$,(LEN(W$)-D),1)
  219. 3140 C=C+1:D=D+1
  220. 3145 IFC=WOR(LEN(W$)-D)=WTHEN3155
  221. 3150 NEXTX
  222. 3155 IFLEN(W$)>=7THENI$=S$(X-2):S$(X-2)=S$(2):S$(2)=I$
  223. 3160 IFLEN(W$)>=11THENI$=S$(X-3):S$(X-3)=S$(3):S$(3)=I$
  224. 3165 IFLEN(W$)>=15THENI$=S$(X-4):S$(X-4)=S$(4):S$(4)=I$
  225. 3170 RETURN
  226. 3175 FORX=1TO(LEN(W$)-3)STEP2
  227. 3180 S$(X)=MID$(W$,((LEN(W$)-2)-X),1)
  228. 3185 S$(X-1)=MID$(W$,((LEN(W$)-1)-X),1)
  229. 3190 NEXTX
  230. 3195 S$(X-1)=MID$(W$,LEN(W$),1)
  231. 3200 S$(X)=MID$(W$,(LEN(W$)-1),1)
  232. 3205 I$=S$(X):S$(X)=S$(0):S$(0)=I$
  233. 3210 IFLEN(W$)>=6THENI$=S$(X-2):S$(X-2)=S$(2):S$(2)=I$
  234. 3215 IFLEN(W$)>=10THENI$=S$(X-3):S$(X-3)=S$(3):S$(3)=I$
  235. 3220 IFLEN(W$)>=14THENI$=S$(X-4):S$(X-4)=S$(4):S$(4)=I$
  236. 3225 RETURN
  237. 3300 REM PRINT SCRAMBLED WORD SUBROUTINE
  238. 3305 FORX=0TO(LEN(W$)-1):PRINTS$(X);:NEXTX
  239. 3310 RETURN
  240. 3500 REM HELP SUBROUTINE
  241. 3505 PRINT"ôI'M DISAPPOINTED.  YOU PROBABLY COULD"
  242. 3510 PRINT"HAVE GUESSED THE WORD EVENTUALLY..."
  243. 3515 PRINT"BUT, I DID PROMISE TO TELL YOU IF YOU"
  244. 3520 PRINT"TYPED HELP.  WORD WAS:"
  245. 3525 PRINTSPC(15);"";W$
  246. 3530 PRINT"THERE IS A PENALTY FOR THIS SERVICE."
  247. 3535 PRINT"YOU ARE NOW CONSIDERED TO HAVE TAKEN"
  248. 3540 PRINT"TWENTY GUESSES AT THE MYSTERY WORD"
  249. 3545 PRINT"IN ADDITIONÆ TO ANY YOU ACTUALLY TOOK."
  250. 3550 PRINT"TRY HARDER NEXT TIME!"
  251. 3555 PRINT"HIT ";CHR$(34);"C";CHR$(34);" TO CONTINUE GAME..."
  252. 3560 GETR$:IFR$<>"C"THEN3560
  253. 3565 PRINT"ô":RETURN
  254. 3600 REM MATCHING LETTERS SUBROUTINE
  255. 3605 M=0
  256. 3610 FORX=1TOLEN(W$)
  257. 3615 IFMID$(W$,X,1)=MID$(R$,X,1)THENM=M+1
  258. 3620 NEXTX
  259. 3625 RETURN
  260. 3700 .
  261. 3702 .    *** NOTICE TO PLAYERS ***
  262. 3704 .
  263. 3706 .   TO ADD WORDS TO THE "LIBRARY",
  264. 3708 .   JUST ADD ADDITIONAL DATA
  265. 3710 .   STATEMENTS AFTER LINE 4030.
  266. 3712 .   THEN, CHANGE LINE 360 AS
  267. 3714 .   FOLLOWS:      I NOW
  268. 3716 .   HAVE 100 WORDS IN THE DATA
  269. 3718 .   STATEMENTS.  LINE 360 READS:
  270. 3720 .   W=INT((RND(1)*99)+1).
  271. 3722 .   JUST CHANGE THE NUMBER AFTER
  272. 3724 .   THE ASTERISK TO ONE LESS THAN
  273. 3726 .   THE TOTAL NUMBER OF WORDS IN
  274. 3728 .   YOUR "EXPANDED" LIBRARY.
  275. 3730 .   THAT'S ALL THERE IS TO IT!
  276. 3732 .
  277. 3734 .   P.S.  ADDING TO OR CHANGING
  278. 3736 .         THE WORDS IN THE LIBRARY
  279. 3738 .         PERMITS YOU TO CUSTOMIZE
  280. 3740 .         THIS PROGRAM TOWARDS A
  281. 3742 .         SPECIFIC APPLICATION.
  282. 3744 .
  283. 4000 DATA STUDENT,AWARD,COMPANION,LOVER,JUXTAPOSITION,CITATION,RANDOM,SCRAMBLE
  284. 4005 DATA HELLO,PERFORMANCE,COMMUNITY,LOGICALLY,ISLANDERS,COMMODORE,AMERICAN
  285. 4010 DATA PUPPY,DICTIONARY,PERIOD,TELEVISION,SEVENTY,COMPUTER,PARALLEL,CANDID
  286. 4015 DATA UNIVERSITY,TREMENDOUS,PENCIL,HISTORIC,INCALCULABLE,SKIING,COUNTRY
  287. 4020 DATA COLOR,SAXOPHONE,FAMOUS,DEPRESSED,ELATED,INSANE,RECORDING,DISTRICT
  288. 4025 DATA AUTOMOBILE,RAFFLE,FREQUENCY,OUTFIT,WARMER,SPORTS,INJURY,NATIONAL
  289. 4030 DATA LOCAL,INFINITESIMAL,PETIT,WONDERFUL,CONTRAST,SQUARE,STEREO,PRESENT
  290. 4035 DATA CLOCK,TRAGEDY,PRESIDENT,TOWARDS,SPACE,LOVELY,TELEPHONE,FANTASTIC
  291. 4040 DATA SOCIAL,FRIENDSHIP,RALLY,INTRANSIGENCE,REALITY,RACQUETBALL,HOCKEY
  292. 4045 DATA BICYCLE,HEART,MUFFIN,BANANA,VISCOSITY,SHUTTLE,CHALLENGER,PHYSICS
  293. 4050 DATA MUSIC,INTERTWINED,INVOLVED,COMPLICATED,BULLETIN,GENETIC,ENGINEERING
  294. 4055 DATA CREATIVITY,CORPORATION,PEACE,PEANUT,CHOCOLATE,GRADUATION,STAMP,BALL
  295. 4060 DATA CHEESEBURGER,COINS,MERMAID,RECEIPT,WEATHER,DOWNPOUR,TERMINAL,WINNER
  296.