10 REM Tue,02 Jun 1992.09:39:50 20 DEFFNS:$(PAGE+6)=TIME$:="WRDSRCH" 30 ONERROR:VDU3:MODE128:REPORT:PRINTERL:END 40 MODE7:PROCt:K$="":E%=100:U%=0:Z$="" 50 INPUT"†How many words? 0 to load "Q% 60 IF Q%<>0 REPEAT:INPUT"†Columns? "C%:C%=C%+1:UNTILC%>0ANDC%<81:REPEATINPUT"†Rows? "R%:UNTILR%>0ANDR%<81:DIMA$(Q%),B$(R%+1):PROCt:PROCgw 70 IFQ%=0:OSCLI".":INPUT"†Load name? "Z$:F%=OPENINZ$:INPUT#F%,U%,E%,Q%,C%,R%,K%,K$:DIMA$(Q%),B$(R%+1):PROCl 80 W%=R%:REPEAT:P%=0:PROCt 90 PRINTTAB(7)"ƒ Words:";Q%;" Unused:";U%TAB(7)"ƒA - Alter word:"TAB(7)"ƒB - Build grid."TAB(7)"ƒD - Display grid."TAB(7)"ƒF - Fill spaces."TAB(7)"ƒL - Load/Restart." 100 PRINTTAB(7)"ƒO - Sort."TAB(7)"ƒP - Print."TAB(7)"ƒQ - Spool"TAB(7)"ƒR - Re-define grid:]";C%-1;" ^";R%TAB(7)"ƒS - Save."TAB(7)"ƒT - Tries:";E%TAB(7)"ƒU - Unsort."TAB(7)"ƒE - End." 110 Q$=GET$:PROCt 120 IFQ$="A"PROCat 130 IFQ$="B"PROCmg:Q$="D":K$="" 140 IFQ$="D":P%=3 150 IFQ$="F"PRINT''"ƒFilling spaces":PROCf 160 IFQ$="R"PROCgs 170 IFQ$="L"RUN 180 IFQ$="O"PROCst 190 IFQ$="P"P%=1 200 IFQ$="Q"P%=2 210 IFP%MODE128:PROCdg:MODE7 220 IFQ$="S"PROCs 230 IFQ$="T"INPUT"ƒHow many tries at each word? "E% 240 IFQ$="U"PROCu 250 IFQ$="E":END 260 UNTILFALSE 270 DEFPROCgs:REPEAT:INPUT"†Columns:"C%:C%=C%+1:UNTILC%>0ANDC%<81:REPEATINPUT"†Rows:"R%:UNTILR%>0ANDR%<=W%:ENDPROC 280 DEFPROCgw:PRINTTAB(6,8)"ƒEnter word " 290 FORL%=1TOQ%:PRINTTAB(18,8);L%;:INPUTTAB(0,10)A$(L%):A$(L%)=A$(L%)+CHR$(0):PRINTTAB(0,10)SPC80:NEXT:ENDPROC 300 DEFPROCst:PRINT''TAB(7)"ˆSorting." 310 FORL%=Q%TO1STEP-1:A$(0)=A$(L%):T%=0:T$="":FORB%=L%TO0STEP-1:IFA$(B%)>T$:T$=A$(B%):T%=B% 320 NEXT:A$(L%)=A$(T%):A$(T%)=A$(0):NEXT 330 ENDPROC 340 DEFPROCu:PRINT''TAB(7)"ˆUnsorting.":FORL%=1TOQ%:B%=RND(Q%):A%=RND(Q%):A$(0)=A$(B%):A$(B%)=A$(A%):A$(A%)=A$(0):NEXT:ENDPROC 350 DEFPROCl:FORL%=0TOQ%:INPUT#F%,A$(L%):NEXT:FORL%=1TOR%:INPUT#F%,B$(L%):NEXT:CLOSE#F%:ENDPROC 360 DEFPROCs:OSCLI".":INPUT"†Save name? "Q$:F%=OPENOUTQ$:PRINT#F%,U%,E%,Q%,C%,R%,K%,K$:FORL%=0TOQ%:PRINT#F%,A$(L%):NEXT:FORL%=1TOR%:PRINT#F%,LEFT$(B$(L%),C%+1):NEXT 370 CLOSE#F%:ENDPROC 380 DEFPROCt:CLS:PRINTTAB(5)"ƒWord search generator"TAB(5)"‚Word search generator"''TAB(7)"… By C.J.Richardson"'':ENDPROC 390 DEFPROCdg:IFP%=1VDU2:ELSE IFP%=3VDU14 ELSEIFP%=2INPUT"Name to spool? "Y$:OSCLI"SPOOL "+Y$ 400 PRINTTAB(7)"Word search generator by C.J.Richardson. File ";Z$;" Difficulty:";K% 410 IFC%>40 FORL%=1TOR%:PRINTMID$(B$(L%),1,C%+1):NEXT 420 IFC%<41 FORL%=1TOR%:FORB%=2TOC%:PRINTMID$(B$(L%),B%,1)+" ";:NEXT:PRINT:NEXT 430 PRINT:Z%=0:U%=Q%:FORL%=1TOQ%:IFP%=3:PRINTTAB(Z%);L%; 440 IFASC(RIGHT$(A$(L%),1))=1PRINTTAB(Z%+3)LEFT$(A$(L%),LENA$(L%)-1);:Z%=Z%+20:U%=U%-1:IFZ%=80Z%=0 450 NEXT:OSCLI"SPOOL":IFP%=3PRINT'"Secret word:";K$ 460 VDU13,3:PROCun:VDU15:ENDPROC 470 DEFPROCat:INPUT"†Number of word to alter? "L%:PRINTLEFT$(A$(L%),LENA$(L%)-1):INPUT"†New word? "A$(L%):A$(L%)=A$(L%)+CHR$(0):ENDPROC 480 DEFPROCmg:INPUT"†Answer file? Name/RETURN "Q$:IFQ$<>""F%=OPENOUTQ$ 490 PRINT"†Hang on. Making grid.":FORL%=1TOR%:B$(L%)=CHR$0+STRING$(C%," ")+CHR$0:NEXT 500 B$(0)=STRING$(C%+2,CHR$0):B$(R%+1)=STRING$(C%+2,CHR$0) 510 FORL%=1TOQ%:A$(L%)=LEFT$(A$(L%),LENA$(L%)-1)+CHR$(0):NEXT:K%=RND(8) 520 FORL%=1TOQ%:D%=RND(5):IFD%=1:D%=K% ELSE D%=RND(8) 530 IFD%=1 H%=1 540 IFD%=2 H%=-1 550 IFD%=3 H%=C% 560 IFD%=4 H%=-C% 570 IFD%=5 H%=C%+1 580 IFD%=6 H%=C%-1 590 IFD%=7 H%=-(C%-1) 600 IFD%=8 H%=-(C%+1) 610 PRINTTAB(15,10);L% 620 I%=0:REPEAT:PROCgets 630 O%=S%:T%=1:REPEAT:X%=1+S%MODC%:Y%=S%DIVC%:T$=MID$(B$(Y%),X%,1):IFT$=" "OR T$=MID$(A$(L%),T%,1)T$="" 640 IF ASC T$=0T$="N" 650 T%=T%+1:S%=S%+H%:IFS%<0ORS%>(R%+1)*C%T$="N" 660 UNTILT$<>""ORT%=LEN(A$(L%)) 670 S%=O% 680 IFT$=""FORB%=1TOLEN(A$(L%))-1:X%=1+S%MODC%:Y%=S%DIVC%:B$(Y%)=LEFT$(B$(Y%),X%-1)+MID$(A$(L%),B%,1)+MID$(B$(Y%),X%+1):S%=S%+H%:NEXT:I%=E%:A$(L%)=LEFT$(A$(L%),LENA$(L%)-1)+CHR$(1) 690 I%=I%+1 700 UNTILI%>E%:IFQ$<>"" BPUT#F%,1+O%MODC%:BPUT#F%,O%DIVC% 710 NEXT:IFQ$<>""CLOSE#F%:PROCs 720 ENDPROC 730 DEFPROCun 740 PRINT'"Unused:":FORL%=1TOQ%:IFASC(RIGHT$(A$(L%),1))=0PRINTL%;" ";A$(L%):NEXT ELSE NEXT 750 PRINT''"Press a key":REPEATUNTILGET 760 ENDPROC 770 DEFPROCf:U%=0:FORL%=1TOR%:FORB%=1TOC%:IFMID$(B$(L%),B%,1)=" "U%=U%+1:NEXT, ELSE NEXT, 780 PRINT"„There are ";U%;" spaces."'"„Enter secret word/s":INPUTK$:IFK$=""K$="D" 790 Q$=K$:U%=1:FORL%=1TOR%:FORB%=1TOC%:IFMID$(B$(L%),B%,1)=" "B$(L%)=LEFT$(B$(L%),B%-1)+MID$(Q$,U%,1)+MID$(B$(L%),B%+1):U%=U%+1:IFU%>LENQ$U%=1:Q$=CHR$(RND(26)+64) 800 NEXT,:Q$="":ENDPROC 810 DEFPROCgets:IFI%>-1IFI%