ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

175 lines
3.9 KiB

  1. 2 PRINT TAB(30);"TIC-TAC-TOE"
  2. 4 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
  3. 6 PRINT
  4. : PRINT
  5. : PRINT
  6. 8 PRINT "THE BOARD IS NUMBERED:"
  7. 10 PRINT " 1 2 3"
  8. 12 PRINT " 4 5 6"
  9. 14 PRINT " 7 8 9"
  10. 16 PRINT
  11. : PRINT
  12. : PRINT
  13. 20 DIM SS(9)
  14. 50 INPUT"DO YOU WANT 'X' OR 'O'";C$
  15. 55 IF C$="X"THEN 475
  16. 57 IF C$="x" THEN 475
  17. 60 P$="O"
  18. : Q$="X"
  19. 100 G=-1
  20. : H=1
  21. : IF SS(5)<>0 THEN 103
  22. 102 SS(5)=-1
  23. : GOTO 195
  24. 103 IF SS(5)<>1 THEN 106
  25. 104 IF SS(1)<>0 THEN 110
  26. 105 SS(1)=-1
  27. : GOTO 195
  28. 106 IF SS(2)=1 AND SS(1)=0 THEN 181
  29. 107 IF SS(4)=1 AND SS(1)=0 THEN 181
  30. 108 IF SS(6)=1 AND SS(9)=0 THEN 189
  31. 109 IF SS(8)=1 AND SS(9)=0 THEN 189
  32. 110 IF G=1 THEN 112
  33. 111 GOTO 118
  34. 112 J=3*INT((M-1)/3)+1
  35. 113 IF 3*INT((M-1)/3)+1=M THEN
  36. : K=1
  37. : END IF
  38. 114 IF 3*INT((M-1)/3)+2=M THEN
  39. : K=2
  40. : END IF
  41. 115 IF 3*INT((M-1)/3)+3=M THEN
  42. : K=3
  43. : END IF
  44. 116 GOTO 120
  45. 118 FOR J=1 TO 7 STEP 3
  46. : FOR K=1 TO 3
  47. 120 IF SS(J)<>G THEN 130
  48. 122 IF SS(J+2)<>G THEN 135
  49. 126 IF SS(J+1)<>0 THEN 150
  50. 128 SS(J+1)=-1
  51. : GOTO 195
  52. 130 IF SS(J)=H THEN 150
  53. 131 IF SS(J+2)<>G THEN 150
  54. 132 IF SS(J+1)<>G THEN 150
  55. 133 SS(J)=-1
  56. : GOTO 195
  57. 135 IF SS(J+2)<>0 THEN 150
  58. 136 IF SS(J+1)<>G THEN 150
  59. 138 SS(J+2)=-1
  60. : GOTO 195
  61. 150 IF SS(K)<>G THEN 160
  62. 152 IF SS(K+6)<>G THEN 165
  63. 156 IF SS(K+3)<>0 THEN 170
  64. 158 SS(K+3)=-1
  65. : GOTO 195
  66. 160 IF SS(K)=H THEN 170
  67. 161 IF SS(K+6)<>G THEN 170
  68. 162 IF SS(K+3)<>G THEN 170
  69. 163 SS(K)=-1
  70. : GOTO 195
  71. 165 IF SS(K+6)<>0 THEN 170
  72. 166 IF SS(K+3)<>G THEN 170
  73. 168 SS(K+6)=-1
  74. : GOTO 195
  75. 170 GOTO 450
  76. 171 IF SS(3)=G AND SS(7)=0 THEN 187
  77. 172 IF SS(9)=G AND SS(1)=0 THEN 181
  78. 173 IF SS(7)=G AND SS(3)=0 THEN 183
  79. 174 IF SS(9)=0 AND SS(1)=G THEN 189
  80. 175 IF G=-1 THEN
  81. : G=1
  82. : H=-1
  83. : GOTO 110
  84. : END IF
  85. 176 IF SS(9)=1 AND SS(3)=0 THEN 182
  86. 177 FOR I=2 TO 9
  87. : IF SS(I)<>0 THEN 179
  88. 178 SS(I)=-1
  89. : GOTO 195
  90. 179 NEXT I
  91. 181 SS(1)=-1
  92. : GOTO 195
  93. 182 IF SS(1)=1 THEN 177
  94. 183 SS(3)=-1
  95. : GOTO 195
  96. 187 SS(7)=-1
  97. : GOTO 195
  98. 189 SS(9)=-1
  99. 195 PRINT
  100. : PRINT"THE COMPUTER MOVES TO..."
  101. 202 GOSUB 1000
  102. 205 GOTO 500
  103. 450 IF G=1 THEN 465
  104. 455 IF J=7 AND K=3 THEN 465
  105. 460 NEXT K
  106. : NEXT J
  107. 465 IF SS(5)=G THEN 171
  108. 467 GOTO 175
  109. 475 P$="X"
  110. : Q$="O"
  111. 500 PRINT
  112. : INPUT"WHERE DO YOU MOVE";M
  113. 502 IF M=0 THEN
  114. : PRINT"THANKS FOR THE GAME."
  115. : GOTO 2000
  116. : END IF
  117. 503 IF M>9 THEN 506
  118. 505 IF SS(M)=0 THEN 510
  119. 506 PRINT"THAT SQUARE IS OCCUPIED."
  120. : PRINT
  121. : PRINT
  122. : GOTO 500
  123. 510 G=1
  124. : SS(M)=1
  125. 520 GOSUB 1000
  126. 530 GOTO 100
  127. 1000 PRINT
  128. : FOR I=1 TO 9
  129. : PRINT" ";
  130. : IF SS(I)<>-1 THEN 1014
  131. 1012 PRINT Q$;" ";
  132. : GOTO 1020
  133. 1014 IF SS(I)<>0 THEN 1018
  134. 1016 PRINT" ";
  135. : GOTO 1020
  136. 1018 PRINT P$;" ";
  137. 1020 IF I<>3 AND I<>6 THEN 1050
  138. 1030 PRINT
  139. : PRINT"---+---+---"
  140. 1040 GOTO 1080
  141. 1050 IF I=9 THEN 1080
  142. 1060 PRINT"!";
  143. 1080 NEXT I
  144. : PRINT
  145. : PRINT
  146. : PRINT
  147. 1095 FOR I=1 TO 7 STEP 3
  148. 1100 IF SS(I)<>SS(I+1)THEN 1115
  149. 1105 IF SS(I)<>SS(I+2)THEN 1115
  150. 1110 IF SS(I)=-1 THEN 1350
  151. 1112 IF SS(I)=1 THEN 1200
  152. 1115 NEXT I
  153. : FOR I=1 TO 3
  154. : IF SS(I)<>SS(I+3)THEN 1150
  155. 1130 IF SS(I)<>SS(I+6)THEN 1150
  156. 1135 IF SS(I)=-1 THEN 1350
  157. 1137 IF SS(I)=1 THEN 1200
  158. 1150 NEXT I
  159. : FOR I=1 TO 9
  160. : IF SS(I)=0 THEN 1155
  161. 1152 NEXT I
  162. : GOTO 1400
  163. 1155 IF SS(5)<>G THEN 1170
  164. 1160 IF SS(1)=G AND SS(9)=G THEN 1180
  165. 1165 IF SS(3)=G AND SS(7)=G THEN 1180
  166. 1170 RETURN
  167. 1180 IF G=-1 THEN 1350
  168. 1200 PRINT"YOU BEAT ME!! GOOD GAME."
  169. : GOTO 2000
  170. 1350 PRINT"I WIN, TURKEY!!!"
  171. : GOTO 2000
  172. 1400 PRINT"IT'S A DRAW. THANK YOU."
  173. 2000 END