2 F$="**********":H$=SPACE$(39) 5 CLS:PRINT@95,F$:PRINT@135,"* ROTATE *" 7 PRINT@175,F$:PRINT 8 GOSUB880 10 DEFINT A-Z:DIMB(16),B$(16),C$(16):Z$=" ANY KEY to continue" 12 PRINT@201,"Instructions? (Y or N) "; 13 GOSUB600:IFA$="N"ORA$="n"THENPRINT"No.";:GOTO130 15 CLS:PRINT"IN THIS GAME THE BOARD IS LAID OUT AS" 20 PRINT"FOLLOWS:" 25 FOR I=1TO16:B(I)=I:NEXTI 30 GOSUB 700 40 PRINTZ$; 41 GOSUB600 45 CLS:PRINT"BOARD POSITIONS ARE OCCUPIED RANDOMLY" 46 PRINT "BY THE LETTERS A TO P. THE OBJECT OF" 50 PRINT"THE GAME IS TO ORDER THE LETTERS BY" 55 PRINT"ROTATING ANY FOUR LETTERS CLOCKWISE ONE" 56 PRINT"POSITION. YOU SPECIFY THE UPPER LEFT " 60 PRINT"POSITION OF THE FOUR YOU WISH TO ROTATE" 62 PRINT"ie.VALID MOVES ARE 1 THROUGH 9." 65 PRINT Z$; 67 GOSUB600 70 CLS:PRINT"CONSEQUENTLY, IF THE BOARD LOOKED LIKE:" 75 FOR I=1TO16:B$(I)=CHR$(I+64):NEXT:B$(2)="C":B$(3)="G" 80 B$(6)="B":B$(7)="F":GOSUB500:GOSUB700 81 PRINT" AND YOU ROTATED POSITION 2," 83 PRINTZ$; 85 GOSUB600 86 PRINT@0,"THE BOARD WOULD BE:";SPACE$(20) 88 GOSUB800 90 FOR I=2TO7:B$(I)=CHR$(I+64):NEXT:GOSUB500 91 PRINT@243,"AND YOU WOULD WIN!";SPACE$(18) 93 PRINTZ$; 95 GOSUB600:CLS:PRINT:PRINT 96 PRINT"More instructions? "; 97 GOSUB600:IFA$="N"ORA$="n"THENPRINT"No":GOTO135 100 CLS:PRINT"YOU ALSO GET ONE SPECIAL MOVE PER GAME" 101 PRINT"WHICH YOU MAY OR MAY NOT NEED. THE" 105 PRINT"SPECIAL MOVE ALLOWS YOU TO EXCHANGE ANY" 110 PRINT"TWO ADJACENT LETTERS. TO MAKE THIS MOVE" 115 PRINT"INPUT A AS YOUR MOVE AND YOU WILL" 116 PRINT"BE ASKED FOR THE POSITIONS OF THE TWO" 120 PRINT"LETTERS TO EXCHANGE. REMEMBER..." 125 PRINT" ONLY ONE SPECIAL MOVE PER GAME!!"; 127 GOSUB600 130 CLS:PRINT:PRINT"TO GIVE UP AT ANY TIME, HIT ." 135 PRINT" GOOD LUCK !"; 140 FORI=1TO16:B$(I)="0":NEXTI 145 GOSUB650 150 FORI=1TO16 160 T$=CHR$(INT(16*RND(1)+65)) 165 FORJ=1TOI 170 IFB$(J)=T$THEN160 175 NEXTJ 180 B$(I)=T$:NEXTI:M=0:S=0 185 CLS 190 PRINT@1," " 195 GOSUB700 196 IFM>0ANDL=0THENGOSUB800 197 GOSUB500 200 PRINT@243,"POSITION TO ROTATE --";:GOSUB880:GOSUB950 205 IFA$="*"THEN400 210 L=0 215 GOSUB800 220 M=M+1:T$=B$(I) 230 B$(I)=B$(I+4):B$(I+4)=B$(I+5):B$(I+5)=B$(I+1):B$(I+1)=T$ 240 GOSUB500 305 FORI=1TO16 310 IFB$(I)<>CHR$(I+64)THEN200 315 NEXTI 320 CLS:PRINT@243,"YOU ORDERED THE BOARD IN";M;" MOVES.":M1=M1+M:G=G+1 330 PRINT@283,"PLAY AGAIN? ";:GOSUB600:IFA$="Y"THENPRINT"Yes";:GOTO130 340 CLS:PRINT"YOU PLAYED";G;" GAMES AND ORDERED THE" 341 IFG>0THENPRINT"BOARD IN AN AVERAGE OF ";M1/G;" MOVES" 342 IFG=0THENPRINT"BOARD IN AN AVERAGE OF 0 MOVES" 350 PRINT"PER GAME.":PRINT:GOTO999 360 LINE (179,15)-(228,47),1,B:RETURN 370 LINE (179,15)-(228,47),1,BF:RETURN 400 IFS=1THENBEEP:PRINT@281,"ONLY ONE SPECIAL MOVE PER GAME.";:GOSUB910:GOTO200 403 GOSUB920:GOSUB880:GOSUB750 405 PRINT@241,"FIRST POS. ->";:INPUTX 406 PRINT@259,"SECOND POS. ->";:INPUTY 410 IFX<1ORY<1ORX>16ORY>16THENGOSUB900:GOSUB700:GOTO200 420 IFX<>Y+1ANDX<>Y-1ANDX<>Y+4ANDX<>Y-4THENGOSUB900:GOSUB700:GOTO200 430 S=1:L=1:GOSUB800 440 T$=B$(X):B$(X)=B$(Y):B$(Y)=T$ 450 GOSUB920 460 GOTO190 500 PRINT@97,B$(1)" "B$(2)" "B$(3)" "B$(4) 510 PRINT@137,B$(5)" "B$(6)" "B$(7)" "B$(8) 520 PRINT@177,B$(9)" "B$(10)" "B$(11)" "B$(12) 530 PRINT@217,B$(13)" "B$(14)" "B$(15)" "B$(16) 540 RETURN 600 A$=INKEY$:IFA$=""THEN 600 610 RETURN 650 S=VAL(RIGHT$(TIME$,2)) 660 FORW=1TOS:D=RND(1):NEXT 670 RETURN 700 GOSUB370 705 PRINT@110," 1 2 3 *" 710 PRINT@150," 4 5 6 *" 720 PRINT@190," 7 8 9 *" 730 PRINT@230," * * * *" 735 GOSUB360 740 RETURN 750 GOSUB370 755 PRINT@110," 1 2 3 4" 760 PRINT@150," 5 6 7 8" 770 PRINT@190," 9101112" 780 PRINT@230,"13141516" 790 GOSUB360 799 RETURN 800 FORU=1TO16 810 C$(U)=B$(U) 820 NEXT 830 PRINT@83,C$(1)" "C$(2)" "C$(3)" "C$(4) 840 PRINT@123,C$(5)" "C$(6)" "C$(7)" "C$(8) 850 PRINT@163,C$(9)" "C$(10)" "C$(11)" "C$(12) 860 PRINT@203,C$(13)" "C$(14)" "C$(15)" "C$(16) 870 RETURN 880 LINE(0,0)-(239,63),1,B 890 RETURN 900 BEEP:PRINT@282,"* * ILLEGAL * *"; 910 FORU=1TO2000:NEXT 920 PRINT@240,H$; 925 PRINT@280,H$; 930 RETURN 950 PRINT@264,"> "; 955 GOSUB600 960 IFA$=CHR$(27)THENPRINT"";:GOTO330 965 IFA$=CHR$(9)THENA$="*":GOTO990 970 IFA$<"1"ORA$>"9"THEN955 971 I=VAL(A$) 975 IFI>3ANDI<=6THENI=I+1:GOTO985 980 IFI>=7ANDI<=9THENI=I+2 985 PRINTA$; 990 RETURN 999 PRINT"GAME WILL END AT 0:":FORU=999TO0STEP-1:PRINT@215,U:NEXT:MENU