home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk053 / scramble.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  4.4 KB  |  152 lines

  1. 1   REM  SCRAMBLED WORD    7/1983
  2. 2   REM        
  3. 3   REM  UNSCRAMBLE LETTERS TO
  4. 4   REM  SPELL A GIVEN WORD
  5. 5   REM      
  6. 6   REM  IBM BASICA 64k
  7. 7   REM        
  8. 9   REM        
  9. 10   REM  ADAPTED TO IBM FROM THE APPLE           FROM THE PET
  10. 11   REM  ***********************
  11. 13   REM  *                     *
  12. 14   REM  *  SAN MATEO COUNTY   *
  13. 15   REM  * OFFICE OF EDUCATION *
  14. 16   REM  *                     *
  15. 17   REM  *   COMPUTER-USING    *
  16. 18   REM  *      EDUCATORS      *
  17. 19   REM  *                     *
  18. 20   REM  *      SOFTSWAP       *
  19. 21   REM  *                     *
  20. 22   REM  *   333 MAIN STREET   *
  21. 23   REM  *     REDWOOD CITY    *
  22. 24   REM  *       CA 94063      *
  23. 25   REM  *   (415)363-5472     *
  24. 26   REM  *                     *
  25. 28   REM  *                     *
  26. 29   REM  ***********************
  27. 30   REM  *PROGRAM MAY BE COPIED*
  28. 31   REM  *FOR EDUCATIONAL USE &*
  29. 33   REM  *RIGHT 1983 CUE,INC   *
  30. 34   REM  ***********************
  31. 100  SCREEN 0,1: WIDTH 40: KEY OFF: CLS
  32. 110   CLS : PRINT : PRINT : PRINT 
  33. 120   PRINT  TAB( 8);"SCRAMBLED WORD GAME": PRINT : PRINT : PRINT 
  34. 130   LOCATE 5
  35. 140   DIM B$(20),A(20)
  36. 150   RESTORE 
  37. 160  A$ = ""
  38. 170  B$ = ""
  39. 180  C$ = ""
  40. 190   FOR Z = 1 TO 20
  41. 200  A(Z) = 0
  42. 210   NEXT Z
  43. 220  A =  INT ( RND (1) * 30 + 1)
  44. 230   FOR B = 1 TO A
  45. 240   READ A$
  46. 250   IF A$ = "END" THEN  RESTORE :B = B - 1
  47. 260   NEXT B
  48. 270  C =  LEN (A$)
  49. 280   FOR E = 1 TO C
  50. 290  D =  INT ( RND (1) * C + 1)
  51. 300   IF A(D) = 1 THEN 290
  52. 310  B$(E) =  MID$ (A$,D,1)
  53. 320  B$ = B$ + B$(E)
  54. 330  A(D) = 1
  55. 340   NEXT E
  56. 350   IF A$ = B$ THEN 280
  57. 360   LOCATE 10: PRINT " UNSCRAMBLE:    ";B$;:CV=5: GOSUB 1120
  58. 370   LOCATE 14
  59. 380   PRINT "WHAT'S YOUR GUESS";
  60. 390   GOSUB 1010
  61. 400   PRINT : PRINT
  62. 410  C$ = EE$
  63. 420   IF A$ = C$ THEN 480
  64. 430   GOTO 470
  65. 440   GOSUB 1220:WW = WW + 1: IF WW < 3 THEN  GOSUB 1200: GOTO 370
  66. 450   PRINT "  THE ANSWER IS:  ";:  PRINT A$: PRINT
  67. 460  WW = 0: GOTO 500
  68. 470  W = W + 1: GOTO 440
  69. 480   PRINT "CORRECT!!": PRINT
  70. 490  R = R + 1
  71. 500   PRINT : PRINT "SCORE:  CORRECT ";R;"   WRONG ";W
  72. 510   LOCATE 23: PRINT "ANOTHER WORD? (Y OR N) ==>";
  73. 520   QQ$=INKEY$: IF QQ$ = "" THEN 520
  74. 530   IF QQ$ = "Y" OR QQ$="y" THEN  CLS : LOCATE 3: GOTO 160
  75. 540   IF QQ$ <  > "N" AND QQ$<>"n" THEN 520
  76. 550    : CLS : PRINT : PRINT "YOU ANSWERED: "
  77. 560  T = W + R
  78. 570  X =  INT (R / T * 100 + 0.5)
  79. 580  Y =  INT (W / T * 100 + 0.5)
  80. 590   PRINT : PRINT
  81. 600   PRINT X;"% CORRECT       ";Y;"% WRONG"
  82. 610   PRINT : PRINT 
  83. 620   PRINT "IS THERE ANYONE ELSE WAITING TO PLAY?"
  84. 630   PRINT "(Y FOR YES OR N FOR NO)=>";
  85. 640   QQ$=INKEY$: IF QQ$ = "" THEN 640
  86. 650   IF QQ$ = "Y"OR QQ$="y" THEN  RUN
  87. 660   IF QQ$ <  > "N" AND QQ$<>"n"  THEN 640
  88. 670   PRINT : PRINT : LOCATE , 8: PRINT "* * * T H E  E N D * * *"
  89. 680  CHAIN "MENU",170: RUN
  90. 690   DATA   HOBBY,BUILT,DIVERT,FLOWER
  91. 700   DATA   GRIMY,SMART,ENGINE,MUFFIN
  92. 710   DATA   RUSTY,DESTROY,ICEBOX,DEBTOR
  93. 720   DATA   SCHOOL,HENNA,ARCADE,PURPLE
  94. 730   DATA    RAINY,LAPEL,FROZEN,CIPHER
  95. 740   DATA   NUTTY,MAGIC,PASTRY,SOLACE
  96. 750   DATA    BOOTY,CLOUT,DROWSY,WINDOW
  97. 760   DATA   FELON,DICED,THROW,CLOUDY
  98. 770   DATA   DARING,BAFFLE,INVITE,ENAMEL,DAHLIA,OBJECT
  99. 780   DATA   WINCE,CRESS,DRUG,INVERT
  100. 790   DATA   SNORT,MOTIF,CHORUS,GENDER
  101. 800   DATA   POUCH,EXACT,BUTTON,ORIOLE
  102. 810   DATA    YOKEL,ARMOR,VANDAL,PICKET
  103. 820   DATA   LIMIT,GAUDY,SINGLE,DOUBLY
  104. 830   DATA   SOUSE,FUZZY,AFFRAY,ESTATE
  105. 840   DATA   CLEFT,STEED,OUTBID,WIDEST
  106. 850   DATA   LINEAR,THYME,DISMAL,HELMET
  107. 860   DATA   CLOVE,HITCH,DUPLEX,ARTERY
  108. 870   DATA   WEDGE,TAFFY,QUAVER,BUTTER
  109. 880   DATA   ENACT,JOINT,THRUSH,WISDOM
  110. 890   DATA   DOUBT,QUEEN,MARINA,BEHELD
  111. 900   DATA   BEGIN,CANAL,GHOST,NIMBLE
  112. 910   DATA   YIELD,ABYSS,EMPLOY,FASTEN
  113. 920   DATA   ALBUM,TWINE,RANSOM,BEDECK
  114. 930   DATA   IGLOO,WHINE,GRIMLY,SOLID
  115. 940   DATA   LOUSY,APRON,BANGLE,ANKLET
  116. 950   DATA   FINISH,PREFER,IODINE,DABBLE
  117. 960   DATA    GUTTER,NICKLE,POISON,OUTING,MOBILE,RAMROD
  118. 970   DATA   NERVE,CHIME,HYMNAL,FACTOR
  119. 980   DATA   CHAIR,AWOKE,AROUSE,SIPHON
  120. 990   DATA   ZIGZAG,DONKEY,SPENT,VANITY,FAMOUS,INFUSE
  121. 1000   DATA  END,END
  122. 1010   REM 
  123. 1020   REM  CURSOR INPUT ROUTINE
  124. 1030  EE$ = "":CV = 2 + 1:CH = 4 + 1
  125. 1040   INPUT EE$:Z$ = EE$:GOSUB 10000: EE$=Z$:GOTO 1110
  126. 1050   IF AA <  > 8 THEN EE$ = EE$ +  CHR$ (AA): PRINT  CHR$ (AA);: GOTO 1040
  127. 1060   IF  LEN (EE$) = 0 THEN 1040
  128. 1070   IF  LEN (EE$) = 1 THEN EE$ = "": GOTO 1090
  129. 1080  EE$ =  LEFT$ (EE$, LEN (EE$) - 1)
  130. 1090   IF CV +  INT ( LEN (EE$) / 40) > 24 THEN CV = CV - 1: GOTO 1090
  131. 1100   LOCATE CV: LOCATE , CH: PRINT EE$;: CALL  - 958: GOTO 1040
  132. 1110   PRINT  CHR$ (13);: RETURN
  133. 1120   LOCATE CV: LOCATE , 17: PRINT "/";
  134. 1130   FOR A = 1 TO  LEN (B$) - 2: PRINT "-";: NEXT
  135. 1140   PRINT  CHR$ (92);
  136. 1150   LOCATE CV + 1: LOCATE , 16: PRINT "<";: LOCATE , 16 +  LEN (B$) + 1: PRINT ">";
  137. 1160   LOCATE CV + 2: LOCATE , 17: PRINT  CHR$ (92);
  138. 1170   FOR A = 1 TO  LEN (B$) - 2: PRINT "-";: NEXT
  139. 1180   PRINT "/"
  140. 1190   RETURN
  141. 1200   FOR XX = 1 TO 500: NEXT XX
  142. 1210   LOCATE 14: LOCATE , 19: PRINT : RETURN 
  143. 1220   LOCATE , 19: PRINT "SORRY!!";: FOR XX = 1 TO 500: NEXT XX: LOCATE , 19: PRINT : RETURN
  144. 10000  REM
  145. 10010  Z2$="":FOR VI=1 TO LEN(Z$)
  146. 10020  Z1$=MID$(Z$,VI,1)
  147. 10030  IF Z1$=>"a" OR Z1$=<"z" THEN Z2$=Z2$+CHR$(ASC(Z1$)-32):GOTO 10050
  148. 10040  Z2$=Z2$+Z1$
  149. 10050  NEXT VI
  150. 10060  Z$=Z2$
  151. 10070  RETURN
  152.