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.
 
 
 
 
 
 

136 lines
3.4 KiB

  1. 1 PRINT TAB(33);"H-I-Q"
  2. 2 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
  3. 3 PRINT:PRINT:PRINT
  4. 4 DIM B(70),T(9,9)
  5. 5 PRINT "HERE IS THE BOARD:": PRINT
  6. 6 PRINT " ! ! !"
  7. 7 PRINT " 13 14 15": PRINT
  8. 8 PRINT " ! ! !"
  9. 9 PRINT " 22 23 24": PRINT
  10. 10 PRINT "! ! ! ! ! ! !"
  11. 11 PRINT "29 30 31 32 33 34 35": PRINT
  12. 12 PRINT "! ! ! ! ! ! !"
  13. 13 PRINT "38 39 40 41 42 43 44": PRINT
  14. 14 PRINT "! ! ! ! ! ! !"
  15. 15 PRINT "47 48 49 50 51 52 53": PRINT
  16. 16 PRINT " ! ! !"
  17. 17 PRINT " 58 59 60": PRINT
  18. 18 PRINT " ! ! !"
  19. 19 PRINT " 67 68 69": PRINT
  20. 20 PRINT "TO SAVE TYPING TIME, A COMPRESSED VERSION OF THE GAME BOARD"
  21. 22 PRINT "WILL BE USED DURING PLAY. REFER TO THE ABOVE ONE FOR PEG"
  22. 24 PRINT "NUMBERS. OK, LET'S BEGIN."
  23. 28 REM *** SET UP BOARD
  24. 29 FOR R=1 TO 9
  25. 30 FOR C=1 TO 9
  26. 31 IF (R-4)*(R-5)*(R-6)=0 THEN 40
  27. 32 IF (C-4)*(C-5)*(C-6)=0 THEN 40
  28. 35 T(R,C)=-5
  29. 36 GOTO 50
  30. 40 IF (R-1)*(C-1)*(R-9)*(C-9)=0 THEN 35
  31. 42 T(R,C)=5
  32. 50 NEXT C
  33. 60 NEXT R
  34. 65 T(5,5)=0: GOSUB 500
  35. 70 REM *** INPUT MOVE AND CHECK ON LEGALITY
  36. 75 FOR W=1 TO 33
  37. 77 READ M
  38. 79 DATA 13,14,15,22,23,24,29,30,31,32,33,34,35,38,39,40,41
  39. 81 DATA 42,43,44,47,48,49,50,51,52,53,58,59,60,67,68,69
  40. 83 B(M)=-7: NEXT W
  41. 86 B(41)=-3
  42. 100 INPUT "MOVE WHICH PIECE";Z
  43. 110 IF B(Z)=-7 THEN 140
  44. 120 PRINT "ILLEGAL MOVE, TRY AGAIN...": GOTO 100
  45. 140 INPUT "TO WHERE";P
  46. 150 IF B(P)=0 THEN 120
  47. 153 IF B(P)=-7 THEN 120
  48. 156 IF Z=P THEN 100
  49. 160 IF ((Z+P)/2)=INT((Z+P)/2) THEN 180
  50. 170 GOTO 120
  51. 180 IF (ABS(Z-P)-2)*(ABS(Z-P)-18)<>0 THEN 120
  52. 190 GOSUB 1000
  53. 200 GOSUB 500
  54. 210 GOSUB 1500
  55. 220 GOTO 100
  56. 500 REM *** PRINT BOARD
  57. 510 FOR X=1 TO 9
  58. 520 FOR Y=1 TO 9
  59. 525 IF (X-1)*(X-9)*(Y-1)*(Y-9)=0 THEN 550
  60. 530 IF (X-4)*(X-5)*(X-6)=0 THEN 570
  61. 540 IF (Y-4)*(Y-5)*(Y-6)=0 THEN 570
  62. 550 REM
  63. 560 GOTO 610
  64. 570 IF T(X,Y)<>5 THEN 600
  65. 580 PRINT TAB(Y*2);"!";
  66. 590 GOTO 610
  67. 600 PRINT TAB(Y*2);"O";
  68. 610 REM
  69. 615 NEXT Y
  70. 620 PRINT
  71. 630 NEXT X
  72. 640 RETURN
  73. 1000 REM *** UPDATE BOARD
  74. 1005 C=1: FOR X=1 TO 9
  75. 1020 FOR Y=1 TO 9
  76. 1030 IF C<>Z THEN 1220
  77. 1040 IF C+2<>P THEN 1080
  78. 1045 IF T(X,Y+1)=0 THEN 120
  79. 1050 T(X,Y+2)=5
  80. 1060 T(X,Y+1)=0: B(C+1)=-3
  81. 1070 GOTO 1200
  82. 1080 IF C+18<>P THEN 1130
  83. 1085 IF T(X+1,Y)=0 THEN 120
  84. 1090 T(X+2,Y)=5: T(X+1,Y)=0: B(C+9)=-3
  85. 1120 GOTO 1200
  86. 1130 IF C-2<>P THEN 1170
  87. 1135 IF T(X,Y-1)=0 THEN 120
  88. 1140 T(X,Y-2)=5: T(X,Y-1)=0: B(C-1)=-3
  89. 1160 GOTO 1200
  90. 1170 IF C-18<>P THEN 1220
  91. 1175 IF T(X-1,Y)=0 THEN 120
  92. 1180 T(X-2,Y)=5: T(X-1,Y)=0: B(C-9)=-3
  93. 1200 B(Z)=-3: B(P)=-7
  94. 1210 T(X,Y)=0: GOTO 1240
  95. 1220 C=C+1
  96. 1225 NEXT Y
  97. 1230 NEXT X
  98. 1240 RETURN
  99. 1500 REM*** CHECK IF GAME IS OVER
  100. 1505 F=0
  101. 1510 FOR R=2 TO 8
  102. 1520 FOR C=2 TO 8
  103. 1530 IF T(R,C)<>5 THEN 1580
  104. 1535 F=F+1
  105. 1540 FOR A=R-1 TO R+1
  106. 1545 T=0
  107. 1550 FOR B=C-1 TO C+1
  108. 1560 T=T+T(A,B)
  109. 1561 NEXT B
  110. 1564 IF T<>10 THEN 1567
  111. 1565 IF T(A,C)<>0 THEN 1630
  112. 1567 NEXT A
  113. 1568 FOR X=C-1 TO C+1
  114. 1569 T=0
  115. 1570 FOR Y=R-1 TO R+1
  116. 1571 T=T+T(Y,X)
  117. 1572 NEXT Y
  118. 1573 IF T<>10 THEN 1575
  119. 1574 IF T(R,X)<>0 THEN 1630
  120. 1575 NEXT X
  121. 1580 NEXT C
  122. 1590 NEXT R
  123. 1600 REM *** GAME IS OVER
  124. 1605 PRINT "THE GAME IS OVER."
  125. 1610 PRINT "YOU HAD";F;"PIECES REMAINING."
  126. 1611 IF F<>1 THEN 1615
  127. 1612 PRINT "BRAVO! YOU MADE A PERFECT SCORE!"
  128. 1613 PRINT "SAVE THIS PAPER AS A RECORD OF YOUR ACCOMPLISHMENT!"
  129. 1615 PRINT: INPUT "PLAY AGAIN (YES OR NO)";A$
  130. 1617 IF A$="NO" THEN 2000
  131. 1618 RESTORE: GOTO 28
  132. 1620 STOP
  133. 1630 RETURN
  134. 2000 PRINT: PRINT "SO LONG FOR NOW.": PRINT
  135. 2010 END