0 'Club 100 Library - 415/939-1246 BBS 937-5039 NEWSLETTER, 932-8856 VOICE 2 'Hidden word puzzle generator, from Popular Computing Mag; M100 version, print option by Russ Hall. Codes are for 3/4 LF on DMP-105. 3 'Step out and make a sandwich when this one runs!... 5 GOTO2000 10 CLEAR 500 20 DEFINT A-Z 30 MR=12:MC=12:NC=MR*MC 40 SP$="-":MK$="*":DC$="+":NW=0 50 READ WD$ 60 IF WD$<>"/"THEN NW=NW+1:GOTO 50 70 DIM M$(MR,MC),WD$(NW),D(8,2),SQ(NC),WU(NW),WQ(NW) 80 RESTORE:FOR I=1 TO NW:READ WD$(I):NEXT I 90 READ WD$ 100 DATA EAGLE,OSTRICH,ANTELOPE,BOBCAT,COYOTE,HYHENA 110 DATA SNAKE,ALLIGATOR,PIRAHANA,DEER 115 DATA ELEPHANT,MONKEY,KANGAROO,FISH,SHARK,MAHIMAHI 120 DATA LION,TIGER,BEAR,GIRAFFE,ZEBRA,HORSE,GAZELLE,/ 130 FOR I=1 TO 8:READ D(I,1),D(I,2):NEXT I 140 DATA 0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1 150 PRINT"HIDDEN-WORD PUZZLE GENERATOR" 160 PRINT"GRID SIZE IS"MR"BY"MC 170 PRINT"VOCABULARY CONTAINS"NW"WORDS" 180 PRINT:PRINT"SETTING UP THE GRID. PLEASE WAIT." 190 FOR I=1 TO MR:FOR J=1 TO MC:M$(I,J)=SP$:NEXT J:NEXT I 200 FOR I=1 TO NC:SQ(I)=0:NEXT I 210 FOR I=1 TO NC 220 Q=INT(RND(1)*NC)+1:IF SQ(Q)<>0 THEN 220 230 SQ(Q)=I 240 NEXT I 250 FOR I=1 TO NW:WQ(I)=0:WU(I)=0:NEXT I 260 FOR I=1 TO NW 270 Q=INT(RND(1)*NW)+1: IF WQ(Q)<>0 THEN 270 280 WQ(Q)=I 290 NEXT I 300 MF=0:WA=NW:FU=0:DI=1 310 PRINT"STARTING TO FILL IN THE GRID..." 320 FOR QP=1 TO NC 330 CP=SQ(QP) 340 CR=INT((CP-1)/MC)+1:CC=CP-(CR-1)*MC 350 IF M$(CR,CC)<>SP$ THEN 960 360 IF WA=0 THEN MF=0:GOTO 950 370 M$(CR,CC)=MK$ 380 DK=1 390 IR=D(DI,1):IC=D(DI,2) 400 RT=1:IF IR<0 THEN RT=MR 410 IF IR=0 THEN RT=CR 420 CT=1:IF IC<0 THEN CT=MC 430 IF IC=0 THEN CT=CC 440 BR=CR:BC=CC 450 IF(BR=RT AND IR<>0)OR(BC=CT AND IC<>0)THEN 490 460 BR=BR-IR 470 BC=BC-IC 480 GOTO 450 490 RT=1:IF IR>0 THEN RT=MR 500 IF IR=0 THEN RT=CR 510 CT=1:IF IC>0 THEN CT=MC 520 IF IC=0 THEN CT=CC 530 ER=CR:EC=CC 540 IF(ER=RT AND IR<>0)OR(EC=CT AND IC<>0)THEN 580 550 ER=ER+IR 560 EC=EC+IC 570 GOTO 540 580 UR=ER:IF BR>ER THEN UR=BR 590 LR=BR:IF ER
EC THEN UC=BC 610 LC=BC:IF EC=LR AND PR<=UR AND PC>=LC AND PC<=UC THEN 630 650 PL=LEN(P$):SP=INSTR(1,P$,MK$) 660 FOR LS=1 TO SP:FOR RS=PL TO SP STEP -1 670 CP$=MID$(P$,LS,RS-LS+1):CL=LEN(CP$) 680 Q=1 690 W=WQ(Q) 700 IF LEN(WD$(W))<>CL THEN MF=0:GOTO 910 710 MF=1 720 FOR C=1 TO CL 730 IF MID$(CP$,C,1)=SP$ OR MID$(CP$,C,1)=MK$ THEN 750 740 IF MID$(CP$,C,1)<>MID$(WD$(W),C,1) THEN C=CL:MF=0 750 NEXT C 760 IF MF=0 THEN 910 770 FW$=WD$(W) 780 IF LS>1 THEN FW$=DC$+FW$:LS=LS-1:GOTO 780 790 IF RS0)OR(C=EC AND IC<>0)THEN 850 840 C=C+IC:R=R+IR:PR=PR+1:GOTO 810 850 IF Q=WA THEN 870 860 FOR I=Q TO WA-1:WQ(I)=WQ(I+1):NEXT I 870 WA=WA-1 880 WU(W)=1 890 RS=SP:LS=SP:DK=8 900 PRINT"USED A WORD.":GOTO 920 910 Q=Q+1:IF Q<=WA THEN 690 920 NEXT RS:NEXT LS 930 DI=DI+1:DK=DK+1:IF DI>8 THEN DI=1 940 IF DK<=8 THEN 390 950 IF MF=0 THEN M$(CR,CC)=CHR$(INT(RND(1)*26)+65):FU=FU+1:PRINT"USED A FILL CHARACTER." 960 PRINT NC-QP"CELLS NOT EXAMINED YET." 970 NEXT QP 980 PRINT"PUZZLE COMPLETED.":PRINT:GOSUB 1045 1000 PRINT:PRINT"THE HIDDEN WORDS ARE:" 1010 FOR I=1 TO NW 1020 IF WU(I)<>0 THEN PRINT #1,WD$(I) 1030 NEXT I 1040 END 1045 OPEN "RAM:WORKS.DO" FOR APPEND AS #1 1050 FOR TR=1 TO MR:FOR TC=1 TO MC:PRINT #1,M$(TR,TC)" ";:NEXT TC:PRINT #1,:NEXT TR 1060 RETURN 2000 CLS:PRINT:PRINT"Press for:" 2010 PRINT:PRINT" idden puzzle generator" 2020 PRINT"

uzzle printer" 2025 PRINT" uit 2030 K$=INKEY$:IFK$=""THEN2030 2040 IFK$="H"ORK$="h"THENGOTO10 2050 IFK$="P"ORK$="p"THENGOTO3000 2055 IFK$="Q"ORK$="q"THENLPRINTCHR$(27);CHR$(54):MENU 2060 GOTO2030 3000 S$=STRING$(15,32) 3005 CLS:PRINT:PRINT"Is the printer turned on?" 3007 PRINT:LINEINPUT"Name of document to print:";F$ 3010 LPRINTCHR$(27);CHR$(56):E=0:F=0 3020 OPENF$FORINPUTAS1 3030 IFEOF(1)THEN3200 3040 LINEINPUT#1,A$ 3050 IFMID$(A$,2,1)<>" "THEN3150 3060 LPRINTS$;A$:LPRINT 3070 GOTO3030 3150 IFE=0THENLPRINT:LPRINT 3155 B$=B$+A$+" ":E=1:F=F+1 3160 IFF=5THENF=0:LPRINTS$;B$:B$="" 3180 GOTO3030 3200 LPRINTS$;B$:B$="":LPRINT:LPRINT:LPRINT 3210 CLOSE:GOTO2000