home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG026.ARK / WORD-PZL.ASC < prev    next >
Text File  |  1984-04-29  |  5KB  |  219 lines

  1. 100 CLEAR 1200
  2. 110 B$="."
  3. 120 INPUT"INPUT X AND Y DIMENSIONS ";X,Y
  4. 130 IF X>30 OR Y>30 THEN 120
  5. 140 IF X>Y THEN U0=X:GOTO 180
  6. 150 U0=Y
  7. 160 INPUT"NUMBER OF WORDS ";N
  8. 170 C1=100*INT(N/10):IF C1<100 THEN C1=100
  9. 180 DIM W$(50),A$(X,Y),N$(N),L(N,4)
  10. 190 W$(1)="DUMMEY ARGUMENT"
  11. 200 GOTO2150
  12. 210 GOSUB 1960
  13. 220 GOTO2020
  14. 230 INPUT"PUNCH LIST ON TAPE";T$:IF LEFT$(T$,1)="Y" THEN GOTO 2220
  15. 240 Q8=1
  16. 250 GOSUB 1940
  17. 260 PRINT:PRINT Q8
  18. 270 FOR I1=1 TO N
  19. 280 GOTO 360
  20. 290 PRINT:PRINT"FIRST CHAR. CHANGED ON PASS";C0;" OF THE";I1;"TH WORD"
  21. 300 A$(L(1,1),L(1,2))=LEFT$(N$(1),1)
  22. 310 GOTO430
  23. 320 REM
  24. 330 L(I1,1)=A:L(I1,2)=B:L(I1,3)=D
  25. 340 L(I1,4)=C0
  26. 350 GOTO 1580
  27. 360 C0=0
  28. 370 S$=N$(I1)
  29. 380 Z=LEN(S$)-1
  30. 390 GOSUB 1540
  31. 400 C0=C0+1
  32. 410 IF I1=1 THEN GOTO 430
  33. 420 IF A$(L(1,1),L(1,2))<>LEFT$(N$(1),1) THEN GOTO 290
  34. 430 IF C0/C1<>INT(C0/C1) THEN 450
  35. 440 PRINT S$;" TRY#";C0
  36. 450 IF C0<C1*10 THEN490
  37. 460 Q8=Q8+1:IF Q8=100 THEN STOP
  38. 470 GOTO 250
  39. 480 PRINT Q8: GOTO250
  40. 490 ON D GOTO 500,630,760,890,1020,1150,1280,1410
  41. 500 IF B+Z>Y THEN 390
  42. 510 FOR I=1 TO LEN(S$)
  43. 520 A1=A:B1=B+I-1
  44. 530 GOSUB 1910
  45. 540 GOSUB 1930
  46. 550 IF L$=B$ OR L$=N1$ THEN 570
  47. 560 GOTO 390
  48. 570 NEXT I
  49. 580 FOR I=1 TO LEN(S$)
  50. 590 GOSUB 1910
  51. 600 A$(A,B+I-1)=N1$
  52. 610 NEXT I
  53. 620 GOTO 320
  54. 630 IF B+Z>Y OR A-Z<1 THEN390
  55. 640 FOR I=1 TO LEN(S$)
  56. 650 A1=A-(I-1):B1=B+I-1
  57. 660 GOSUB 1910
  58. 670 GOSUB 1930
  59. 680 IF L$=B$ OR L$=N1$ THEN 700
  60. 690 GOTO 390
  61. 700 NEXT I
  62. 710 FOR I=1 TO LEN(S$)
  63. 720 GOSUB 1910
  64. 730 A$(A-(I-1),B+I-1)=N1$
  65. 740 NEXT I
  66. 750 GOTO 320
  67. 760 IF A-Z<1 THEN 390
  68. 770 FOR I=1 TO LEN(S$)
  69. 780 A1=A-(I-1):B1=B
  70. 790 GOSUB 1910
  71. 800 GOSUB 1930
  72. 810 IF L$=B$ OR L$=N1$ THEN 830
  73. 820 GOTO 390
  74. 830 NEXT I
  75. 840 FOR I=1 TO LEN(S$)
  76. 850 GOSUB 1910
  77. 860 A$(A-(I-1),B)=N1$
  78. 870 NEXT I
  79. 880 GOTO320
  80. 890 IF A-Z<1 OR B-Z<1 THEN390
  81. 900 FOR I=1 TO LEN(S$)
  82. 910 A1=A-(I-1):B1=B-(I-1)
  83. 920 GOSUB 1910
  84. 930 GOSUB 1930
  85. 940 IF L$=B$ OR L$=N1$ THEN960
  86. 950 GOTO 390
  87. 960 NEXT I
  88. 970 FOR I=1 TO LEN(S$)
  89. 980 GOSUB 1910
  90. 990 A$(A-(I-1),B-(I-1))=N1$
  91. 1000 NEXT I
  92. 1010 GOTO 320
  93. 1020 IF B-Z<1 THEN 390
  94. 1030 FOR I=1 TO LEN(S$)
  95. 1040 A1=A:B1=B-(I-1)
  96. 1050 GOSUB 1910
  97. 1060 GOSUB 1930
  98. 1070 IF L$=B$ OR L$=N1$ THEN 1090
  99. 1080 GOTO 390
  100. 1090 NEXT I
  101. 1100 FOR I=1 TO LEN(S$)
  102. 1110 GOSUB 1910
  103. 1120 A$(A,B-(I-1))=N1$
  104. 1130 NEXT I
  105. 1140 GOTO 320
  106. 1150 IF A+Z>X OR B-Z<1 THEN390
  107. 1160 FOR I=1 TO LEN(S$)
  108. 1170 A1=A+I-1:B1=B-(I-1)
  109. 1180 GOSUB 1910
  110. 1190 GOSUB 1930
  111. 1200 IF L$=N1$ OR L$=B$ THEN1220
  112. 1210 GOTO390
  113. 1220 NEXT I
  114. 1230 FOR I=1 TO LEN(S$)
  115. 1240 GOSUB 1910
  116. 1250 A$(A+I-1,B-(I-1))=N1$
  117. 1260 NEXT I
  118. 1270 GOTO320
  119. 1280 IF A+Z>X THEN 390
  120. 1290 FOR I=1 TO LEN(S$)
  121. 1300 A1=A+I-1:B1=B
  122. 1310 GOSUB 1910
  123. 1320 GOSUB 1930
  124. 1330 IF L$=N1$ OR L$=B$ THEN1350
  125. 1340 GOTO 390
  126. 1350 NEXT I
  127. 1360 FOR I=1 TO LEN(S$)
  128. 1370 GOSUB 1910
  129. 1380 A$(A+I-1,B)=N1$
  130. 1390 NEXT I
  131. 1400 GOTO 320
  132. 1410 IF A+Z>X OR B+Z>Y THEN390
  133. 1420 FOR I=1 TO LEN(S$)
  134. 1430 A1=A+I-1:B1=B+I-1
  135. 1440 GOSUB 1910
  136. 1450 GOSUB 1930
  137. 1460 IF L$=B$ OR L$=N1$ THEN 1480
  138. 1470 GOTO 390
  139. 1480 NEXT I
  140. 1490 FOR I=1 TO LEN(S$)
  141. 1500 GOSUB 1910
  142. 1510 A$(A+I-1,B+I-1)=N1$
  143. 1520 NEXT I
  144. 1530 GOTO320
  145. 1540 A=INT(X*RND(8)+1)
  146. 1550 B=INT(Y*RND(8)+1)
  147. 1560 D=INT(8*RND(5)+1)
  148. 1570 RETURN
  149. 1580 NEXT I1
  150. 1590 GOTO 1610
  151. 1600 FOR I=1TOX:FORJ=1TOY:PRINTA$(I,J);" ";:NEXTJ:PRINT:NEXTI
  152. 1610 FOR I=1 TO 5:PRINT:NEXT I
  153. 1620 PRINT"THE";N;"HIDDEN WORDS ARE":PRINT
  154. 1630 Z=2:FORI=1TON:PRINTTAB(Z);N$(I);:Z=Z+18:IFZ>60 THENZ=2:PRINT
  155. 1640 NEXT I:PRINT:PRINT:PRINT
  156. 1650 FOR I=1 TO X
  157. 1660 FOR J=1 TO Y
  158. 1670 IF A$(I,J)=B$ THEN 1770
  159. 1680 PRINT A$(I,J);"  ";
  160. 1690 NEXT J
  161. 1700 PRINT
  162. 1710 NEXT I
  163. 1720 PRINT
  164. 1730 GOSUB 1800
  165. 1740 PRINT
  166. 1750 GOTO 240
  167. 1760 END
  168. 1770 A$(I,J)=CHR$(INT(26*RND(1)+65))
  169. 1780 GOTO 1680
  170. 1790 PRINT
  171. 1800 REM
  172. 1810 AN=1
  173. 1820 PRINT "THE HIDDEN WORDS ARE LOCATED AT"
  174. 1830 FOR K=1 TO N
  175. 1840 PRINT N$(K);
  176. 1850 IF AN=0 THEN PRINT: GOTO 1880
  177. 1860 PRINT TAB(30);L(K,1);",";L(K,2);",";L(K,3);
  178. 1870 PRINT ",";L(K,4)
  179. 1880 NEXT K
  180. 1890 RETURN
  181. 1900 END
  182. 1910 N1$=MID$(S$,I,1)
  183. 1920 RETURN
  184. 1930 L$=A$(A1,B1):RETURN
  185. 1940 FORI=1TOX:FORJ=1TOY:A$(I,J)=B$:NEXT J,I
  186. 1950 RETURN
  187. 1960 FOR I=1 TO N
  188. 1970 PRINT"WORD #";I;
  189. 1980 INPUT N$(I)
  190. 1990 IF LEN(N$(I))>U0 THEN1970
  191. 2000 NEXT I
  192. 2010 RETURN
  193. 2020 IF N<3 THEN GOTO240
  194. 2030 FOR J=2 TO (N-1)
  195. 2040 L=0:M=0
  196. 2050 FOR I=J TO N
  197. 2060 IF LEN(N$(I))>L THEN L=LEN(N$(I)):M=I
  198. 2070 NEXT I
  199. 2080 T$=N$(M)
  200. 2090 FOR I=(M-1)TO J STEP -1
  201. 2100 N$(I+1)=N$(I)
  202. 2110 NEXT I
  203. 2120 N$(J)=T$
  204. 2130 NEXT J
  205. 2140 GOTO  230
  206. 2150 INPUT"INPUT FROM TAPE";T$:IF LEFT$(T$,1)="N" THEN GOTO210
  207. 2160 PRINT CHR$(17):REM TAPE READER ON
  208. 2170 FOR I=1 TO N
  209. 2180 INPUT N$(I)
  210. 2190 NEXT I
  211. 2200 PRINT CHR$(19):REM TAPE READER OFF
  212. 2210 GOTO 2020
  213. 2220 NULL6
  214. 2230 PRINT CHR$(18);:REM TAPE PUNCH ON
  215. 2240 FOR I=1TO75:PRINT CHR$(0);:NEXT I:REM LEADER
  216. 2250 FOR I=1TON:PRINTN$(I):NEXT I
  217. 2260 FOR I=1TO75:PRINT CHR$(0);:NEXT I:PRINT CHR$(20)
  218. 2270 NULL0:GOTO240
  219.