100 REM .. QUEEN.ECB LAST MOD. 2-21-81 R.E.H. 110 DIM S(64),T(158) 120 REM ...DESCRIPTION--PLAYS GAME BASED ON CHESS MOVES. 140 REM ...MODIFIED AUGUST 1970 BY RICHARD HART 150 REM -- CONVERTED TO U1106 12-3-71 BY T.EDWARDS 190 PRINT "&K" 200 PRINT 201 PRINT " *** CHESSBOARD GAME VARIATION ***" 202 PRINT " *** Q U E E N ***" 203 PRINT " *** .......................... ***&J&J" 210 PRINT "Do you wish instructions ( Y or N ) ---=>"; 220 INPUT (1,0)I$: LET I$=I$+"N" 230 IF I$(1,1)="N" THEN GOSUB 1740 240 IF I$(1,1)="n" THEN GOSUB 1740 250 IF I$(1,1)="Y" THEN GOSUB 1590 260 IF I$(1,1)="y" THEN GOSUB 1590 270 IF I$="NO" THEN 300 280 PRINT " INCORRECT ANSWER. Please type YES or NO.&J" 290 GOTO 210 300 FOR I=1 TO 64 310 LET X=(INT((I-1)/8)+1)*11+(I-INT((I-1)/8)*8-1)*10 320 LET S(I)=X,T(X)=I 330 NEXT I 340 GOTO 440 400 LET Z=0 410 GOSUB 1740 430 REM ====== ERROR CHECKS. 440 INPUT (2,0)"WHERE WOULD YOU LIKE TO START ---=>",N 450 LET Z=N 460 IF N<1 THEN 610 462 IF N>64 THEN 510 465 LET N=S(N) 470 LET S=INT(N/10) 480 LET V=N-10*S 490 IF V=1 THEN 550 500 IF V=S THEN 550 510 PRINT "PLEASE READ THE DIRECTIONS AGAIN." 520 PRINT "YOU HAVE BEGUN ILLEGALLY." 530 PRINT 540 GOTO 440 550 GOSUB 780: GOSUB 1740 560 PRINT "MACHINE MOVES TO SQUARE";T(M) 570 IF M=158 THEN 1330 580 INPUT (2,0)"WHAT IS YOUR MOVE ---=>",N 600 IF N>64 THEN 612 602 IF N>0 THEN 645 610 IF N<0 THEN 510 612 PRINT 620 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT." 630 PRINT 640 GOTO 1490 645 LET N=S(N) 650 IF N<=M THEN 1200 660 LET S=INT(N/10) 670 LET V=N-10*S 680 LET P=V-U 690 IF P<>0 THEN 730 700 LET L=S-T 710 IF L<=0 THEN 1200 720 GOTO 550 730 IF S-T<>P THEN 750 740 GOTO 550 750 IF S-T<>2*P THEN 1200 760 GOTO 550 770 REM ====== LOCATE MOVE FOR MACHINE. 780 IF N=41 THEN 1010 790 IF N=44 THEN 1010 800 IF N=73 THEN 1010 810 IF N=75 THEN 1010 820 IF N=126 THEN 1010 830 IF N=127 THEN 1010 840 IF N=158 THEN 1240 850 LET C=0 860 FOR K=7 TO 1 STEP -1 870 LET U=V 880 LET T=S+K 890 GOSUB 1390 900 IF C=1 THEN 990 910 LET U=U+K 920 GOSUB 1390 930 IF C=1 THEN 990 940 LET T=T+K 950 GOSUB 1390 960 IF C=1 THEN 990 970 NEXT K 980 GOTO 1010 990 LET C=0 1000 LET Z=T(M): RETURN 1010 GOSUB 1040 1020 RETURN 1030 REM ====== RANDOM MOVE. 1040 LET Z=RND(0) 1050 IF Z>.6 THEN 1150 1060 IF Z>.3 THEN 1110 1070 LET U=V 1080 LET T=S+1 1090 LET M=10*T+U 1100 LET Z=T(M): RETURN 1110 LET U=V+1 1120 LET T=S+2 1130 LET M=10*T+U 1140 LET Z=T(M): RETURN 1150 LET U=V+1 1160 LET T=S+1 1170 LET M=10*T+U 1180 LET Z=T(M): RETURN 1190 REM ====== ILLEGAL MOVE MESSAGE. 1200 PRINT 1210 PRINT "Y O U C H E A T . . . TRY AGAIN." 1220 GOTO 580 1230 REM ====== PLAYER WINS. 1240 PRINT 1250 PRINT "C O N G R A T U L A T I O N S . . . " 1260 PRINT 1270 PRINT "YOU HAVE WON--VERY WELL PLAYED." 1280 PRINT "IT LOOKS LIKE I HAVE MET MY MATCH." 1290 PRINT "THANKS FOR PLAYING--I CANNOT WIN ALL THE TIME." 1300 PRINT 1310 GOTO 1490 1320 REM ====== MACHINE WINS. 1330 PRINT 1340 PRINT "NICE TRY, BUT IT LOOKS LIKE I HAVE WON." 1350 PRINT "THANKS FOR PLAYING." 1360 PRINT 1370 GOTO 1490 1380 REM ====== TEST FOR MACHINE MOVE. 1390 LET M=10*T+U 1400 IF M=158 THEN 1460 1410 IF M=127 THEN 1460 1420 IF M=126 THEN 1460 1430 IF M=75 THEN 1460 1440 IF M=73 THEN 1460 1450 RETURN 1460 LET C=1 1470 GOTO 1450 1480 REM ====== ANOTHER GAME? 1490 PRINT "ANYONE ELSE CARE TO TRY ---=>"; 1500 INPUT (1,0)I$: LET I$=I$+"Y" 1510 PRINT 1520 IF I$(1,1)="Y" THEN 400 1530 IF I$(1,1)="y" THEN 400 1560 PRINT "OK-- THANKS AGAIN.&J" 1570 GOTO 1900 1580 REM ====== DIRECTIONS, ETC. . . 1590 PRINT "&J WE ARE GOING TO PLAY A GAME BASED ON ONE" 1595 PRINT " OF THE CHESS MOVES. OUR QUEEN" 1600 PRINT " WILL BE ABLE TO MOVE ONLY TO THE RIGHT," 1610 PRINT " DOWN, AND DIAGONALLY DOWN TO THE RIGHT." 1620 GOSUB 1855 1630 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE" 1635 PRINT " QUEEN IN THE LOWER RIGHT-HAND SQUARE BY" 1640 PRINT " ALTERNATING MOVES BETWEEN YOU AND THE" 1650 PRINT " MACHINE. THE FIRST ONE TO PLACE THE QUEEN" 1660 PRINT " THERE, WINS. REM EMBER......." 1662 PRINT " THAT WE ARE ONLY PLAYING WITH ONE QUEEN." 1665 PRINT " THAT IS,... WE ARE BOTH MOVING THE SAME QUEEN." 1670 GOSUB 1855 1680 PRINT " YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF" 1690 PRINT " THE SQUARES ON THE TOP ROW OR THE LEFT-HAND" 1700 PRINT " COLUMN. THAT WILL BE YOUR FIRST MOVE." 1710 PRINT " WE WILL THEN ALTERNATE MOVES." 1720 PRINT " YOU MAY FORFEIT ANY TIME BY TYPING IN" 1725 PRINT " '0' AS YOUR MOVE ! BESURE TO HIT" 1730 PRINT " THE (Return) KEY AFTER EACH RESPONSE." 1735 GOSUB 1855 1740 PRINT "&K&J" 1750 FOR A=0 TO 7 1760 FOR B=1 TO 8 1770 LET I=8*A+B 1780 PRINT TAB(6*(B-1)+1); 1785 IF I=Z THEN PRINT "Queen"; ELSE PRINT I; 1790 NEXT B 1800 PRINT 1830 NEXT A 1840 PRINT : LET I$="NO" 1850 RETURN 1855 PRINT "&J----- Hit the (RETURN) key to see more ---=> "; 1856 INPUT (1,0)Z$: PRINT : RETURN 1860 REM ====== VARIBLES USED: A B C I K L M N 1870 REM ====== P S T U V X Z 1880 REM ====== I$ 1900 END