10 REM ANAGRAMMATIC
20 REM à H.WALWYN 30 MODE 1:BORDER 0:INK 0,0:INK 1,24:INK 2,20:INK 3,6:PAPER 0:PEN 3 35 FOR x=1 TO 7:WINDOW #1,1,40,1,25:NEXT 40 DIM B$(10),C$(10),Q(10) 50 REM 60 PEN 1: PRINT TAB(15): PRINT "ANAGRAMMATIC":PEN 3 70 LOCATE 1,5:PRINT"IF YOU ARE A CROSSWORD ADDICT YOU WILL KNOW THE PROBLEMS OF TYPING TO REARRANGELETTERS" 80 PRINT:PRINT"FOLLOW THE INSTRUCTIONS AND THEN SIT BACK AND WATCH THE SCREEN AS EVERY POSSIBLE COMBINATION RUNS UP BEFORE YOUR VERY EYES." 90 PRINT:PRINT"THE AIM IS NOT TO LOOK AT EVERY GROUP, BUT SIMPLY TO GLANCE AT THE SCREEN OCCASIONALLY AND YOU MAY WELL GET SOME INSPIRATION." 100 PRINT:PRINT"ALTERNATIVELY, PUT IN A PRINTER SUBROUTINE FOR COPY." 110 LOCATE 11,23:PEN 2:PRINT"PRESS ENTER TO START":PEN 3 120 IF INKEY$<>CHR$(13) THEN 120 ELSE CLS 130 LOCATE 14,2:PRINT CHR$(24)"ANAGRAMMATIC":PRINT CHR$(24) 140 LOCATE 1,5:PEN 2:PRINT"TYPE ONLY THOSE LETTERS WHICH ARE TO BE REARRANGED.": PEN 1 145 LOCATE 1,8: PEN 3:PRINT"DO NOT INPUT ANY LETTERS WHOSE POSITION IS KNOWN.";:PRINT:PEN 1 150 INPUT A$:IF A$="" THEN 150 160 PRINT 170 L=LEN(A$) 180 ERASE B$,C$,Q 190 DIM B$(L),C$(L),Q(L) 200 FOR X=1 TO L:B$(X)=" ":C$(X)=" ":NEXT 210 PRINT CHR$(24)"ARE ANY LETTERS/SPACES KNOWN? [Y OR N]?":PRINT CHR$(24) 220 Z$=INKEY$:IF Z$="" THEN 220 230 IF Z$="N" OR Z$="n" THEN K$=STRING$(L,"-"):W=L:GOTO 290 240 IF Z$<>"1" AND Z$<>"y" THEN 220 250 PEN 2:PRINT:PRINT"TYPE IN THE KNOWN ORDER AS PER EXAMPLE [ E.g. '---E-F -EE']":PEN 1 260 INPUT K$:W=L 270 T=0: FOR J=1 TO LEN(K$):IF MID$(K$,J ,1)="-" THEN T=T+1 280 NEXT J:IF T<>L THEN GOSUB 540:GOTO 260 290 PRINT STRING$(40,"-") 300 GOSUB 520 310 FOR J=W TO L 320 K=1 330 Q(K)=1 340 IF B$(Q(K))=" " THEN 450 350 C$(K)=B$(Q(K)):B$(Q(K))=" " 360 K=K+1 370 IF K<=J THEN 330 380 A=1 390 FOR S=1 TO LEN(K$) 400 IF MID$(K$,S,1)="-" THEN PRINT C$(A);:A=A+1:GOTO 420 410 PRINT MID$(K$,S,1); 420 NEXT S:PRINT, 430 K=J 440 B$(Q(K))=MID$(A$,Q(K),1) 450 Q(K)=Q(K)+1 460 IF Q(K)<=L THEN 340 470 K=K-1 480 IF K>=1 THEN 440 490 NEXT J 500 PEN 2:PRINT"THAT'S ALL! - PRESS [ENTER] TO RESTART. ":PEN 3:GOTO 120 510 STOP 520 FOR N=1 TO L 530 B$(N)=MID$(A$,N,1):NEXT:RETURN 540 PRINT:PRINT CHR$(24)" ERROR RE-TYPE.":PRINT CHR$(24):RETURN |