Compucolor.org – Virtual Media

Listing of file='ONECHK.BAS;01' on disk='vmedia/ncc_6_real-sector.ccvf'

1 PLOT 12,27,11
2 PRINT TAB( 15);"ONE CHECK (SOLITAIRE CHECKER PUZZLE BY D. AHL)"
4 PRINT TAB( 15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
5 REM  THIS PROGRAM COPIED & MODIFIED BY C.E. SONTAG & GRAPHICS  PROVIDED BY PATRICK LEABO.
6 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT
7 REM 
8 DIM A(64)
10 PRINT TAB( 15);"O N E    C H E C K    G A M E"
11 PLOT 15:PRINT :PRINT
12 POKE 33209,0
13 IF PEEK (33209)< 5THEN GOTO 13
20 PRINT "OBJECT OF GAME: TO REMOVE AS MANY CHECKERS AS POSS-"
21 PRINT "IBLE BY DIAGONAL JUMPS (AS IN STANDARD CHECKERS)."
22 PRINT :PRINT
25 PRINT "INSTRUCTIONS: 48 CHECKERS ARE PLACED ON THE 2 OUT-"
26 PRINT "SIDE SPACES OF A STANDARD 64-SQUARE CHECKERBOARD."
27 PRINT "REFER TO THE NUMBERED BOARD TO DETERMINE YOUR MOVE."
30 PRINT :PRINT
31 PRINT "FIRST: INDICATE THE SQUARE YOU WISH TO JUMP FROM,"
32 PRINT "       THEN, PRESS RETURN..."
33 PRINT "NEXT: INDICATE THE SQUARE YOU WISH TO JUMP TO,"
34 PRINT "      THEN, PRESS RETURN..."
35 PRINT :PRINT
40 PRINT "AFTER EACH TURN, THE NUMBERED BOARD WILL BE"
41 PRINT "IMPRINTED WITH A      TO INDICATE A CHECKER, AND"
42 PRINT "NO CHECKER AT ALL INDICATES THE SPACE IS EMPTY."
43 PRINT :PRINT
45 PRINT "REMEMBER: WHEN YOU HAVE NO POSSIBLE JUMPS REMAINING,"
46 PRINT "INPUT A  0  IN RESPONSE TO QUESTION, JUMP FROM ?"
60 PRINT :PRINT
61 INPUT "WHEN READY, PRESS RETURN  ";RET:PRINT :PRINT :PRINT
62 POKE 33209,0
63 PRINT "HERE IS THE NUMERICAL BOARD AND THE OPENING POSITION              OF THE CHECKERS..."
65 IF PEEK (33209)< 5THEN GOTO 65
67 PLOT 12:N= 0
68 GOSUB 2000
70 PLOT 15:PRINT :PRINT
71 FOR J= 1TO 57STEP 8
75 NEXT J
76 IF PEEK (33209)< 10THEN GOTO 76
80 FOR J= 1TO 64
82 A(J)= 1
84 NEXT J
86 FOR J= 19TO 43STEP 8
88 FOR I= JTO J+ 3
90 A(I)= 0
92 NEXT I
94 NEXT J
96 M= 0
98 GOTO 340
99 PLOT 3,0,0:PRINT
100 PRINT "JUMP"
101 PRINT "FROM?"
102 FOR NN= 1TO 7:PRINT "      ":NEXT
103 FOR NN= 1TO 7:PLOT 28:NEXT
104 INPUT "  ";F
105 IF F= 0THEN 500
109 PRINT
110 PRINT "JUMP"
111 PRINT "TO?"
115 INPUT "  ";T
118 REM  *** CHECK LEGALITY OF MOVE
120 F1= INT ((F- 1)/ 8)
130 F2= F- 8* F1
140 T1= INT ((T- 1)/ 8)
150 T2= T- 8* T1
160 IF F1> 7THEN 230
170 IF T1> 7THEN 230
180 IF F2> 8THEN 230
190 IF T2> 8THEN 230
200 IF ABS (F1- T1)< > 2THEN 230
210 IF ABS (F2- T2)< > 2THEN 230
212 IF A((T+ F)/ 2)= 0THEN 230
215 IF A(F)= 0THEN 230
220 IF A(T)= 1THEN 230
225 GOTO 250
230 PRINT "WHOOPS"
235 FOR NN= 1TO 500:NEXT :PLOT 28:PRINT "      "
240 GOTO 99
245 REM  *** UPDATE BOARD
250 A(T)= 1
255 PLOT 3,0,0:PRINT
260 A(F)= 0
270 A((T+ F)/ 2)= 0
280 N= N+ 1
290 M= M+ 1
310 REM  *** PRINT BOARD
312 OUT 8,247
314 PRINT
340 OUT 8,247:FOR J= 1TO 57STEP 8
341 PLOT 25,25,25,25,25,25,25,25,25
350 FOR I= JTO J+ 7
360 IF A(I)= 1THEN PRINT "``";:PLOT 25,25,25,25:GOTO 370
361 XX= I- 1:YY= INT (XX/ 8):XX= XX+ YY
362 IF XXAND 1THEN PLOT 6,60:GOTO 365
363 PLOT 6,39
365 PRINT "  ";:PLOT 25,25,25,25
366 PLOT 6,1
370 NEXT I
371 IF I> 63THEN OUT 8,255:GOTO 99
380 PRINT
385 PRINT :PRINT :PRINT
390 NEXT J
400 PRINT
410 OUT 8,255:GOTO 99
490 REM  *** END GAME SUMMARY
500 S= 0
510 FOR I= 1TO 64
520 S= S+ A(I)
530 NEXT I
533 PLOT 3,0,9:PRINT "SUMMARY:"
534 PRINT
535 PRINT "JUMPS:";M
545 PRINT
546 PRINT "PIECES"
547 PRINT "LEFT:";S
550 PRINT
552 PRINT "TRY"
553 PRINT "AGAIN?"
560 PRINT
562 INPUT "";A$
570 IF LEFT$ (A$,1)= "Y"THEN 67
575 IF LEFT$ (A$,1)= "N"THEN 600
590 GOTO 562
600 PRINT
609 PRINT "O.K."
610 PRINT "HOPE"
611 PRINT "YOU HAD"
612 PRINT "FUN!!"
999 PLOT 27,11:END
2000 REM  DRAW BOARD
2002 OUT 8,247
2005 PLOT 27,24
2010 XO= 8:YO= 0
2020 FOR Y= 0TO 7
2030 FOR X= 0TO 7
2035 TE= X+ Y:IF TEAND 1THEN PLOT 6,60:GOTO 2050
2040 PLOT 6,39
2050 FOR YY= 0TO 3
2060 PLOT 3,X* 6+ XO,Y* 4+ YO+ YY
2070 PRINT "      "
2080 NEXT YY
2085 PLOT 3,X* 6+ XO,Y* 4+ YO:PRINT X+ Y* 8+ 1
2087 NEXT X
2090 NEXT Y
2095 PLOT 6,6,8:OUT 8,255:RETURN