10 REM****** 20 REM* TOWERS 30 REM* WM V R SMITH 40 REM* ARTSCI 50 REM****** 60 GOSUB 800 70 CLS 80 GOSUB700 90 LINE(0,23)-(115,23),PSET 100 LOCATE0,0 110 PRINT" 1 2 3" 120 FOR X=1 TO3 130 LINE(PP(X),6)-(PP(X),23),PSET 140 NEXT 150 FL=1 160 GOSUB 460 170 FL=0 180 GOTO 190 190 LOCATE0,3 200 PRINT" "; 210 LOCATE0,3 220 PRINT"FROM:"; 230 F =VAL(INKEY$) 240 IF F=0 OR F>3 THEN 230 250 IF P(F)=0 THEN 230 260 PRINTF; 270 PRINT"TO:"; 280 T=VAL(INKEY$) 290 IF T=0 OR T>3 THEN 280 300 PRINT T; 310 IF R(P(T),T)>R(P(F),F) THEN 370 320 LOCATE0,3 330 PRINT"ILLEGAL MOVE "; 340 SOUND 2,5 350 FOR Z=1 TO 700:NEXT 360 GOTO 190 370 P(T)=P(T)+1 380 R(P(T),T)=R(P(F),F) 390 MT=MT+1 400 SOUND R(P(T),T),1 410 P(F)=P(F)-1 420 GOSUB 460 430 IF P(2)=8 OR P(3)=8 THEN 600 440 GOTO 190 450 END 460 FOR P=1 TO 3 470 C=1 480 IF FL=1 THEN Q=1:GOTO510 490 Q=P(P)-1 500 IF Q<1 THEN Q=1 510 FOR X=Q TO P(P)+1 520 C=1 530 IF X>P(P) THEN C=0 540 M=INT((23-(X*2))) 550 LINE(PP(P)-1,M)-(PP(P)-R(X,P)-1,M),PRESET,C 560 LINE(PP(P)+1,M)-(PP(P)+R(X,P)+1,M),PRESET,C 570 NEXT 580 NEXT 590 RETURN 600 LOCATE0,3 610 PRINT"YOU DID IT!! "; 620 C=1 630 FOR T=1 TO 8:SOUNDT,1:NEXT 640 C=C+1:IF C<4 THEN 630 650 LOCATE0,3 660 PRINT"IN ";MT;"MOVES!"; 670 COPY 680 RUN 690 END 700 FOR X=1 TO 8 710 FOR W=1 TO 3 720 T=9-X 730 R(X,W)=INT(((T*4)-2)/2) 740 NEXT W 750 NEXT 760 P(1)=8:P(2)=0:P(3)=0 770 PP(1)=17:PP(2)=52:PP(3)=87 780 R(0,1)=100:R(0,2)=100:R(0,3)=100 790 RETURN 800 CLS 810 PRINT"**TOWERS**" 820 PRINT"YOUR GOAL IS TO" 830 PRINT"MOVE 8 RINGS FROM" 840 PRINT"ONE POST TO "; 850 IF INKEY$="" THEN 850 860 CLS 870 PRINT"ANOTHER!." 880 PRINT"YOU CANNOT PLACE" 890 PRINT"A LARGE RING ON" 900 PRINT"A SMALL ONE."; 910 IF INKEY$="" THEN 910 920 RETURN