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 >
Wrap
Text File
|
1984-04-29
|
5KB
|
219 lines
100 CLEAR 1200
110 B$="."
120 INPUT"INPUT X AND Y DIMENSIONS ";X,Y
130 IF X>30 OR Y>30 THEN 120
140 IF X>Y THEN U0=X:GOTO 180
150 U0=Y
160 INPUT"NUMBER OF WORDS ";N
170 C1=100*INT(N/10):IF C1<100 THEN C1=100
180 DIM W$(50),A$(X,Y),N$(N),L(N,4)
190 W$(1)="DUMMEY ARGUMENT"
200 GOTO2150
210 GOSUB 1960
220 GOTO2020
230 INPUT"PUNCH LIST ON TAPE";T$:IF LEFT$(T$,1)="Y" THEN GOTO 2220
240 Q8=1
250 GOSUB 1940
260 PRINT:PRINT Q8
270 FOR I1=1 TO N
280 GOTO 360
290 PRINT:PRINT"FIRST CHAR. CHANGED ON PASS";C0;" OF THE";I1;"TH WORD"
300 A$(L(1,1),L(1,2))=LEFT$(N$(1),1)
310 GOTO430
320 REM
330 L(I1,1)=A:L(I1,2)=B:L(I1,3)=D
340 L(I1,4)=C0
350 GOTO 1580
360 C0=0
370 S$=N$(I1)
380 Z=LEN(S$)-1
390 GOSUB 1540
400 C0=C0+1
410 IF I1=1 THEN GOTO 430
420 IF A$(L(1,1),L(1,2))<>LEFT$(N$(1),1) THEN GOTO 290
430 IF C0/C1<>INT(C0/C1) THEN 450
440 PRINT S$;" TRY#";C0
450 IF C0<C1*10 THEN490
460 Q8=Q8+1:IF Q8=100 THEN STOP
470 GOTO 250
480 PRINT Q8: GOTO250
490 ON D GOTO 500,630,760,890,1020,1150,1280,1410
500 IF B+Z>Y THEN 390
510 FOR I=1 TO LEN(S$)
520 A1=A:B1=B+I-1
530 GOSUB 1910
540 GOSUB 1930
550 IF L$=B$ OR L$=N1$ THEN 570
560 GOTO 390
570 NEXT I
580 FOR I=1 TO LEN(S$)
590 GOSUB 1910
600 A$(A,B+I-1)=N1$
610 NEXT I
620 GOTO 320
630 IF B+Z>Y OR A-Z<1 THEN390
640 FOR I=1 TO LEN(S$)
650 A1=A-(I-1):B1=B+I-1
660 GOSUB 1910
670 GOSUB 1930
680 IF L$=B$ OR L$=N1$ THEN 700
690 GOTO 390
700 NEXT I
710 FOR I=1 TO LEN(S$)
720 GOSUB 1910
730 A$(A-(I-1),B+I-1)=N1$
740 NEXT I
750 GOTO 320
760 IF A-Z<1 THEN 390
770 FOR I=1 TO LEN(S$)
780 A1=A-(I-1):B1=B
790 GOSUB 1910
800 GOSUB 1930
810 IF L$=B$ OR L$=N1$ THEN 830
820 GOTO 390
830 NEXT I
840 FOR I=1 TO LEN(S$)
850 GOSUB 1910
860 A$(A-(I-1),B)=N1$
870 NEXT I
880 GOTO320
890 IF A-Z<1 OR B-Z<1 THEN390
900 FOR I=1 TO LEN(S$)
910 A1=A-(I-1):B1=B-(I-1)
920 GOSUB 1910
930 GOSUB 1930
940 IF L$=B$ OR L$=N1$ THEN960
950 GOTO 390
960 NEXT I
970 FOR I=1 TO LEN(S$)
980 GOSUB 1910
990 A$(A-(I-1),B-(I-1))=N1$
1000 NEXT I
1010 GOTO 320
1020 IF B-Z<1 THEN 390
1030 FOR I=1 TO LEN(S$)
1040 A1=A:B1=B-(I-1)
1050 GOSUB 1910
1060 GOSUB 1930
1070 IF L$=B$ OR L$=N1$ THEN 1090
1080 GOTO 390
1090 NEXT I
1100 FOR I=1 TO LEN(S$)
1110 GOSUB 1910
1120 A$(A,B-(I-1))=N1$
1130 NEXT I
1140 GOTO 320
1150 IF A+Z>X OR B-Z<1 THEN390
1160 FOR I=1 TO LEN(S$)
1170 A1=A+I-1:B1=B-(I-1)
1180 GOSUB 1910
1190 GOSUB 1930
1200 IF L$=N1$ OR L$=B$ THEN1220
1210 GOTO390
1220 NEXT I
1230 FOR I=1 TO LEN(S$)
1240 GOSUB 1910
1250 A$(A+I-1,B-(I-1))=N1$
1260 NEXT I
1270 GOTO320
1280 IF A+Z>X THEN 390
1290 FOR I=1 TO LEN(S$)
1300 A1=A+I-1:B1=B
1310 GOSUB 1910
1320 GOSUB 1930
1330 IF L$=N1$ OR L$=B$ THEN1350
1340 GOTO 390
1350 NEXT I
1360 FOR I=1 TO LEN(S$)
1370 GOSUB 1910
1380 A$(A+I-1,B)=N1$
1390 NEXT I
1400 GOTO 320
1410 IF A+Z>X OR B+Z>Y THEN390
1420 FOR I=1 TO LEN(S$)
1430 A1=A+I-1:B1=B+I-1
1440 GOSUB 1910
1450 GOSUB 1930
1460 IF L$=B$ OR L$=N1$ THEN 1480
1470 GOTO 390
1480 NEXT I
1490 FOR I=1 TO LEN(S$)
1500 GOSUB 1910
1510 A$(A+I-1,B+I-1)=N1$
1520 NEXT I
1530 GOTO320
1540 A=INT(X*RND(8)+1)
1550 B=INT(Y*RND(8)+1)
1560 D=INT(8*RND(5)+1)
1570 RETURN
1580 NEXT I1
1590 GOTO 1610
1600 FOR I=1TOX:FORJ=1TOY:PRINTA$(I,J);" ";:NEXTJ:PRINT:NEXTI
1610 FOR I=1 TO 5:PRINT:NEXT I
1620 PRINT"THE";N;"HIDDEN WORDS ARE":PRINT
1630 Z=2:FORI=1TON:PRINTTAB(Z);N$(I);:Z=Z+18:IFZ>60 THENZ=2:PRINT
1640 NEXT I:PRINT:PRINT:PRINT
1650 FOR I=1 TO X
1660 FOR J=1 TO Y
1670 IF A$(I,J)=B$ THEN 1770
1680 PRINT A$(I,J);" ";
1690 NEXT J
1700 PRINT
1710 NEXT I
1720 PRINT
1730 GOSUB 1800
1740 PRINT
1750 GOTO 240
1760 END
1770 A$(I,J)=CHR$(INT(26*RND(1)+65))
1780 GOTO 1680
1790 PRINT
1800 REM
1810 AN=1
1820 PRINT "THE HIDDEN WORDS ARE LOCATED AT"
1830 FOR K=1 TO N
1840 PRINT N$(K);
1850 IF AN=0 THEN PRINT: GOTO 1880
1860 PRINT TAB(30);L(K,1);",";L(K,2);",";L(K,3);
1870 PRINT ",";L(K,4)
1880 NEXT K
1890 RETURN
1900 END
1910 N1$=MID$(S$,I,1)
1920 RETURN
1930 L$=A$(A1,B1):RETURN
1940 FORI=1TOX:FORJ=1TOY:A$(I,J)=B$:NEXT J,I
1950 RETURN
1960 FOR I=1 TO N
1970 PRINT"WORD #";I;
1980 INPUT N$(I)
1990 IF LEN(N$(I))>U0 THEN1970
2000 NEXT I
2010 RETURN
2020 IF N<3 THEN GOTO240
2030 FOR J=2 TO (N-1)
2040 L=0:M=0
2050 FOR I=J TO N
2060 IF LEN(N$(I))>L THEN L=LEN(N$(I)):M=I
2070 NEXT I
2080 T$=N$(M)
2090 FOR I=(M-1)TO J STEP -1
2100 N$(I+1)=N$(I)
2110 NEXT I
2120 N$(J)=T$
2130 NEXT J
2140 GOTO 230
2150 INPUT"INPUT FROM TAPE";T$:IF LEFT$(T$,1)="N" THEN GOTO210
2160 PRINT CHR$(17):REM TAPE READER ON
2170 FOR I=1 TO N
2180 INPUT N$(I)
2190 NEXT I
2200 PRINT CHR$(19):REM TAPE READER OFF
2210 GOTO 2020
2220 NULL6
2230 PRINT CHR$(18);:REM TAPE PUNCH ON
2240 FOR I=1TO75:PRINT CHR$(0);:NEXT I:REM LEADER
2250 FOR I=1TON:PRINTN$(I):NEXT I
2260 FOR I=1TO75:PRINT CHR$(0);:NEXT I:PRINT CHR$(20)
2270 NULL0:GOTO240