Compucolor.org – Virtual Media

Listing of file='MILBOR.BAS;01' on disk='vmedia/nsw_ug_1-sideB-sector.ccvf'

10 REM  * * *  MILLE BORNES  * * *
20 REM  * * *  W. L. GREENE  * * *
30 REM  * * *    9/30/79     * * *
40 CLEAR 650:PLOT 27,24
50 A= PEEK (33209):F9= - (A> 29):A= RND (- A)
60 DEF FN Z(Z)= ASC (MID$ (D$(Z),2)):DEF FN H(H)= (H/ 3- 1)
70 DEF FN X(X)= VAL (MID$ (D$(X),3))
80 DEF FN Y(Y)= VAL (MID$ (D$(C(Y)),3))
90 DIM A$(19),D$(19),H(19),A(5),C(14),SC$(4),P(14),SP$(4),HP(5),D(101),I(101)
100 LOAD "D.ARY":D0= 101
110 A$(0)= "              ":FOR I= 1TO 19:READ X$
120 A$(I)= RIGHT$ (A$(0)+ X$,15):NEXT I
130 DATA "25","50","75","100","200","OUT OF GAS","GASOLINE"
140 DATA "EXTRA TANK","FLAT TIRE","SPARE TIRE","PUNCTURE-PROOF"
150 DATA "ACCIDENT","REPAIRS","DRIVING ACE","SPEED LIMIT 50"
160 DATA "END OF LIMIT","STOP","ROLL","RIGHT-OF-WAY"
170 RESTORE :FOR I= 1TO 19:READ A$:D$(I)= " "+ A$:NEXT
180 D$(0)= A$(0)
190 FOR J= 1TO 5:A(J)= FN X(J):NEXT
200 PLOT 12:PRINT :PRINT TAB( 24)"MILLE BORNES"
210 PRINT TAB( 19)"THE FRENCH CARD GAME"
220 PRINT :INPUT "HELLO, MY NAME IS CCII. WHAT IS YOUR NAME ? ";NM$
230 PRINT :PRINT "GLAD TO MEET YOU, "NM$".";
240 INPUT "  DO YOU NEED INSTRUCTIONS ? ";A$
250 IF LEFT$ (A$,1)= "N"THEN 700
260 PLOT 12:PRINT TAB( 24)"INSTRUCTIONS"
270 PRINT :PRINT "THE ACTION COMMANDS ARE:","FOR INFORMATION ENTER:"
280 PRINT :PRINT "PLAY A CARD",,,"200S PLAYED"
290 PRINT "DISCARD",,,,"HAZARDS PLAYED"
300 PRINT "COUP FOURRE",,,"NUMBER OF CARDS REMAINING"
310 PRINT "EXTEND TRIP",,,"RECAP"
320 PRINT "STOP DELAYED ACTION"
330 PRINT :PRINT "-1 ESCAPES FROM P,D, AND C COMMANDS.":PRINT
340 PRINT "ENTER ONLY THE FIRST LETTER OF EACH COMMAND.":PRINT
350 PRINT TAB( 24)"CARD DISTRIBUTION":PRINT
360 PRINT TAB( 8)"HAZARDS",,"REMEDIES","SAFETIES"TAB( 53)"MILESTONES":PRINT
370 PRINT A$(6)"(2)"TAB( 18);A$(7)" (6)"TAB( 36);A$(8)"(1)"TAB( 54);D$(5)" (4)
380 PRINT A$(9)"(2)"TAB( 18);A$(10)" (6)"TAB( 36);A$(11)"(1)"TAB( 54);D$(4)"(12)"
390 PRINT A$(12)"(2)"TAB( 18);A$(13)" (6)"TAB( 36);A$(14)"(1)"TAB( 54);D$(3)" (10)"
400 PRINT A$(17)"(4)"TAB( 18);A$(18)"(14)"TAB( 36);A$(19)"(1)"TAB( 54);D$(2)" (10)"
410 PRINT A$(15)"(3)"TAB( 18);A$(16)" (6)"TAB( 54);D$(1)" (10)
420 PRINT :PRINT "TOTAL CARDS - 101":PRINT
430 INPUT "DO YOU WISH TO SEE THE RULES AND SCORING ? ";A$
440 IF LEFT$ (A$,1)= "N"THEN 700
450 PLOT 12:PRINT TAB( 24)"RULES"
460 PRINT " 1. S.L.-50 MAY ONLY BE PLAYED ON OPPONENT'S"D$(16)"."
480 PRINT " 2. OTHER HAZARDS MAY ONLY BE PLAYED ON OPPONENT'S"D$(18)"."
490 PRINT " 3."D$(18)" MAY BE PLAYED ON"D$(17)","D$(7)","D$(10)","D$(13)","
500 PRINT "    AND ON NO STATUS AT THE BEGINNING OF THE GAME."
510 PRINT " 4. OTHER REMEDIES MAY ONLY BE PLAYED ON CORROSPONDING HAZARD."
520 PRINT " 5. STATUS MUST BE ROLL IN ORDER TO PLAY A MILE STONE."
530 PRINT " 6. ON"D$(15)" ONLY 50 AND 25 MILE STONES MAY BE PLAYED."
540 PRINT " 7. ONLY TWO 200 MILE STONES MAY BE PLAYED BY ONE PLAYER."
550 PRINT " 8. TOTAL MILE STONES MAY NOT EXCEED 700(1000 ON EXTENDED TRIP).":PLOT 28
560 PRINT " 9. A SAFETY MAY BE PLAYED AT ANY TIME. PLAYER GETS ANOTHER TURN":PLOT 28
570 PRINT "10. A SAFETY PROTECTS AGAINST PLAY OF CORROSPONDING HAZARD."
580 PRINT "11. COUP FOURRE IS PLAY OF A SAFETY FROM PLAYER'S HAND "
590 PRINT "    IMMEDIATELY FOLLOWING PLAY OF CORROSPONDING HAZARD BY"
600 PRINT "    OPPONENT. C COMMAND MUST BE USED. DO NOT PLAY DRAW CARD(7)."
610 PRINT "12. FIRST PLAYER TO COMPLETE TRIP OF 700 MILE STONES HAS OPTION"
620 PRINT "    OF EXTENDING TRIP TO 1000 MILE STONES."
630 PRINT "13. DELAYED ACTION IS COMPLETING TRIP AFTER DRAW PILE IS EMPTY."
640 PRINT "14. GAME IS TO 5000 POINTS.
650 PRINT TAB( 24)"SCORING":PRINT :PRINT "MILE STONES    - TOTAL COUNT"
660 PRINT "SAFETIES       - 100 EACH + 300 FOR ALL FOUR":PRINT "COUP FOURRES   - 300 EACH":PRINT "TRIP COMPLETED - 400 + ";
670 PRINT "200 FOR EXTEND + 300 FOR DELAYED ACTION":PRINT "SAFE TRIP      - 300 (NO 200S USED)"
680 PRINT "SHUT OUT       - 500 ":PRINT
690 PRINT :INPUT "PRESS RETURN TO START TRIP.";A$
700 P2= 0:C2= 0
710 PRINT
720 IF F9= 1THEN PRINT "MY DEAL...";:GOTO 740
730 PRINT "YOUR DEAL...";
740 PRINT "SHUFFLING...";
750 C0= 0:C1= 0:C3= 0:C4= 0:C5= 0:C6= 0:C9= 0:P0= 0:P1= 0:P3= 0:P4= 0:P5= 0:P6= 0:P9= 0
760 FOR N= 0TO 14:C(N)= 0:P(N)= 0:NEXT
770 FOR N= 1TO 4:SC$(N)= A$(0):SP$(N)= A$(0):HP(N)= 0:NEXT
780 HP(5)= 0:E= 0:N= 0:D1= 0:F4= 0
800 FOR N= 0TO 100:R= INT (RND (1)* (100- N))
810 I(N)= D(R):D(R)= D(100- N):NEXT
870 FOR N= 0TO 100:D(N)= I(N):NEXT
880 FOR Z= 1TO 6:GOSUB 900:P(Z)= T:GOSUB 900:C(Z)= T
890 NEXT :GOSUB 8000:GOSUB 8110:GOTO 1000
900 IF D1= D0+ 12THEN T= - 1:RETURN
910 D1= D1+ 1:IF D1> D0THEN T= 0:RETURN
920 T= I(D1- 1):RETURN
1000 F= F9:IF F= 0THEN P= 0:GOTO 1640
1010 IF F= 0THEN PRINT "CCII PLAYED A";VO$;D$(C)
1020 T$= "F":IF F= 0THEN FOR N= 1TO 500:NEXT
1030 IF FN Z(C)= 21THEN 1640
1040 IF C3< > 700+ ETHEN 1070
1050 IF E= 0THEN GOSUB 7000:IF E= 300THEN 1070
1060 T$= "C":GOSUB 6000:GOTO 4000
1070 GOSUB 900:IF T< 0THEN 1800
1080 P(7)= T:F= 1:GOSUB 4220
1090 GOSUB 6000:PLOT 12:GOSUB 5000
1100 IF P(7)= 0THEN PRINT "* * *  END OF DECK  * * *":GOTO 1120
1110 PRINT "YOU DREW A"VO$"......................."A$(P(7))" (7)
1120 INPUT "ACTION TO TAKE ? ";V$:V$= LEFT$ (V$,1)
1130 PLOT 28,11
1140 IF V$= "P"THEN PRINT "PLAY ";:GOTO 1250
1150 IF V$= "D"THEN PRINT "DISCARD ";:GOTO 1250
1160 IF V$= "C"THEN INPUT "COUP FOURRE' WHICH CARD (1-6) ? ";P:GOTO 1260
1170 IF V$= "N"THEN PRINT "NUMBER OF CARDS REMAINING IS";D0- D1:GOTO 1120
1180 IF V$= "S"THEN 1800
1190 IF V$= "R"THEN 1090
1200 IF V$= ""THEN 1120
1210 IF V$= "2"THEN PRINT "200S PLAYED; CCII-"C4", "NM$"-"P4:GOTO 1120
1220 IF V$= "H"THEN FOR N= 6TO 12STEP 3:A= FN H(N):PRINT D$(N)"-"HP(A)",";:NEXT
1230 IF V$= "H"THEN PRINT " S.L. 50-"HP(4)",";D$(17)"-"HP(5):GOTO 1120
1240 PRINT "ILLEGAL COMMAND":GOTO 1120
1250 INPUT "WHICH CARD (1-7) ? ";P
1260 IF P< 0THEN 1120
1270 IF P> 7OR P< 1THEN 1250
1280 I= P:P= P(I):T= P:GOSUB 1860
1290 IF V$< > "C"THEN 1370
1300 IF I= 7OR FN Z(P)< > 21THEN 1360
1310 IF FN Z(C)< > 17AND FN Z(C)< > 19THEN 1360
1320 FOR N= 8TO 14STEP 3:IF P= NAND C< > N- 2THEN 1360
1330 IF P= NTHEN P0= 18:P(P)= 1:GOTO 1350
1340 NEXT :P1= 0:P9= 1:IF FN Z(P0)= 18OR P0= 17OR P0= 0THEN P0= 18
1350 P5= P5+ 1:GOSUB 6600:GOTO 1560
1360 PRINT "IMPROPER ACTION TAKEN":GOTO 1120
1370 IF V$< > "P"THEN 1550
1380 ON FN Z(P)- 17GOTO 1420,1470,1120,1490,1530
1390 IF C0< > 18OR (P= 17AND C9= 1)THEN 1360
1400 IF P< > 17THEN IF C(P+ 2)= 1THEN 1360
1410 C0= P:GOTO 1560
1420 IF P< > 18THEN 1450
1430 IF P0= 18OR (P0< > 17AND P0< > 0AND FN Z(P0)< > 18AND FN Z(P0)< > 32)THEN 1360
1440 P0= 18:GOTO 1560
1450 IF FN Z(P0)= 17AND P= P0+ 1THEN P0= - P* (P9< > 1)- 18* (P9= 1):GOTO 1560
1460 P1= 0:GOTO 1560
1470 IF C9= 1OR C1= 1THEN 1360
1480 C1= 1:GOTO 1560
1490 IF P= 19AND (P0= 17OR P0= 0OR FN Z(P0)= 18)THEN P0= 18
1500 IF P= 19THEN P1= 0:P9= 1:GOTO 1520
1510 P(P)= 1:IF FN Z(P0)= 17AND P= P0+ 2THEN P0= 18
1520 GOSUB 6600:GOTO 1560
1530 IF P0< > 18OR (P> 2AND P1= 1)OR (P= 5AND P4= 2)OR (P3+ A(P)> 700+ E)THEN 1360
1540 P3= P3+ A(P):P4= P4- (P= 5):GOTO 1560
1550 P= 0
1560 IF I< > 7THEN GOSUB 8060
1570 IF FN Z(P)= 21THEN 1010
1580 IF P3< > 700+ ETHEN 1640
1590 IF E= 300THEN 1630
1600 INPUT "EXTENSION ? ";E$:IF LEFT$ (E$,1)= "N"THEN 1630
1610 PLOT 28,11:PRINT NM$" DECLARES EXTENSION !"
1620 E= 300:GOTO 1640
1630 T$= "P":GOSUB 6000:GOTO 4000
1640 F= 0:GOSUB 900:IF T< 0THEN 1800
1650 C(7)= T:GOSUB 9020:IF FN Z(P)= 17OR FN Z(P)= 19THEN GOSUB 2320:IF T< 0THEN 1010
1660 IF C(7)= 0THEN GOSUB 2100:IF T< 0THEN 1010
1670 IF C0< > 18THEN 1740
1680 GOSUB 2200:IF T< 0THEN 1010
1690 GOSUB 2130:IF T< 0THEN 1010
1700 GOSUB 9060:IF T< 0THEN 1010
1710 GOSUB 1890:IF T< 0THEN 1010
1720 F5= 2:GOSUB 9070:IF T< 0THEN 1010
1730 GOTO 1770
1740 GOSUB 2130:IF T< 0THEN 1010
1750 GOSUB 1970:IF T< 0THEN 1010
1760 GOSUB 1890:IF T< 0THEN 1010
1770 FOR I= 8TO 14STEP 3:A= FN H(I- 2)
1780 IF H(I)< > 0AND HP(A)+ H(I- 2)= > 2THEN GOSUB 2290:GOSUB 2060:GOTO 1010
1790 NEXT :GOSUB 3000:GOTO 1010
1800 PRINT "* * *  END OF PLAY  * * *":T$= "N"
1810 FOR N= 1TO 500:NEXT :GOTO 4000
1820 FOR I= 6TO 12STEP 3:IF H(I)< > 0AND (H(I+ 2)< > 0OR C(I+ 2)= 1)THEN 1850
1830 NEXT :IF H(15)< > 0AND (H(19)< > 0OR C9= 1)AND P1= 0AND P3< 650+ ETHEN GOSUB 2290:P1= 1:RETURN
1840 I= 17:IF H(17)= 0OR (H(19)= 0AND C9= 0)THEN RETURN
1850 GOSUB 2290:P0= C:RETURN
1860 IF FN Z(T)< > 17AND FN Z(T)< > 19THEN RETURN
1870 IF T= 17THEN HP(5)= HP(5)+ 1:RETURN
1880 A= FN H(T):HP(A)= HP(A)+ 1:RETURN
1890 I= 15:IF H(15)< > 0AND P0< > 18AND P1= 0AND P9= 0THEN GOSUB 2290:P1= 1:RETURN
1900 IF P0< > 18THEN 1940
1910 FOR I= 6TO 12STEP 3:IF H(I)< > 0AND P(I+ 2)= 0THEN 1850
1920 NEXT :IF H(15)< > 0AND P9= 0AND P1= 0THEN GOSUB 2290:P1= 1:RETURN
1930 I= 17:IF H(17)< > 0AND P9= 0THEN 1850
1940 I= 16:IF H(16)< > 0AND C1< > 0THEN GOSUB 2290:C1= 0:RETURN
1950 I= 19:IF H(19)< > 0AND C1< > 0AND (C3< 650+ E)THEN GOSUB 2290:GOTO 2060
1960 RETURN
1970 I= 18
1980 FOR N= 7TO 13STEP 3:IF C0< > NTHEN NEXT :IF C0< > 17AND C0< > 0THEN 2010
1990 IF H(I)< > 0THEN GOSUB 2290:ON I- 17GOTO 2050,2060
2000 IF I= 18THEN I= 19:GOTO 1990
2010 FOR N= 6TO 12STEP 3:IF C0< > NTHEN NEXT :RETURN
2020 I= N+ 2:IF H(I)< > 0THEN GOSUB 2290:GOTO 2060
2030 I= N+ 1:IF H(I)< > 0THEN GOSUB 2290:GOTO 2050
2040 RETURN
2050 C0= - C* (C9< > 1)- 18* (C9= 1):T= - 1:RETURN
2060 IF C= 19THEN C9= 1:C1= 0
2070 IF C= 19AND (FN Z(C0)= 18OR C0= 17OR C0= 0)THEN C0= 18:GOTO 2090
2080 IF C< > 19THEN C(C)= 1:IF C0= C- 2THEN C0= 18
2090 GOSUB 6500:T= - 1:RETURN
2100 FOR I= 8TO 14STEP 3:IF H(I)< > 0THEN 2120
2110 NEXT :I= 19:IF H(19)= 0THEN RETURN
2120 GOSUB 2290:GOTO 2060
2130 T= 0:IF P0< > 18OR P3< 500+ ETHEN RETURN
2140 IF P1< > 0AND P3< 650+ ETHEN RETURN
2150 IF P3< 600+ EAND P3< > 500+ ETHEN RETURN
2160 IF P3= 500+ EAND P4= 2THEN RETURN
2170 GOSUB 1820:IF T< 0THEN RETURN
2180 GOSUB 2100:IF T< 0THEN RETURN
2190 GOTO 1910
2200 T= 0:IF C0< > 18OR C3< 500+ ETHEN RETURN
2210 IF C1< > 0AND C3< 650+ ETHEN RETURN
2220 IF C3< 600+ EAND C3< > 500+ ETHEN RETURN
2230 IF C3= 500+ EAND C4= 2THEN RETURN
2240 Z1= 700+ E- C3
2250 FOR I= 1TO 5:IF A(I)= Z1AND H(I)< > 0THEN 2270
2260 NEXT I:RETURN
2270 AA= I:GOSUB 2100:IF T< 0THEN RETURN
2280 I= AA:GOSUB 2290:GOTO 9460
2290 Z= INT (H(I)):R= INT ((H(I)- Z)* 10+ .1):IF R= 0THEN END
2300 C= C(R):C(R)= 0:H(C)= 0:T= C:GOSUB 4220:GOSUB 1860:T= - 1:IF R= 7THEN RETURN
2310 GOSUB 9000:RETURN
2320 FOR I= 8TO 14STEP 3:IF P< > I- 2THEN NEXT :I= 19:IF P< > 15AND P< > 17THEN RETURN
2330 IF H(I)= 0OR T= ITHEN RETURN
2340 C5= C5+ 1:GOSUB 2290:GOSUB 2060:P= 0
2350 PRINT "* * * COUP FOURRE' * * *"
2360 FOR N= 1TO 800:NEXT :RETURN
3000 FOR I= 6TO 12STEP 3:IF H(I)< > 0AND P(I+ 2)= 1THEN 3240
3010 NEXT :IF H(15)< > 0AND P9= 1THEN 3240
3020 I= 17:IF H(17)< > 0AND P9= 1THEN 3240
3030 FOR I= 5TO 2STEP - 1:IF H(I)< > 0AND C3+ A(I)> 1000THEN 3240
3040 NEXT :I= 5:IF H(5)+ C4> 3THEN 3240
3050 FOR I= 7TO 13STEP 3:IF H(I)< > 0AND (C(I+ 1)= 1OR H(I+ 1)< > 0)THEN 3240
3060 NEXT :I= 18:IF H(I)< > 0AND (C9= 1OR (H(19)< > 0AND C0= 18))THEN 3240
3070 I= 16:IF H(16)< > 0AND (C9= 1OR H(19)< > 0)THEN 3240
3080 FOR I= 7TO 13STEP 3:A= FN H(I- 1)
3090 IF H(I)< > 0AND HP(A)+ H(I- 1)> = 2THEN 3240
3100 NEXT :IF H(I)< > 0AND HP(4)> = 3THEN 3240
3110 FOR I= 7TO 16STEP 3:IF H(I)> 2THEN 3240
3120 NEXT :I= 18:IF H(18)> 3THEN 3240
3130 IF D1> D0THEN R= 1:GOSUB 2300:GOTO 3250
3150 F5= 3:GOSUB 9070:F4= 0:IF T< 0THEN 3250
3160 I= 18:IF H(18)> 2THEN 3240
3170 I= 15:IF H(15)< > 0AND C9= 0AND H(19)= 0THEN 3240
3180 I= 17:IF H(17)< > 0AND C9= 0AND H(19)= 0THEN 3240
3190 FOR I= 6TO 12STEP 3:IF H(I)< > 0AND C(I+ 2)= 0AND H(I+ 2)= 0THEN 3240
3200 NEXT
3210 R= INT (RND (1)* 7+ 1)
3220 IF C(R)< 6AND (R= F1OR R= F2OR R= F3)THEN 3210
3230 I= C(R):IF FN Z(I)= 21THEN GOSUB 2300:GOSUB 2060:GOTO 1010
3240 GOSUB 2290
3250 PRINT "CCII DISCARDED A";VO$;D$(C):T= 0:F= 1
3260 FOR N= 1TO 500:NEXT :RETURN
3270 IF C3+ A(I)< > 700+ ETHEN GOSUB 2290:RETURN
3280 T= 0:RETURN
4000 X0= 0:X$= T$:PLOT 12:GOSUB 5000:PLOT 12
4010 PRINT :PRINT :PRINT "",," ";NM$;TAB( 33);"CCII":PRINT
4020 PRINT "PREVIOUS TOTAL",P2,,C2:PRINT "MILE STONES",P3,,C3
4030 P2= P2+ P3:C2= C2+ C3
4040 Z1= P6* 100:Z2= C6* 100:Z1= Z1- 300* (Z1= 400):Z2= Z2- 300* (Z2= 400)
4050 PRINT "SAFETIES   ";CHR$ (47);"",Z1,,Z2:P2= P2+ Z1:C2= C2+ Z2
4060 PRINT "COUP FOURRES",P5* 300,,C5* 300:P2= P2+ P5* 300:C2= C2+ C5* 300
4070 Z1= 0:Z2= 0:Z3= 0:Z4= 0:Z5= 0:Z6= 0
4080 PRINT "TRIP COMPLETED",:IF X$= "P"THEN Z1= 400:Z2= - 300* (P4= 0):Z3= - 500* (C3= 0)
4090 EP$= "":EC$= "":DA$= "":DC$= ""
4100 IF X$= "P"AND E= 300THEN Z1= Z1+ 200:EP$= "E"
4110 IF X$= "P"AND D1= > 101THEN Z1= Z1+ 300:DA$= "D"
4120 IF X$= "C"THEN Z4= 400:Z5= - 300* (C4= 0):Z6= - 500* (P3= 0)
4130 IF X$= "C"AND E= 300THEN Z4= Z4+ 200:EC$= "E"
4140 IF X$= "C"AND D1= > 101THEN Z4= Z4+ 300:DC$= "D"
4150 PRINT Z1;" ";EP$;DA$,,Z4;" ";EC$;DC$
4160 PRINT "SAFE TRIP",Z2,,Z5:PRINT "SHUT OUT",Z3,,Z6
4170 P2= P2+ Z1+ Z2+ Z3:C2= C2+ Z4+ Z5+ Z6
4180 PRINT "CURRENT TOTAL",P2,,C2
4190 PRINT
4200 IF P2> = 5000OR C2= > 5000THEN 9900
4210 F9= - (F9= 0):GOTO 720
4220 IF T= 8OR T= 12OR T= 16OR T= 6THEN VO$= "N":RETURN
4230 IF F= 0THEN VO$= "":RETURN
4240 VO$= " ":RETURN
5000 PRINT :PRINT " "NM$"'S STATUS"TAB( 20)"CCII STATUS"TAB( 41)NM$"'S HAND
5010 PRINT :PRINT A$(P0)"   "A$(C0)"   "A$(P(1))" (1)
5020 PRINT A$(16+ (P1< > 0))"   "A$(16+ (C1< > 0))"   "A$(P(2))" (2)
5030 PRINT ""P3$"   "C3$"   "A$(P(3))" (3)
5040 PRINT SP$(1)"   "SC$(1)"   "A$(P(4))" (4)"
5050 PRINT SP$(2)"   "SC$(2)"   "A$(P(5))" (5)"
5060 PRINT SP$(3)"   "SC$(3)"   "A$(P(6))" (6)"
5070 IF P6= 4OR C6= 4THEN PRINT SP$(4)"   "SC$(4)"
5080 PRINT
5130 IF T$= "N"THEN 5160
5140 IF T$= "F"THEN RETURN
5150 PRINT :PRINT TAB( 13)"* * *  TRIP COMPLETED  * * *
5160 FOR N= 1TO 1500:NEXT :RETURN
6000 P3$= RIGHT$ (A$(0)+ STR$ (P3),14)
6010 C3$= RIGHT$ (A$(0)+ STR$ (C3),14):RETURN
6500 C6= C6+ 1:FOR N= 1TO 4:IF SC$(N)< > A$(0)THEN NEXT
6510 SC$(N)= A$(I):RETURN
6600 P6= P6+ 1:FOR N= 1TO 4:IF SP$(N)< > A$(0)THEN NEXT
6610 SP$(N)= A$(P):RETURN
7000 ET= 0:FOR Z= 1TO 7:IF C(Z)< 6THEN ET= ET+ A(C(Z))
7010 NEXT Z:IF ET< 200THEN RETURN
7020 IF P3= 0THEN RETURN
7030 IF C4= 0THEN RETURN
7040 IF P3= > 600AND P0= 18THEN RETURN
7050 IF P9= 1AND P3> 400THEN RETURN
7060 IF C1< > 0THEN RETURN
7070 PRINT "CCII DECLARES EXTENSION !":E= 300
7080 FOR XX= 1TO 500:NEXT :RETURN
8000 TT= 0:FOR N= 1TO 5:X= P(N):Y= P(N+ 1)
8010 IF FN X(X)< FN X(Y)THEN GOSUB 8050:GOTO 8030
8020 IF FN X(X)= 0AND (D$(X)< D$(Y))THEN GOSUB 8050
8030 NEXT N:IF TT= 0THEN RETURN
8040 GOTO 8000
8050 P(N+ 1)= X:P(N)= Y:TT= 1:RETURN
8060 FOR N= ITO 5:P(N)= P(N+ 1):NEXT :P(6)= 0
8070 FOR N= 1TO 6:X= P(N):Y= P(7):IF FN X(X)< FN X(Y)THEN GOSUB 8100:GOTO 8090
8080 IF FN X(X)= 0AND (D$(X)< D$(Y))THEN GOSUB 8100
8090 NEXT :RETURN
8100 P(7)= X:P(N)= Y:RETURN
8110 TT= 0:FOR N= 1TO 5:IF C(N)< C(N+ 1)THEN GOSUB 8150
8120 IF C(N)< 6AND (FN Y(N)< FN Y(N+ 1))THEN GOSUB 8150
8130 NEXT N:IF TT= 0THEN RETURN
8140 GOTO 8110
8150 A= C(N):C(N)= C(N+ 1):C(N+ 1)= A:TT= 1:RETURN
9000 FOR N= RTO 6:C(N)= C(N+ 1):NEXT :C(7)= 0:RETURN
9010 FOR N= RTO 6:C(N)= C(N+ 1):NEXT :C(7)= 0:RETURN
9020 FOR N= 1TO 6:IF C(N)< C(7)THEN A= C(N):C(N)= C(7):C(7)= A
9030 NEXT
9040 FOR N= 0TO 19:H(N)= 0:NEXT :FOR N= 1TO 7
9050 H(C(N))= H(C(N))- (H(C(N))= 0)* N/ 10+ 1:NEXT :RETURN
9060 F5= 1:T= 0:F4= 0:IF C1< > 0OR C(7)> 5THEN RETURN
9070 FOR N= 1TO 7:IF FN Y(N)= 0THEN NEXT :RETURN
9080 IF F5= 1AND C(N)< 3THEN RETURN
9090 I= N:IF C(7)> 5THEN RETURN
9100 IF F4= 1AND F5= 2THEN T= - 1:GOTO 9360
9110 IF F4= 1AND F5= 3THEN T= - 1:GOTO 9430
9120 TH= 0:F1= 0:F2= 0:F3= 0:F4= 1:NT= 700+ E- C3
9130 IF F5< 3THEN 9160
9140 FOR N= ITO 7:IF A(C(N))= NTTHEN F1= N:GOTO 9430
9150 NEXT
9160 FOR N= ITO 7:A= A(C(N)):IF (A> NT)OR (A= 200AND C4= 2)THEN NEXT
9170 FOR X= 7TO I+ 1STEP - 1:IF C(X)= 0THEN NEXT
9180 I= N:II= N:YY= X+ 1- N:IF N= 8THEN II= 7:GOTO 9220
9190 IF I> XTHEN 9220
9200 FOR N= ITO X:TH= TH+ A(C(N)):NEXT :IF TH< NTTHEN 9320
9210 ON YYGOTO 9230,9250,9270,9270,9270,9270,9270
9220 T= (C(X)< 3AND F5= 3):GOTO 9470
9230 F1= I* - (F5< > 3AND C(2)< > 0)
9240 T= (F5= 3AND C(2)= 0)OR YY> 2:GOTO 9470
9250 IF A(C(X))+ A(C(I))= NTTHEN F1= I:F2= X:T= F5< 3:GOTO 9470
9260 F1= I:F2= - X* (C(X)> 2):T= F5< 3:GOTO 9470
9270 FOR N= IITO X- 1:Z= N+ 1:FOR Y= XTO ZSTEP - 1:G= Y- 1
9280 IF A(C(N))+ A(C(Y))= NTTHEN 9340
9290 IF A(C(N))+ A(C(Z))+ A(C(Y))= NTTHEN 9350
9300 IF G< > ZAND (A(C(N))+ A(C(G))+ A(C(Y))= NT)THEN Z= G:GOTO 9350
9310 NEXT Y,N
9320 F1= II:IF YY= 1THEN T= (F5< 3):GOTO 9470
9330 F2= (II+ 1)* - (C(II+ 1)> 2):T= (F5< 3OR YY> 2OR F2= 0):GOTO 9470
9340 F1= N:F2= Y:T= (F5< 3):GOTO 9470
9350 F1= N:F2= Z:F3= Y:T= (F5< 3OR YY> 3):GOTO 9470
9360 IF (C3> 550+ E)AND (A(C(F1))+ A(C(F2))+ A(C(F3))< > NT)THEN T= 0
9370 IF T= 0THEN RETURN
9380 IF F5= 1THEN R= F1:GOTO 9410
9390 IF C(F1)> 2AND FN Y(F1)= NTTHEN T= 0:RETURN
9400 FOR R= IITO X:IF C(R)> 2THEN NEXT :T= 0:RETURN
9410 GOSUB 2300:GOTO 9460
9420 IF T= 0THEN RETURN
9430 FOR R= XTO IISTEP - 1
9440 IF R< > F1AND R< > F2AND R< > F3THEN 2300
9450 NEXT :T= 0:RETURN
9460 C3= C3+ A(C):C4= C4- (C= 5):T= - 1:RETURN
9470 ON F5GOTO 9360,9360,9420
9900 IF P2> C2THEN PRINT "CONGRATULATIONS, "NM$". YOU WIN.":GOTO 9930
9910 IF C2= P2THEN PRINT "LOOKS LIKE A TIE GAME TO ME, "NM$".":GOTO 9930
9920 PRINT "BETTER LUCK NEXT TIME, "NM$". CCII WINS."
9930 INPUT "ANOTHER GAME ? ";A$:IF LEFT$ (A$,1)= "Y"THEN 700
9940 PLOT 28,11,28,11:INPUT "GOT A FRIEND WHO WANTS TO PLAY ? ";A$
9950 IF LEFT$ (A$,1)= "Y"THEN 200
9960 PLOT 28,11:PRINT "I'VE ENJOYED IT. SEE YOU AROUND,"
9970 PRINT "I'LL BE":PLOT 28
9980 END