10 CLEAR 1000:B$="":PRINT CHR$(26)'SCREEN CLEAR 20 INPUT "INPUT X AND Y DIMENSIONS";Y,X:IF X>30 OR Y>30 THEN 20 30 IF X>Y THEN U0=X ELSE U0=Y 40 INPUT "NUMBER OF WORDS";N:DIM A$(X,Y),N$(N),L(N,3) 50 GOSUB 1050:Q8=1 60 ERASE A$:DIM A$(X,Y):PRINT Q8 70 FOR I1=1 TO N 80 GOTO 100 90 L(I1,1)=A:L(I1,2)=B:L(I1,3)=D:GOTO 760 100 C0=0:S$=N$(I1):Z=LEN(S$) 110 GOSUB 750:C0=C0+1 120 IF C0/100=INT(C0/100) THEN PRINT "TRY #";C0;" "; 130 IF C0<1000 THEN 160 140 Q8=Q8+1:IF Q8=100 THEN STOP ELSE 60 150 PRINT Q8:GOTO 60 160 ON D GOTO 170,240,310,380,450,520,610,680 170 IF B+Z>Y THEN 110 180 FOR I=1 TO Z 190 A1=A:B1=B+I-1:GOSUB 1030:GOSUB 1040 200 IF L$=B$ OR L$=N1$ THEN 210 ELSE 110 210 NEXT I 220 FOR I=1 TO Z:GOSUB 1030:A$(A,B+I-1)=N1$:NEXT I 230 GOTO 90 240 IF B+Z>Y OR A-Z<1 THEN 110 250 FOR I=1 TO Z 260 A1=A-(I-1):B1=B+I-1:GOSUB 1030:GOSUB 1040 270 IF L$=B$ OR L$=N1$ THEN 280 ELSE 110 280 NEXT I 290 FOR I=1 TO Z:GOSUB 1030:A$(A-(I-1),B+I-1)=N1$:NEXT I 300 GOTO 90 310 IF A-Z<1 THEN 110 320 FOR I=1 TO Z 330 A1=A-(I-1):B1=B:GOSUB 1030:GOSUB 1040 340 IF L$=B$ OR L$=N1$ THEN 350 ELSE 110 350 NEXT I 360 FOR I=1 TO Z:GOSUB 1030:A$(A-(I-1),B)=N1$:NEXT I 370 GOTO 90 380 IF A-Z<1 OR B-Z<1 THEN 110 390 FOR I=1 TO Z 400 A1=A-(I-1):B1=B-(I-1):GOSUB 1030:GOSUB 1040 410 IF L$=B$ OR L$=N1$ THEN 420 ELSE 110 420 NEXT I 430 FOR I=1 TO Z:GOSUB 1030:A$(A-(I-1),B-(I-1))=N1$:NEXT I 440 GOTO 90 450 IF B-Z<1 THEN 110 460 FOR I=1 TO Z 470 A1=A:B1=B-(I-1):GOSUB 1030:GOSUB 1040 480 IF L$=B$ OR L$=N1$ THEN 490 ELSE 110 490 NEXT I 500 FOR I=1 TO Z:GOSUB 1030:A$(A,B-(I-1))=N1$:NEXT I 510 GOTO 90 520 IF A+Z>X OR B-Z<1 THEN 110 530 FOR I=1 TO Z 540 A1=A+I-1:B1=B-(I-1) 550 GOSUB 1030 560 GOSUB 1040 570 IF L$=N1$ OR L$=B$ THEN 580 ELSE 110 580 NEXT I 590 FOR I=1 TO Z:GOSUB 1030:A$(A+I-1,B-(I-1))=N1$:NEXT I 600 GOTO 90 610 IF A+Z>X THEN 110 620 FOR I=1 TO Z 630 A1=A+I-1:B1=B:GOSUB 1030:GOSUB 1040 640 IF L$=N1$ OR L$=B$ THEN 650 ELSE 110 650 NEXT I 660 FOR I=1 TO Z:GOSUB 1030:A$(A+I-1,B)=N1$:NEXT I 670 GOTO 90 680 IF A+Z>X OR B+Z>Y THEN 110 690 FOR I=1 TO Z 700 A1=A+I-1:B1=B+I-1:GOSUB 1030:GOSUB 1040 710 IF L$=B$ OR L$=N1$ THEN 720 ELSE 110 720 NEXT I 730 FOR I=1 TO Z:GOSUB 1030:A$(A+I-1,B+I-1)=N1$:NEXT I 740 GOTO 90 750 A=INT(X*RND(8)+1):B=INT(Y*RND(8)+1):D=INT(8*RND(5)+1):RETURN 760 NEXT I1 770 FOR I=1 TO 5:PRINT:NEXT I 780 FOR I=1 TO X 790 FOR J=1 TO Y 800 IF A$(I,J)="" THEN 860 810 PRINT A$(I,J);" "; 820 NEXT J 830 PRINT:PRINT 840 NEXT I 850 PRINT:GOSUB 890:PRINT:GOTO 1130 860 A$(I,J)=CHR$(INT(26*RND(1)+65)) 870 GOTO 810 880 PRINT 890 INPUT "DO YOU WANT THE ANSWERS";ANS$ 900 ANS$=LEFT$(ANS$,1) 910 PRINT "THE HIDDEN WORDS ARE:" 920 FOR D1=1 TO N-1 930 FOR D2=D1+1 TO N 940 IF N$(D2)<=N$(D1) THEN SWAP N$(D1),N$(D2): SWAP L(D1,1),L(D2,1):SWAP L(D1,2),L(D2,2): SWAP L(D1,3),L(D2,3) 950 NEXT D2 960 NEXT D1 970 FOR K=1 TO N 980 PRINT N$(K); 990 IF ANS$="N" THEN PRINT:GOTO 1010 1000 PRINT TAB(30);L(K,1);",";L(K,2);",";L(K,3) 1010 NEXT K 1020 RETURN 1030 N1$=MID$(S$,I,1):RETURN 1040 L$=A$(A1,B1):RETURN 1050 FOR I=1 TO N 1060 PRINT "WORD #";I;:INPUT N$(I) 1070 IF LEN(N$(I))>U0 THEN PRINT "TOO LONG.":GOTO 1060 1080 FOR T=1 TO LEN(N$(I)) 1090 IF ASC(MID$(N$(I),T,1))<65 OR ASC(MID$(N$(I),T,1))>90 THEN PRINT "ILLEGAL SYMBOLS.":GOTO 1060 1100 NEXT T 1110 NEXT I 1120 RETURN 1130 INPUT "DO YOU WANT TO RUN THIS PROGRAM AGAIN";A$ 1140 IF LEFT$(A$,1)="Y" THEN RUN 1150 RUN "DIR" 1160 END 120 RETURN 1130 INPUT "DO YOU WANT TO RUN THIS PROGRAM AGAIN";A$