home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug054.ark / 1CHECK.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  2.1 KB  |  86 lines

  1. 5 PRINT
  2. 10 PRINT "SOLITAIRE CHECKER PUZZLE BY DAVID AHL"
  3. 15 PRINT
  4. 20 PRINT "48 CHECKERS ARE PLACED ON THE 2 OUTSIDE SPACES OF A"
  5. 25 PRINT "STANDARD 64-SQUARE CHECKERBOARD.  THE OBJECT IS TO"
  6. 30 PRINT "REMOVE AS MANY CHECKERS AS POSSIBLE BY DIAGONAL JUMPS"
  7. 35 PRINT "(AS IN STANDARD CHECKERS).  USE THE NUMBERED BOARD TO"
  8. 40 PRINT "INDICATE THE SQUARE YOU WISH TO JUMP FROM AND TO.  ON"
  9. 45 PRINT "THE BOARD PRINTED OUT ON EACH TURN '1' INDICATES A"
  10. 50 PRINT "CHECKER AND '0' AN EMPTY SQUARE.  WHEN YOU HAVE NO"
  11. 55 PRINT "POSSIBLE JUMPS REMAINING, INPUT A '0' IN RESPONSE TO"
  12. 60 PRINT "QUESTION 'JUMP FROM ?'"
  13. 62 PRINT
  14. 65 PRINT "HERE IS THE NUMERICAL BOARD:"
  15. 66 PRINT
  16. 68 DIM A(64)
  17. 70 FOR J=1 TO 57 STEP 8
  18. 72 B$="## ##  ##  ##  ##  ##  ##  ##"
  19. 74 PRINT USING B$,J,J+1,J+2,J+3,J+4,J+5,J+6,J+7
  20. 76 NEXT J
  21. 77 PRINT
  22. 78 PRINT "AND HERE IS THE OPENING POSITION OF THE CHECKERS:"
  23. 79 PRINT
  24. 80 FOR J=1 TO 64
  25. 82 A(J)=1
  26. 84 NEXT J
  27. 86 FOR J=19 TO 43 STEP 8
  28. 88 FOR I=J TO J+3
  29. 90 A(I)=0
  30. 92 NEXT I
  31. 94 NEXT J
  32. 96 M=0
  33. 98 GOTO 340
  34. 100 INPUT "JUMP FROM";F
  35. 105 IF F=0 THEN 500
  36. 110 INPUT "TO";T
  37. 112 PRINT
  38. 118 REM *** CHECK LEGALITY OF MOVE
  39. 120 F1=INT((F-1)/8)
  40. 130 F2=F-8*F1
  41. 140 T1=INT((T-1)/8)
  42. 150 T2=T-8*T1
  43. 160 IF F1>7 THEN 230
  44. 170 IF T1>7 THEN 230
  45. 180 IF F2>8 THEN 230
  46. 190 IF T2>8 THEN 230
  47. 200 IF ABS(F1-T1)<>2 THEN 230
  48. 210 IF ABS(F2-T2)<>2 THEN 230
  49. 212 IF A((T+F)/2)=0 THEN 230
  50. 215 IF A(F)=0 THEN 230
  51. 220 IF A(T)=1 THEN 230
  52. 225 GOTO 250
  53. 230 PRINT "ILLEGAL MOVE.  TRY AGAIN..."
  54. 240 GOTO 100
  55. 245 REM *** UPDATE BOARD
  56. 250 A(T)=1
  57. 260 A(F)=0
  58. 270 A((T+F)/2)=0
  59. 290 M=M+1
  60. 310 REM *** PRINT BOARD
  61. 340 FOR J=1 TO 57 STEP 8
  62. 350 FOR I=J TO J+7
  63. 360 PRINT A(I);
  64. 370 NEXT I
  65. 380 PRINT
  66. 390 NEXT J
  67. 400 PRINT
  68. 410 GOTO 100
  69. 490 REM *** END GAME SUMMARY
  70. 500 S=0
  71. 510 FOR I=1 TO 64
  72. 520 S=S+A(I)
  73. 530 NEXT I
  74. 535 PRINT
  75. 540 PRINT "YOU MADE"M"JUMPS AND HAD"S"PIECES"
  76. 550 PRINT "REMAINING ON THE BOARD."
  77. 560 PRINT
  78. 562 INPUT "TRY AGAIN";A$
  79. 570 IF A$="YES" THEN 70
  80. 575 IF A$="NO" THEN 600
  81. 580 PRINT "PLEASE ANSWER 'YES' OR 'NO'."
  82. 590 GOTO 562
  83. 600 PRINT
  84. 610 PRINT "O.K.  HOPE YOU HAD FUN!"
  85. 999 END
  86.