10 REM QUEEN.BS5 20 REM -- CONVERTED TO Univac 1106 MainFrame 12-3-71 BY T.EDWARDS 30 REM ====== LAST MOD. 6/23/77 R.E.H. 100 REM NAME--1QUEEN 110 REM 120 REM DESCRIPTION--PLAYS GAME BASED ON CHESS MOVES. 130 REM 140 REM SOURCE--UNKNOWN 141 REM MODIFIED AUGUST 1970 BY RICHARD HART 150 REM 160 REM -----TYPE "RUN" AND FOLLOW INSTRUCTIONS. 170 REM 180 REM 190 REM * * * * MAIN PROGRAM * * * * * 200 PRINT 201 PRINT " *** CHESSBOARD GAME VARIATION ***" 202 PRINT " *** Q U E E N ***" 203 PRINT 210 PRINT "DO YOU WISH INSTRUCTIONS" 220 REM ....RANDOMIZE 230 DIM S(64),T(158) 240 FOR I=1 TO 64 250 LET X=(INT((I-1)/8)+1)*11+(I-INT((I-1)/8)*8-1)*10 251 LET S(I)=X 252 LET T(X)=I 260 NEXT I 350 INPUT "### Enter: 1=yes 0=no ---=>"I9 360 IF I9=0 THEN 420 370 IF I9=1 THEN 400 380 PRINT " INCORRECT ANSWER. PLEASE TYPE YES OR NO"; 390 GOTO 350 400 GOSUB 1590 410 GOTO 430 420 GOSUB 1740 430 REM ====== ERROR CHECKS. 440 PRINT "WHERE WOULD YOU LIKE TO START"; 450 INPUT N 460 IF N<1 THEN 610 462 IF N>64 THEN 510 464 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 560 PRINT "MACHINE MOVES TO SQUARE ";T(M) 570 IF M=158 THEN 1330 580 PRINT "WHAT IS YOUR MOVE"; 590 INPUT 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 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 RETURN 1110 LET U=V+1 1120 LET T=S+2 1130 LET M=10*T+U 1140 RETURN 1150 LET U=V+1 1160 LET T=S+1 1170 LET 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 590 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 "### Enter 1=YES 0=NO ---=>"I9 1510 PRINT 1520 IF I9=1 THEN 440 1530 IF I9=0 THEN 1560 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO"; 1550 GOTO 1500 1560 PRINT "OK-- THANKS AGAIN." 1570 GOTO 1900 1580 REM ====== DIRECTIONS, ETC. . . 1590 PRINT " 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 PRINT 1622 PRINT 1625 PRINT "======= TYPE IN A '0' TO GO ON ====> "; 1626 INPUT I9 1627 PRINT 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. REMEMBER......." 1662 PRINT " THAT WE ARE ONLY PLAYING WITH ONE QUEEN." 1665 PRINT " THAT IS,... WE ARE BOTH MOVING THE SAME QUEEN." 1670 PRINT 1672 PRINT "======= TYPE IN A -C- TO GO ON ====> "; 1673 INPUT I9 1675 PRINT 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 XMIT KEY AFTER EACH RESPONSE." 1733 PRINT 1735 PRINT "======= TYPE IN A -C- TO GO ON ====> "; 1736 INPUT I9 1740 PRINT 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);I; 1790 NEXT B 1800 PRINT 1830 NEXT A 1840 PRINT 1850 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