100 REM CONVERTED TO U1106 DEC. 3, 1971 BY T.EDWARDS 110 REM NAME--1QUEEN 120 REM 130 REM DESCRIPTION--PLAYS GAME BASED ON CHESS MOVES. 140 REM 150 REM SOURCE--UNKNOWN 160 REM MODIFIED AUGUST 1970 BY RICHARD HART 170 REM 180 REM INSTRUCTIONS--TYPE "RUN" AND FOLLOW INSTRUCTIONS. 190 REM 200 REM 210 REM * * * * * * MAIN PROGRAM * * * * * * * 220 REM 230 PRINT "DO YOU WISH INSTRUCTIONS"; 240 DIM S(64),T(158) 250 FOR I = 1 TO 64 260 X = (INT((I-1)/8)+1)*11+(I-INT((I-1)/8)*8-1)*10 270 S(I) = X 280 T(X) = I 290 NEXT I 300 INPUT W$ 310 IF W$="NO" THEN 370 320 IF W$="YES" THEN 350 330 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO"; 340 GOTO 300 350 GOSUB 1590 360 GOTO 380 370 GOSUB 1750 380 REM ERROR CHECKS. 390 PRINT "WHERE WOULD YOU LIKE TO START"; 400 INPUT M1 410 IF M1 < 1 THEN 590 420 IF M1 > 64 THEN 480 430 M1 = S(M1) 440 T1 = INT(M1/10) 450 U1 = M1 - 10*T1 460 IF U1 = 1 THEN 520 470 IF U1 = T1 THEN 520 480 PRINT "PLEASE READ THE DIRECTIONS AGAIN." 490 PRINT "YOU HAVE BEGUN ILLEGALLY." 500 PRINT 510 GOTO 390 520 GOSUB 780 530 PRINT "MACHINE MOVES TO SQUARE";T(M) 540 IF M = 158 THEN 1330 550 PRINT "WHAT IS YOUR MOVE"; 560 INPUT M1 570 IF M1 > 64 THEN 600 580 IF M1 >0 THEN 640 590 IF M1 < 0 THEN 480 600 PRINT 610 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT." 620 PRINT 630 GOTO 1490 640 M1 = S(M1) 650 IF M1 <= M THEN 1200 660 T1 = INT(M1/10) 670 U1 = M1 - 10*T1 680 P = U1 - U 690 IF P <> 0 THEN 730 700 L = T1 - T 710 IF L <= 0 THEN 1200 720 GOTO 520 730 IF T1 - T <> P THEN 750 740 GOTO 520 750 IF T1 - T <> 2*P THEN 1200 760 GOTO 520 770 REM LOCATE MOVE FOR MACHINE. 780 IF M1 = 41 THEN 1010 790 IF M1 = 44 THEN 1010 800 IF M1 = 73 THEN 1010 810 IF M1 = 75 THEN 1010 820 IF M1 = 126 THEN 1010 830 IF M1 = 127 THEN 1010 840 IF M1 = 158 THEN 1240 850 C = 0 860 FOR K = 7 TO 1 STEP -1 870 U = U1 880 T = T1 + K 890 GOSUB 1390 900 IF C = 1 THEN 990 910 U = U + K 920 GOSUB 1390 930 IF C = 1 THEN 990 940 T = T + K 950 GOSUB 1390 960 IF C = 1 THEN 990 970 NEXT K 980 GOTO 1010 990 C = 0 1000 RETURN 1010 GOSUB 1040 1020 RETURN 1030 REM RANDOM MOVE. 1040 Z=RND(1) 1050 IF Z > .6 THEN 1150 1060 IF Z > .3 THEN 1110 1070 U = U1 1080 T = T1 + 1 1090 M = 10*T + U 1100 RETURN 1110 U = U1 + 1 1120 T = T1 + 2 1130 M = 10*T + U 1140 RETURN 1150 U = U1 + 1 1160 T = T1 + 1 1170 M = 10*T + U 1180 RETURN 1190 REM ILLEGAL MOVE MESSAGE. 1200 PRINT 1210 PRINT "Y O U C H E A T . . . TRY AGAIN"; 1220 GOTO 560 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 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 C = 1 1470 GOTO 1450 1480 REM ANOTHER GAME? 1490 PRINT "ANYONE ELSE CARE TO TRY"; 1500 INPUT Q$ 1510 PRINT 1520 IF Q$="YES" THEN390 1530 IF Q$="NO" THEN 1560 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO"; 1550 GOTO 1500 1560 PRINT "OK - - THANKS AGAIN." 1570 STOP 1580 REM DIRECTIONS, ETC. . . 1590 PRINT "WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS MOVES." 1600 PRINT "OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE RIGHT," 1610 PRINT "DOWN, AND DIAGONALLY DOWN TO THE RIGHT." 1620 PRINT 1630 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE" 1640 PRINT "LOWER RIGHT-HAND SQUARE BY ALTERNATING MOVES BETWEEN" 1650 PRINT "YOU AND THE MACHINE/ THE FIRST ONE TO PLACE THE QUEEN" 1660 PRINT "THERE, WINS. REMEMBER THAT WE ARE ONLY PLAYING WITH" 1670 PRINT "ONE QUEEN. THAT IS, WE ARE BOTH MOVING THE SAME QUEEN." 1680 PRINT 1690 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE" 1700 PRINT "SQUARES ON THE TOP ROW OR THE LEFT-HAND COLUMN." 1710 PRINT "THAT WILL BE YOUR FIRST MOVE." 1720 PRINT "WE WILL THEN ALTERNATE MOVES." 1730 PRINT "YOU MAY FORFEIT ANY TIME BY TYPING - 0 - AS YOU MOVE!" 1740 PRINT "BESURE TO HIT THE RETURN KEY AFTER EACH RESPONSE." 1750 PRINT 1760 FOR A = 0 TO 7 1770 FOR B = 1 TO 8 1780 I = 8*A + B 1790 PRINT TAB(6*(B-1)+1);I; 1800 NEXT B 1810 PRINT 1820 PRINT 1830 PRINT 1840 NEXT A 1850 PRINT 1860 RETURN 1870 END TAB(6*(B-1)+1);I; 1800 NEXT B 1810 PRINT 1820 PRINT 1830 PRINT 1840 NEXT A 1850 PRINT