Listing of file='QUINT.BAS;01' on disk='vmedia/air_raid-sector.ccvf'
100 REM COPYRIGHT(C) 1979 BY COMPUCOLOR CORPORATION 110 PLOT 27,24,12,6,33,12,3,20,10 120 PRINT "Q U I N T O M I N O E S" 130 REM QUINTOMINOES BY DAVID B. SUITS 140 PLOT 3,64,0:FOR K= 1TO 2:GOSUB 690:NEXT 150 DIM SQ(100),P(12),PP(12) 160 PL= - 1:IF RND (1)> .5THEN PL= - PL 170 REM LOAD DISPLAY AND GIVE INSTRUCTIONS 180 GOSUB 1690:GOSUB 1710 190 FOR J= 11TO 81STEP 10:FOR K= 1TO 8:SQ(J+ K)= - 1:NEXT K,J 200 FOR J= 1TO 12:P(J)= - 1:PP(J)= 0:NEXT 210 SL= 64:GOSUB 1910:IF CH= 3THEN GOSUB 730 220 PLOT 3,0,29:PRINT "ENTER R TO RE-ORIENT" 230 PRINT "ENTER C TO CANCEL A PLAY OR END THE GAME" 240 IF CH= 1THEN 300 250 PLOT 14:FOR J= 1TO 2:PLOT 6,J- (J= 2),3,52- LEN (PL$(J)),27- 2* (J= 2) 260 PRINT PL$(J);":"SC(J):NEXT 270 REM 280 REM 290 REM 300 IF CH> 1THEN PL= - PL:GOSUB 710:PRINT :PLOT 15 310 PLOT 3,3,21:INPUT "QUINTOMINO #";PE$:IF PE$= "C"THEN 1570 320 PE= VAL (PE$):IF PE< 1OR PE< > INT (PE)OR PE> 12THEN GOSUB 640:GOTO 310 330 IF P(PE)THEN 360 340 PRINT " QUINTOMINO #"PE;" IS":PRINT " ALREADY ON THE BOARD" 350 GOSUB 690:GOSUB 670:GOTO 310 360 IF CH< 3OR PP(PE)= PLTHEN 380 370 PRINT " QUINTOMINO #"PE;" IS":PRINT " NOT ONE OF YOURS":GOTO 350 380 GOSUB 890 390 IF PE= 2THEN RO= 1:INC= 68:GOTO 490 400 PLOT 3,3,23:PRINT "ORIENT" 410 INPUT " (N,S,E,W): ";O$:IF O$= "C"THEN GOSUB 640:GOSUB 650:GOTO 310 420 REM 430 RO= - 1 440 IF O$= "W"THEN RO= 0:INC= 17 450 IF O$= "N"THEN RO= 1:INC= 68 460 IF O$= "E"THEN RO= 2:INC= 34 470 IF O$= "S"THEN RO= 3:INC= 136 480 IF RO= - 1THEN PLOT 28,11:GOTO 410 490 GOSUB 1170 500 REM 510 PLOT 3,3,26:INPUT "PUT IT WHERE? ";W$ 520 IF W$= "C"THEN GOSUB 670:GOSUB 650:GOTO 310 530 IF W$= "R"THEN GOSUB 670:GOTO 400 540 W= VAL (W$):IF W< 1OR W< > INT (W)OR W> 64THEN GOSUB 640:GOTO 510 550 GOSUB 1300:IF FLTHEN 600 560 PLOT 14:PRINT " THAT CAN'T BE DONE":GOSUB 690:GOSUB 670:GOTO 510 570 REM 580 REM 590 REM 600 GOSUB 1370:FOR I= 1TO 3:GOSUB 670:NEXT 610 IF SL< 9THEN PL= - PL:GOTO 1570 620 GOTO 300 630 REM 640 PLOT 13,28:PRINT SPC( 32)"":PLOT 28:RETURN 650 GOSUB 670:PRINT SPC( 32)"" 660 FOR J= 18TO 23:PLOT 3,18,J:PRINT SPC( 14)"":NEXT :RETURN 670 FOR K= 1TO 3:GOSUB 640:NEXT :RETURN 680 PLOT 3,0,18:FOR J= 1TO 6:PRINT SPC( 32)"":NEXT :FOR J= 1TO 8:PLOT 11,10:NEXT :RETURN 690 FOR T= 1TO 1500:NEXT :RETURN 700 REM 710 PLOT 14,6,PL- 4* (PL= - 1),3,3,19:PRINT PL$(PL- 3* (PL= - 1));:RETURN 720 REM 730 FOR K= 1TO 12:GOSUB 710:PRINT 740 PRINT " PICK ONE OF" 750 INPUT " THE QUINTOMINOES: ";PE$:PE= VAL (PE$) 760 IF PE< 1OR PE< > INT (PE)OR PE> 12THEN GOSUB 640:GOTO 750 770 IF PP(PE)= 0THEN 810 780 PRINT " #"PE;" HAS BEEN TAKEN":GOSUB 690:PLOT 28,11:GOSUB 640:GOTO 750 790 REM 800 REM 810 PP(PE)= PL:I= INT ((PE+ 2)/ 3) 820 Y= 4* I+ (PE< 4):X= 24+ 10* (PE- 3* I):IF X= 4THEN X= 3 830 PLOT 15,6,8- 16* (PL= - 1),3,X,Y:IF PE< 10THEN PLOT 32 840 PRINT PE$:PLOT 6,1,15:GOSUB 680:PL= - PL:NEXT 850 GOSUB 690:RETURN 860 REM 870 REM 880 REM 890 ON PEGOSUB 920,940,960,980,1000,1020,1040,1060,1080,1100,1120,1140 900 FOR J= 1TO 10:READ D(J):NEXT :RETURN 910 REM 920 RESTORE 920:RETURN :DATA 0,-1,0,0,1,0,2,0,2,1 930 DATA 3,1,11,6,11,1,-1,22,9,17,-11,22,11 940 RESTORE 940:RETURN :DATA 0,-1,0,0,-1,0,1,0,0,1 950 DATA 3,1,11,6,11,-7,-1,14,9,1,-11,6,11 960 RESTORE 960:RETURN :DATA 2,-1,1,-1,0,0,1,0,0,1 970 DATA 4,9,11,22,9,9,1,14,1,1,-1,14,9,1,-11,6,11 980 RESTORE 980:RETURN :DATA 2,-1,0,0,1,0,2,0,2,1 990 DATA 3,17,11,22,11,1,-1,22,9,17,-11,22,11 1000 RESTORE 1000:RETURN :DATA 1,-1,0,0,1,0,2,0,0,1 1010 DATA 3,9,11,14,11,1,-1,22,9,1,-11,6,11 1020 RESTORE 1020:RETURN :DATA 1,-1,0,-1,0,0,0,1,1,1 1030 DATA 3,1,11,14,9,1,1,6,13,1,-13,14,9 1040 RESTORE 1040:RETURN :DATA 0,0,1,0,2,0,3,0,3,1 1050 DATA 2,1,-1,30,9,25,-11,30,11 1060 RESTORE 1060:RETURN :DATA 0,0,1,0,2,0,3,0,4,0 1070 DATA 1,1,-1,38,9 1080 RESTORE 1080:RETURN :DATA 0,0,1,0,2,0,3,0,2,1 1090 DATA 2,1,-1,30,9,17,-11,22,11 1100 RESTORE 1100:RETURN :DATA 0,0,1,0,2,0,2,1,3,1 1110 DATA 3,1,-1,22,9,17,-11,22,1,17,-13,30,9 1120 RESTORE 1120:RETURN :DATA 0,0,1,0,2,0,1,1,2,1 1130 DATA 2,1,-1,22,9,9,-11,22,11 1140 RESTORE 1140:RETURN :DATA 0,0,1,0,2,0,2,1,2,2 1150 DATA 2,1,-1,22,9,17,-11,22,23 1160 REM 1170 GOSUB 660:R= RO* 90* 3.1415926/ 180:FOR J= 1TO 9STEP 2 1180 DR(J)= D(J)* COS (R)+ D(J+ 1)* - SIN (R) 1190 DR(J+ 1)= D(J)* SIN (R)+ D(J+ 1)* COS (R) 1200 NEXT J 1210 X= 20- 8* (RO= 2)- 4* (RO= 1)- 4* (RO= 3) 1220 Y= 20- 2* (RO= 3)- (RO= 8):IF PE= 8AND RO= 1THEN Y= 19 1230 FOR J= 1TO 9STEP 2 1240 PLOT 3,X+ DR(J)* 2,Y+ DR(J+ 1) 1250 IF D(J)= 0AND D(J+ 1)= 0THEN PRINT "{}":GOTO 1270 1260 PRINT "{}" 1270 NEXT J 1280 RETURN 1290 REM 1300 FL= - 1:W= INT ((W- 1)/ 8)* 2+ 11+ W 1310 FOR J= 1TO 9STEP 2 1320 S= W+ DR(J)+ 10* DR(J+ 1):IF S< 1OR S> 100THEN 1340 1330 IF SQ(S)= - 1THEN 1350 1340 FL= 0:J= 10 1350 NEXT :RETURN 1360 REM 1370 U= INT (W/ 10):V= 64+ (W- 10* U- 2)* 8:U= 127- 12* (U- 1) 1380 PLOT 6,49,2:READ T:FOR J= 1TO T:READ X1,Y1,X2,ST 1390 ON RO+ 1GOSUB 1500,1510,1530,1540 1400 PLOT 253,V+ X,U+ Y,242,V+ XP,U+ YP,240 1410 FOR K= 1TO ST:PLOT INC:NEXT K,J 1420 PLOT 255 1430 FOR J= 1TO 9STEP 2:SQ(W+ DR(J)+ 10* DR(J+ 1))= PE:NEXT 1440 P(PE)= 0:SL= SL- 5 1450 REM 1460 Y= INT ((PE+ 2)/ 3):X= PE- ((Y- 1)* 3):X= (X- 1)* 10- (X> 1) 1470 Y= (Y- 1)* 5+ (Y= 4):PLOT 6,16,15:FOR J= YTO Y+ 3:PLOT 3,X,J:PRINT SPC( 10)"":NEXT 1480 REM 1490 PLOT 6,1,3,0,27:RETURN 1500 X= X1:XP= X2:Y= Y1:YP= Y:RETURN 1510 X= INT (Y1* 2/ 3+ .5)+ 7:XP= X:Y= - INT (X1* 1.5) 1520 YP= - INT (X2* 1.5)- 1:ST= ABS (ST- 4)+ 4* (J= 2AND PE= 12):RETURN 1530 X= 7- X1:XP= 7- X2:Y= - Y1- 11:YP= Y:RETURN 1540 X= - INT (Y1* 2/ 3+ .5):XP= X:Y= INT (X1* 1.5+ .5)- 12 1550 YP= INT (X2* 1.5+ .5)- 10:ST= ABS (ST- 4)+ 4* (J= 2AND PE= 12):RETURN 1560 REM 1570 IF CH> 1THEN PL= - PL:GOTO 1620 1580 IF SL> 4THEN 1640 1590 PLOT 14,6,81,3,7,9:PRINT "CONGRATULATIONS!!":PLOT 15,6,75 1600 FOR Y= 7TO 10STEP 3:PLOT 3,1,Y:FOR K= 1TO 29:PRINT "*";:NEXT K:PRINT :NEXT Y 1610 FOR X= 1TO 25STEP 24:FOR Y= 8TO 9:PLOT 3,X,Y:PRINT "*****":NEXT Y,X:GOTO 1640 1620 GOSUB 710:PRINT " WINS":SC(1- (PL= - 1))= SC(1- (PL= - 1))+ 1 1630 PLOT 6,2,3,53,27- 2* (PL= - 1):PRINT SC(1- (PL= - 1)) 1640 PLOT 15,6,7,3,3,21:INPUT "CARE TO PLAY AGAIN? ";A$ 1650 IF LEFT$ (A$,1)= "Y"THEN GOSUB 1690:GOTO 190 1660 IF LEFT$ (A$,1)< > "N"THEN GOSUB 640:GOTO 1640 1670 LOAD "MENU":RUN 1680 REM 1690 PLOT 15,8,27,4:PRINT "LOAD QUINT.DSP":PLOT 27,27:RETURN 1700 REM 1710 PLOT 6,3,3,0,19:PRINT "(1) SOLITAIRE: TRY TO GET ALL" 1720 PRINT " 12 PIECES ON THE BOARD." 1730 PRINT "(2) 2 PLAYERS: TAKE TURNS. THE" 1740 PRINT " PLAYER WHO CAN NO LONGER" 1750 PRINT " PUT A QUINTOMINO ON THE" 1760 PRINT " BOARD IS THE LOSER." 1770 PRINT "(3) 2 PLAYERS: FIRST TAKE TURNS CHOOSING QUINTOMINOES (ENDING" 1780 PRINT " UP WITH 6 EACH). PLAY PROCEEDS AS IN (2) EXCEPT THAT" 1790 PRINT " PLAYERS MAY PLAY ONLY THEIR OWN QUINTOMINOES." 1800 PRINT "FOR EACH OF 1 THROUGH 3 ABOVE, ADVANCED QUINTOMINOES IS PLAYED" 1810 PRINT "WITH ONE OF THE BOARD SQUARES BLACKED OUT -- NO QUINTOMINO MAY" 1820 PRINT "BE PLACED ON IT." 1830 INPUT "WHAT'S YOUR CHOICE (1-3)? ";A$:CH= VAL (A$) 1840 IF CH< 1OR CH< > INT (CH)OR CH> 3THEN PLOT 28,11:GOTO 1830 1850 GOSUB 680:IF CH= 1THEN 1890 1860 PLOT 3,0,25:FOR J= 1TO 2:PRINT "NAME OF PLAYER"J; 1870 INPUT "? ";PL$(J):NEXT 1880 FOR J= 1TO 2:PLOT 28,11:PL$(J)= LEFT$ (PL$(J),10):NEXT 1890 RETURN 1900 REM 1910 PLOT 3,0,25:INPUT "REGULAR OR ADVANCED VERSION? ";A$:A$= LEFT$ (A$,1) 1920 PLOT 28,11:IF A$< > "R"AND A$< > "A"THEN 1910 1930 R= - 1:IF A$= "R"THEN 1980 1940 R= INT (64* RND (1))+ 1:Y= INT ((R+ 7)/ 8)- 1:X= R- 8* Y 1950 SQ(10* (Y+ 1)+ X+ 1)= 0:Y= Y* 3:X= 32+ (X- 1)* 4 1960 PLOT 22,30,3,X,Y:PRINT "neeo";:PLOT 26,26,26,26,10 1970 PRINT "a b";:PLOT 26,26,26,26,10:PRINT "lm":PLOT 29 1980 RETURN