Listing of file='ONECHK.BAS;01' on disk='vmedia/ncc_15-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