Compucolor.org – Virtual Media

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