home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug055.arc / IQUEEN.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  5KB  |  185 lines

  1. 100 REM CONVERTED TO U1106 DEC. 3, 1971 BY T.EDWARDS
  2. 110 REM   NAME--1QUEEN  
  3. 120 REM 
  4. 130 REM   DESCRIPTION--PLAYS GAME BASED ON CHESS MOVES. 
  5. 140 REM 
  6. 150 REM   SOURCE--UNKNOWN   
  7. 160 REM   MODIFIED AUGUST 1970 BY RICHARD HART  
  8. 170 REM 
  9. 180 REM   INSTRUCTIONS--TYPE "RUN" AND FOLLOW INSTRUCTIONS. 
  10. 190 REM 
  11. 200 REM 
  12. 210 REM   *  *  *  *  *  *   MAIN PROGRAM  *  *  *  *  *  *  *  
  13. 220 REM 
  14. 230 PRINT "DO YOU WISH INSTRUCTIONS";   
  15. 240 DIM S(64),T(158)
  16. 250 FOR I = 1 TO 64 
  17. 260 X = (INT((I-1)/8)+1)*11+(I-INT((I-1)/8)*8-1)*10 
  18. 270 S(I) = X
  19. 280 T(X) = I
  20. 290 NEXT I  
  21. 300 INPUT W$
  22. 310 IF W$="NO" THEN 370 
  23. 320 IF W$="YES" THEN 350
  24. 330 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO"; 
  25. 340 GOTO 300
  26. 350 GOSUB 1590  
  27. 360 GOTO 380
  28. 370 GOSUB 1750  
  29. 380 REM ERROR CHECKS.   
  30. 390 PRINT "WHERE WOULD YOU LIKE TO START";  
  31. 400 INPUT M1
  32. 410 IF M1 < 1 THEN 590  
  33. 420 IF M1 > 64 THEN 480 
  34. 430 M1 = S(M1)  
  35. 440 T1 = INT(M1/10) 
  36. 450 U1 = M1 - 10*T1 
  37. 460 IF U1 = 1 THEN 520  
  38. 470 IF U1 = T1 THEN 520 
  39. 480 PRINT "PLEASE READ THE DIRECTIONS AGAIN."   
  40. 490 PRINT "YOU HAVE BEGUN ILLEGALLY."   
  41. 500 PRINT   
  42. 510 GOTO 390   
  43. 520 GOSUB 780   
  44. 530 PRINT "MACHINE MOVES TO SQUARE";T(M)
  45. 540 IF M = 158 THEN 1330
  46. 550 PRINT "WHAT IS YOUR MOVE";  
  47. 560 INPUT M1
  48. 570 IF M1 > 64 THEN 600 
  49. 580 IF M1 >0 THEN 640   
  50. 590 IF M1 < 0 THEN 480  
  51. 600 PRINT   
  52. 610 PRINT "IT LOOKS LIKE I HAVE WON BY FORFEIT."
  53. 620 PRINT   
  54. 630 GOTO 1490  
  55. 640 M1 = S(M1)  
  56. 650 IF M1 <= M THEN 1200
  57. 660 T1 = INT(M1/10) 
  58. 670 U1 = M1 - 10*T1 
  59. 680 P = U1 - U  
  60. 690 IF P <> 0 THEN 730  
  61. 700 L = T1 - T  
  62. 710 IF L <= 0 THEN 1200 
  63. 720 GOTO 520   
  64. 730 IF T1 - T <> P THEN 750 
  65. 740 GOTO 520   
  66. 750 IF T1 - T <> 2*P THEN 1200  
  67. 760 GOTO 520   
  68. 770 REM LOCATE MOVE FOR MACHINE.
  69. 780 IF M1 = 41 THEN 1010
  70. 790 IF M1 = 44 THEN 1010
  71. 800 IF M1 = 73 THEN 1010
  72. 810 IF M1 = 75 THEN 1010
  73. 820 IF M1 = 126 THEN 1010   
  74. 830 IF M1 = 127 THEN 1010   
  75. 840 IF M1 = 158 THEN 1240   
  76. 850 C = 0   
  77. 860 FOR K = 7 TO 1 STEP -1  
  78. 870 U = U1  
  79. 880 T = T1 + K  
  80. 890 GOSUB 1390  
  81. 900 IF C = 1 THEN 990   
  82. 910 U = U + K   
  83. 920 GOSUB 1390  
  84. 930 IF C = 1 THEN 990   
  85. 940 T = T + K   
  86. 950 GOSUB 1390  
  87. 960 IF C = 1 THEN 990   
  88. 970 NEXT K  
  89. 980 GOTO 1010  
  90. 990 C = 0   
  91. 1000 RETURN 
  92. 1010 GOSUB 1040 
  93. 1020 RETURN 
  94. 1030 REM RANDOM MOVE.   
  95. 1040 Z=RND(1)   
  96. 1050 IF Z > .6 THEN 1150
  97. 1060 IF Z > .3 THEN 1110
  98. 1070 U = U1 
  99. 1080 T = T1 + 1 
  100. 1090 M = 10*T + U   
  101. 1100 RETURN 
  102. 1110 U = U1 + 1 
  103. 1120 T = T1 + 2 
  104. 1130 M = 10*T + U   
  105. 1140 RETURN 
  106. 1150 U = U1 + 1 
  107. 1160 T = T1 + 1 
  108. 1170 M = 10*T + U   
  109. 1180 RETURN 
  110. 1190 REM ILLEGAL MOVE MESSAGE.  
  111. 1200 PRINT  
  112. 1210 PRINT "Y O U   C H E A T . . . TRY AGAIN"; 
  113. 1220 GOTO 560  
  114. 1230 REM PLAYER WINS.   
  115. 1240 PRINT  
  116. 1250 PRINT "C O N G R A T U L A T I O N S . . . "   
  117. 1260 PRINT  
  118. 1270 PRINT "YOU HAVE WON--VERY WELL PLAYED."
  119. 1280 PRINT "IT LOOKS LIKE I HAVE MET MY MATCH." 
  120. 1290 PRINT "THANKS FOR PLAYING--I CANNOT WIN ALL THE TIME." 
  121. 1300 PRINT  
  122. 1310 GOTO 1490 
  123. 1320 REM MACHINE WINS.  
  124. 1330 PRINT  
  125. 1340 PRINT "NICE TRY, BUT IT LOOKS LIKE I HAVE WON."
  126. 1350 PRINT "THANKS FOR PLAYING."
  127. 1360 PRINT  
  128. 1370 GOTO 1490 
  129. 1380 REM TEST FOR MACHINE MOVE. 
  130. 1390 M = 10*T + U   
  131. 1400 IF M = 158 THEN 1460   
  132. 1410 IF M = 127 THEN 1460   
  133. 1420 IF M = 126 THEN 1460   
  134. 1430 IF M = 75 THEN 1460
  135. 1440 IF M = 73 THEN 1460
  136. 1450 RETURN 
  137. 1460 C = 1  
  138. 1470 GOTO 1450 
  139. 1480 REM ANOTHER GAME?  
  140. 1490 PRINT "ANYONE ELSE CARE TO TRY";   
  141. 1500 INPUT Q$   
  142. 1510 PRINT  
  143. 1520 IF Q$="YES" THEN390
  144. 1530 IF Q$="NO" THEN 1560   
  145. 1540 PRINT "INCORRECT ANSWER. PLEASE TYPE YES OR NO";   
  146. 1550 GOTO 1500  
  147. 1560 PRINT "OK - - THANKS AGAIN."   
  148. 1570 STOP   
  149. 1580 REM DIRECTIONS, ETC. . .   
  150. 1590 PRINT "WE ARE GOING TO PLAY A GAME BASED ON ONE OF THE CHESS MOVES."   
  151. 1600 PRINT "OUR QUEEN WILL BE ABLE TO MOVE ONLY TO THE RIGHT,"  
  152. 1610 PRINT "DOWN, AND DIAGONALLY DOWN TO THE RIGHT."
  153. 1620 PRINT  
  154. 1630 PRINT "THE OBJECT OF THE GAME IS TO PLACE THE QUEEN IN THE"
  155. 1640 PRINT "LOWER RIGHT-HAND SQUARE BY ALTERNATING MOVES BETWEEN"   
  156. 1650 PRINT "YOU AND THE MACHINE/  THE FIRST ONE TO PLACE THE QUEEN" 
  157. 1660 PRINT "THERE, WINS.  REMEMBER THAT WE ARE ONLY PLAYING WITH"   
  158. 1670 PRINT "ONE QUEEN.  THAT IS, WE ARE BOTH MOVING THE SAME QUEEN."
  159. 1680 PRINT  
  160. 1690 PRINT "YOU GO FIRST AND PLACE THE QUEEN IN ANY ONE OF THE" 
  161. 1700 PRINT "SQUARES ON THE TOP ROW OR THE LEFT-HAND COLUMN."
  162. 1710 PRINT "THAT WILL BE YOUR FIRST MOVE."  
  163. 1720 PRINT "WE WILL THEN ALTERNATE MOVES."  
  164. 1730 PRINT "YOU MAY FORFEIT ANY TIME BY TYPING  - 0 -  AS YOU MOVE!"
  165. 1740 PRINT "BESURE TO HIT THE RETURN KEY AFTER EACH RESPONSE."  
  166. 1750 PRINT  
  167. 1760 FOR A = 0 TO 7 
  168. 1770 FOR B = 1 TO 8 
  169. 1780 I = 8*A + B
  170. 1790 PRINT TAB(6*(B-1)+1);I;
  171. 1800 NEXT B 
  172. 1810 PRINT  
  173. 1820 PRINT  
  174. 1830 PRINT  
  175. 1840 NEXT A 
  176. 1850 PRINT  
  177. 1860 RETURN 
  178. 1870 END
  179. TAB(6*(B-1)+1);I;
  180. 1800 NEXT B 
  181. 1810 PRINT  
  182. 1820 PRINT  
  183. 1830 PRINT  
  184. 1840 NEXT A 
  185. 1850 PRINT