Compucolor.org – Virtual Media

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

10 DATA 0
15 DIM B(13),G(13),F(50):READ N
20 PRINT :PRINT :E= 0
25 FOR I= 0TO 12:B(I)= 3:NEXT I
30 C= 0:F(N)= 0:B(13)= 0:B(6)= 0
35 GOSUB 500
40 PRINT "YOUR MOVE";:GOSUB 110
45 IF E= 0THEN 80
50 IF M= HTHEN GOSUB 100
55 IF E= 0THEN 80
60 PRINT "MY MOVE IS ";:GOSUB 800
65 IF E= 0THEN 80
70 IF M= HTHEN PRINT ",";:GOSUB 800
75 IF E> 0THEN 35
80 PRINT :PRINT "GAME OVER"
85 D= B(6)- B(13):IF D< 0THEN PRINT "I WIN BY";- D;"POINTS":GOTO 20
90 N= N+ 1:IF D= 0THEN PRINT "DRAWN GAME":GOTO 20
95 PRINT "YOU WIN BY";D;"POINTS":GOTO 20
100 PRINT "AGAIN";
110 INPUT M:IF M< 7THEN IF M> 0THEN M= M- 1:GOTO 130
120 PRINT "ILLEGAL MOVE":GOTO 100
130 IF B(M)= 0THEN 120
140 H= 6:GOSUB 200
150 GOTO 500
200 K= M:GOSUB 600
205 E= 0:IF K> 6THEN K= K- 7
210 C= C+ 1:IF C< 9THEN F(N)= F(N)* 6+ K
215 FOR I= 0TO 5:IF B(I)< > 0THEN 230
220 NEXT I
225 RETURN
230 FOR I= 7TO 12:IF B(I)< > 0THEN E= 1:RETURN
235 GOTO 220
500 PRINT :PRINT "   ";
505 FOR I= 12TO 7STEP - 1:GOSUB 580
510 NEXT I
515 PRINT :I= 13:GOSUB 580
520 PRINT "                    ";:PRINT B(6):PRINT "     ";
525 FOR I= 0TO 5:GOSUB 580
530 NEXT I
535 PRINT :PRINT :RETURN
580 IF B(I)< 10THEN PRINT " ";
585 PRINT B(I);:RETURN
600 P= B(M):B(M)= 0
605 FOR P= PTO 1STEP - 1:M= M+ 1:IF M> 13THEN M= M- 14
610 B(M)= B(M)+ 1:NEXT P
615 IF B(M)= 1THEN IF M< > 6THEN IF M< > 13THEN IF B(12- M)< > 0THEN 625
620 RETURN
625 B(H)= B(H)+ B(12- M)+ 1:B(M)= 0:B(12- M)= 0:RETURN
800 D= - 99:H= 13
805 FOR I= 0TO 13:G(I)= B(I):NEXT I
810 FOR J= 7TO 12:IF B(J)= 0THEN 885
815 G= 0:M= J:GOSUB 600
820 FOR I= 0TO 5:IF B(I)= 0THEN 845
825 L= B(I)+ I:R= 0
830 IF L> 13THEN L= L- 14:R= 1:GOTO 830
835 IF B(L)= 0THEN IF L< > 6THEN IF L< > 13THEN R= B(12- L)+ R
840 IF R> QTHEN Q= R
845 NEXT I
850 Q= B(13)- B(6)- Q:IF C> 8THEN 875
855 K= J:IF K> 6THEN K= K- 7
860 FOR I= 0TO N- 1:IF F(N)* 6+ K= INT (F(I)/ 6^ (7- C)+ .1)THEN Q= Q- 2
870 NEXT I
875 FOR I= 0TO 13:B(I)= G(I):NEXT I
880 IF Q> = DTHEN A= J:D= Q
885 NEXT J
890 M= A:PRINT CHR$ (42+ M);:GOTO 200
900 FOR I= 0TO N- 1:PRINT B(I):NEXT I