home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug044.arc / W-SEARCH.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  4KB  |  183 lines

  1. 100 WIDTH 120 : PRINT CHR$(26) : PRINT
  2. 101 CLEAR 1000
  3. 102 PRINT TAB(15); "*** WORD-SEARCH PUZZLE ***" : PRINT : PRINT
  4. 103 B$=""
  5. 104 INPUT"WHAT ARE THE X AND Y DIMENSIONS ";Y,X
  6. 105 IFX>30 OR Y>30 THEN 104
  7. 106 IF X>Y THEN U0=X:GOTO 109
  8. 107 U0=Y
  9. 108 INPUT"NUMBER OF WORDS ";N
  10. 109 DIM A$(X,Y),N$(N),L(N,3)
  11. 110 GOSUB 271
  12. 111 Q8=1
  13. 112 GOSUB 269
  14. 113 PRINT
  15. 114 FORI1=1TON
  16. 115 GOTO 119
  17. 116 REM
  18. 117 L(I1,1)=A:L(I1,2)=B:L(I1,3)=D
  19. 118 GOTO239
  20. 119 C0=0
  21. 120 S$=N$(I1)
  22. 121 Z=LEN(S$)
  23. 122 GOSUB 235
  24. 123 C0=C0+1
  25. 124 IF (C0/100)<>INT(C0/100) THEN 126
  26. 125 PRINT"TRY #";C0;" ";
  27. 126 IF C0<1000 THEN 130
  28. 127 Q8=Q8+1:IF Q8=100 THEN STOP
  29. 128 GOTO 112
  30. 129 PRINTQ8:GOTO 112
  31. 130 ON D GOTO 131,144,157,170,183,196,209,222
  32. 131 IF B+Z>Y THEN 122
  33. 132 FOR I=1 TO LEN(S$)
  34. 133 A1=A: B1=B+I-1
  35. 134 GOSUB 266
  36. 135 GOSUB 268
  37. 136 IF L$=B$ OR L$=N1$ THEN 138
  38. 137 GOTO122
  39. 138 NEXT I
  40. 139 FOR I=1TOLEN(S$)
  41. 140 GOSUB 266
  42. 141 A$(A,B+I-1)=N1$
  43. 142 NEXT I
  44. 143 GOTO116
  45. 144 IFB+Z>Y ORA-Z<1 THEN 122
  46. 145 FORI=1TOLEN(S$)
  47. 146 A1=A-(I-1):B1=B+I-1
  48. 147 GOSUB266
  49. 148 GOSUB268
  50. 149 IFL$=B$ORL$=N1$THEN 151
  51. 150 GOTO122
  52. 151 NEXT I
  53. 152 FORI=1TO LEN(S$)
  54. 153 GOSUB 266
  55. 154 A$(A-(I-1),B+I-1)=N1$
  56. 155 NEXT I
  57. 156 GOTO116
  58. 157 IF A-Z<1THEN 122
  59. 158 FORI=1TOLEN(S$)
  60. 159 A1=A-(I-1):B1=B
  61. 160 GOSUB266
  62. 161 GOSUB268
  63. 162 IF L$=B$ OR L$=N1$THEN 164
  64. 163 GOTO 122
  65. 164 NEXT I
  66. 165 FOR I=1TO LEN(S$)
  67. 166 GOSUB 266
  68. 167 A$(A-(I-1),B)=N1$
  69. 168 NEXT I
  70. 169 GOTO116
  71. 170 IF A-Z<1 ORB-Z<1THEN122
  72. 171 FORI=1TOLEN(S$)
  73. 172 A1=A-(I-1):B1=B-(I-1)
  74. 173 GOSUB 266
  75. 174 GOSUB 268
  76. 175 IFL$=B$ OR L$=N1$ THEN 177
  77. 176 GOTO122
  78. 177 NEXT I
  79. 178 FOR I=1 TO LEN(S$)
  80. 179 GOSUB 266
  81. 180 A$(A-(I-1),B-(I-1))=N1$
  82. 181 NEXT I
  83. 182 GOTO116
  84. 183 IFB-Z<1THEN 122
  85. 184 FORI=1TO LEN(S$)
  86. 185 A1=A:B1=B-(I-1)
  87. 186 GOSUB 266
  88. 187 GOSUB 268
  89. 188 IFL$=B$ORL$=N1$THEN 190
  90. 189 GOTO122 
  91. 190 NEXT I
  92. 191 FOR I=1TOLEN(S$)
  93. 192 GOSUB 266
  94. 193 A$(A,B-(I-1))=N1$
  95. 194 NEXT I
  96. 195 GOTO116
  97. 196 IF (A+Z)>X OR (B-Z)<1 THEN 122
  98. 197 FORI=1TOLEN(S$)
  99. 198 A1=A+I-1:B1=B-(I-1)
  100. 199 GOSUB266
  101. 200 GOSUB268
  102. 201 IFL$=N1$ORL$=B$THEN 203
  103. 202 GOTO122
  104. 203 NEXT I
  105. 204 FOR I=1TOLEN(S$)
  106. 205 GOSUB 266
  107. 206 A$(A+I-1,B-(I-1))=N1$
  108. 207 NEXT I
  109. 208 GOTO116
  110. 209 IFA+Z>XTHEN 122
  111. 210 FORI=1TOLEN(S$)
  112. 211 A1=A+I-1:B1=B
  113. 212 GOSUB 266
  114. 213 GOSUB 268
  115. 214 IFL$=N1$ORL$=B$THEN 216
  116. 215 GOTO122
  117. 216 NEXT I
  118. 217 FORI=1TOLEN(S$)
  119. 218 GOSUB 266
  120. 219 A$(A+I-1,B)=N1$
  121. 220 NEXT I
  122. 221 GOTO116
  123. 222 IFA+Z>X ORB+Z>Y THEN 122
  124. 223 FORI=1TOLEN(S$)
  125. 224 A1=A+I-1:B1=B+I-1
  126. 225 GOSUB 266
  127. 226 GOSUB 268
  128. 227 IFL$=B$ OR L$=N1$ THEN 229
  129. 228 GOTO122
  130. 229 NEXT I
  131. 230 FORI=1TOLEN(S$)
  132. 231 GOSUB 266
  133. 232 A$(A+I-1,B+I-1)=N1$
  134. 233 NEXT I
  135. 234 GOTO116
  136. 235 A=INT(X*RND(8)+1)
  137. 236 B=INT(Y*RND(8)+1)
  138. 237 D=INT(8*RND(5)+1)
  139. 238 RETURN
  140. 239 NEXT I1
  141. 240 FORI=1TO5:PRINT:NEXT I
  142. 241 FORI=1TOX
  143. 242 FORJ=1TOY
  144. 243 IFA$(I,J)=""THEN252
  145. 244 PRINTA$(I,J);"  ";
  146. 245 NEXT J
  147. 246 PRINT
  148. 247 NEXT I
  149. 248 PRINT
  150. 249 GOSUB 255
  151. 250 PRINT
  152. 251 GOTO 277
  153. 252 A$(I,J)=CHR$(INT(26*RND(1)+65))
  154. 253 GOTO 244
  155. 254 PRINT
  156. 255 INPUT"DO YOU WANT THE ANSWERS ";ANS$
  157. 256 AN=0
  158. 257 IF LEFT$(ANS$,2)="YE" THEN AN=1
  159. 258 PRINT"THE HIDDEN WORDS ARE: "
  160. 259 FOR K=1TO N
  161. 260 PRINTN$(K);
  162. 261 IF AN=0 THEN PRINT:GOTO263
  163. 262 PRINTTAB(30);L(K,1);",";L(K,2);",";L(K,3)
  164. 263 NEXT K
  165. 264 RETURN
  166. 265 GOTO 277
  167. 266 N1$=MID$(S$,I,1)
  168. 267 RETURN
  169. 268 L$=A$(A1,B1):RETURN
  170. 269 FORI=1TOX:FORJ=1TOY:A$(I,J)="":NEXTJ,I
  171. 270 RETURN
  172. 271 FORI=1TON
  173. 272 PRINT"WORD #";I;
  174. 273 INPUT N$(I)
  175. 274 IF LEN(N$(I))>U0 THEN 272
  176. 275 NEXT I
  177. 276 RETURN
  178. 277 RESET
  179. ETURN
  180. 271 FORI=1TON
  181. 272 PRINT"WORD #";I;
  182. 273 INPUT N$(I)
  183.