Compucolor.org – Virtual Media

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

100 OUT 8,255:OUT 8,247
110 PLOT 6,2,12,27,24,15
120 CLEAR 500:GOTO 150
130 A= PEEK (33209):FOR B= 0TO 30* A:C= RND (1):NEXT B
140 RETURN
150 DIM DK(104),KD(104),FO(8),TB(20,10),ST(76),SP(1),SL(1),TC(1),UC(1)
160 PLOT 6,4,2,0,0,242,0,127,127,127,127,0,0,0,255
170 GOSUB 250
180 IF SW= 1THEN 200
190 GOSUB 130
200 GOSUB 870
210 GOTO 1220
220 PLOT 15,6,3,3,1,30
230 PRINT "                                             "
240 RETURN
250 REM
260 IF SW= 1THEN 290
270 PLOT 6,7,3,15,29
280 PRINT "COPYRIGHT 1980 BY DONALD R MILLER"
290 PLOT 14,6,56,3,24,11
300 PLOT 6,7
310 PRINT " S L Y    F O X "
320 PLOT 15,6,1,3,18,1
330 PRINT "--FOUNDATION UP--       --FOUNDATION DOWN--"
340 PLOT 6,3,3,1,9
350 PRINT "RETURN"
360 PLOT 6,3,3,9,9
370 PRINT "X"
380 PLOT 6,1,3,17,9
390 PRINT "1     2     3     4      5     6     7     8"
400 GOTO 460
410 PLOT 6,6,3,5,19
420 PRINT "A     B     C     D     E     F     G     H     I     J"
430 PLOT 6,6,3,5,28
440 PRINT "K     L     M     N     O     P     Q     R     S     T"
450 RETURN
460 PLOT 6,1,3,46,30
470 PRINT "FROM:"
480 PLOT 6,6,3,57,30
490 PRINT "TO:"
500 A$= "RESERVE"
510 PLOT 27,10,6,7,3,1,12
520 PRINT A$
530 PLOT 3,1,21:PRINT A$
540 PLOT 3,6,3:PRINT "STOCK"
550 PLOT 27,24
560 PLOT 6,38:X9= 1:Y9= 2
570 BC$= "%":GOSUB 4910
580 GOTO 650
590 PLOT 6,6
600 FOR Y9= 12TO 21STEP 9
610 FOR X9= 3TO 57STEP 6
620 GOSUB 5010
630 NEXT X9,Y9
640 RETURN
650 X9= 7:Y9= 2:GOSUB 4990
660 PLOT 6,3,3,1,1:PRINT 76
670 FO(1)= 1:FO(2)= 14:FO(3)= 27:FO(4)= 40:FO(5)= 13:FO(6)= 26:FO(7)= 39:FO(8)= 52
680 Y9= 2:A= 0
690 FOR X9= 15TO 33STEP 6
700 A= A+ 1
710 X= FO(A):GOSUB 4620
720 NEXT X9
730 A= 4
740 FOR X9= 40TO 58STEP 6
750 A= A+ 1
760 X= FO(A):GOSUB 4620
770 NEXT X9
780 SP= 1:SL= 76:TC= 20:UC= 0
790 FOR A= 0TO 20
800 FOR B= 0TO 10
810 TB(A,B)= 0
820 NEXT B,A
830 S2= 1:S4= 0:S3= 0:S1= 0
840 IF SW= 1THEN 860
850 GOSUB 3890:REM  INSTRUCTIONS
860 RETURN
870 REM
880 IF SW= 1THEN GOSUB 590:GOSUB 410:GOTO 980
890 PLOT 15,6,70,3,20,30
900 PRINT "HIT RETURN TO BEGIN"
910 OUT 8,255
920 POKE 33278,0
930 A= RND (1)
940 IF PEEK (33278)= 0THEN 930
950 OUT 8,247
960 GOSUB 220
970 GOSUB 3810:GOSUB 590:GOSUB 410
980 PLOT 27,10,6,4,3,62,13
990 PRINT "TO QUIT: Z & Z":PLOT 27,24
1000 IF SW= 1THEN SW= 0:GOTO 1050
1010 PLOT 6,1,3,1,30
1020 PRINT "*SHUFFLING*    OF 96"
1030 GOSUB 5100
1040 GOSUB 220
1050 FOR A= 1TO 76
1060 ST(A)= DK(A)
1070 NEXT A
1080 FOR B= 1TO 20
1090 TB(B,1)= DK(76+ B)
1100 NEXT B
1110 Y9= 12:A= 1
1120 FOR X9= 3TO 57STEP 6
1130 X= TB(A,1):GOSUB 4620
1140 A= A+ 1
1150 NEXT X9
1160 Y9= 21:A= 11
1170 FOR X9= 3TO 57STEP 6
1180 X= TB(A,1):GOSUB 4620
1190 A= A+ 1
1200 NEXT X9
1210 RETURN
1220 REM
1230 REM
1240 FOR A= 1TO 4
1250 IF FO(A)< > 13* ATHEN 1360
1260 NEXT A
1270 FOR A= 5TO 8
1280 IF FO(A)< > ((A- 4)* 13)- 12THEN 1360
1290 NEXT A
1300 REM
1310 PLOT 14,6,70,3,0,31,11
1320 PLOT 3,22,31
1330 PRINT "WE HAVE A WINNER !!!"
1340 FOR I= 1TO 2500:NEXT I
1350 GOTO 4270
1360 REM
1370 GOSUB 220
1380 PLOT 15,6,1,3,1,30
1390 OUT 8,255
1400 INPUT "ENTER 'FROM' (A-T,X OR RETURN): ";Q$
1410 OUT 8,247
1420 Q$= LEFT$ (Q$,1)
1430 PLOT 6,1,3,52,30
1440 PRINT Q$
1450 F$= Q$
1460 GOSUB 220
1470 IF F$= ""THEN F$= "0"
1480 IF F$= "0"THEN 1680
1490 IF F$= "X"THEN 1630
1500 IF F$< "U"AND F$> "@"THEN 1580
1510 IF S3= 0THEN 1530
1520 IF F$< "9"AND F$> "0"THEN 1580
1530 IF F$= "Z"THEN 1580
1540 PLOT 6,3,3,1,30
1550 PRINT "'FROM' ENTRY OF ";F$;" NOT A-T,X OR RETURN"
1560 FOR I= 0TO 1000:NEXT I
1570 GOTO 1360
1580 IF S3= 0THEN 1630
1590 IF F$= "Z"THEN 1630
1600 T$= F$:F$= "X"
1610 GOSUB 1870
1620 GOTO 1720
1630 PLOT 15,6,6,3,1,30
1640 OUT 8,255
1650 INPUT "ENTER 'TO' (A-T,1-8, OR RETURN): ";Q$
1660 OUT 8,247
1670 Q$= LEFT$ (Q$,1)
1680 PLOT 6,6,3,61,30
1690 PRINT Q$
1700 T$= Q$
1710 GOSUB 220
1720 IF T$= ""THEN T$= "0"
1730 IF T$= "Z"THEN 1770
1740 IF T$= "0"THEN 1770
1750 IF T$< "U"AND T$> "@"THEN 1770
1760 GOTO 1930
1770 IF T$= "Z"AND F$= "Z"THEN 4270
1780 IF F$= "0"AND F$= T$THEN 1970
1790 IF S1= 0THEN 1840
1800 IF T$= G$THEN 1840
1810 PLOT 6,3,3,1,30
1820 PRINT "MUST MOVE CARD FROM STOCK TO ";G$
1830 GOTO 1560
1840 IF F$= "X"THEN 2370
1850 IF F$< "U"AND F$> "@"THEN 3120
1860 GOTO 1540
1870 REM  POST MODIFIED FROM/TO
1880 PLOT 6,1,3,52,30
1890 PRINT F$
1900 PLOT 6,6,3,61,30
1910 PRINT T$
1920 RETURN
1930 IF T$< "9"AND T$> "0"THEN 1770
1940 PLOT 6,3,3,1,30
1950 PRINT "'TO' ENTRY OF ";T$;" NOT A-T,1-8 OR RETURN"
1960 GOTO 1560
1970 REM
1980 IF UC= 0THEN 2060
1990 IF S1= 1THEN T$= G$:F$= "X":GOSUB 1870:GOTO 2370
2000 PLOT 6,3,3,1,30
2010 PRINT "ALREADY HAVE STOCK CARD TURNED UP"
2020 GOTO 1560
2030 PLOT 6,3,3,1,30
2040 PRINT "STOCK IS EMPTY"
2050 GOTO 1560
2060 IF SP= 0OR SP> 76THEN 2030
2070 IF S1< > 0THEN 2090
2080 IF S4= 1OR S2= 1THEN 2200
2090 X9= 7:Y9= 2:X= ST(SP):GOSUB 4620
2100 UC= X
2110 ST(SP)= 0
2120 SL= SL- 1
2130 PLOT 6,3,3,1,1:PRINT SL;" "
2140 SP= SP+ 1:IF SP> 76THEN SP= 0
2150 IF SP= 0THEN 2320
2160 IF S3= 0THEN 2170
2170 IF SP< 1OR SL< 1THEN 2270
2180 IF S1= 1THEN F$= "X":T$= G$:GOSUB 1870:GOTO 2370
2190 GOTO 1220
2200 S2= 0
2210 S4= 0
2220 S3= 1
2230 TC= 20
2240 PLOT 6,7,3,9,1
2250 PRINT TC;" "
2260 GOTO 2090
2270 S3= 0
2280 S4= 1
2290 PLOT 6,3,3,9,1
2300 PRINT "    "
2310 GOTO 2180
2320 BC$= " ":PLOT 6,2:X9= 1:Y9= 2:GOSUB 4910
2330 PLOT 3,1,1:PRINT "     "
2340 PLOT 3,1,9:PRINT "      "
2350 PLOT 27,10,3,6,3:PRINT "     ":PLOT 27,24
2360 GOTO 2160
2370 REM
2380 IF UC= 0AND S1= 1THEN 2430
2390 IF UC< > 0THEN 2430
2400 PLOT 6,3,3,1,30
2410 PRINT "NO UP CARD FROM STOCK TO PLAY"
2420 GOTO 1560
2430 IF T$< > "0"THEN 2470
2440 PLOT 6,3,3,1,30
2450 PRINT "CAN'T SEND CARD FROM STOCK TO SELF"
2460 GOTO 1560
2470 IF T$< "9"AND T$> "0"THEN 2860
2480 REM  TO RESERVE
2490 T= ASC (T$)- 64
2500 IF TB(T,10)= 0THEN 2540
2510 PLOT 6,3,3,1,30
2520 PRINT "RESERVE PILE FULL AT 10 CARDS"
2530 GOTO 1560
2540 FOR A= 10TO 2STEP - 1
2550 TB(T,A)= TB(T,A- 1)
2560 NEXT A
2570 TB(T,1)= UC
2580 H= T:J= T:GOSUB 3660
2590 X9= 7:Y9= 2:BC$= " ":PLOT 6,2:GOSUB 4910
2600 GOSUB 4990
2610 UC= 0
2620 X= TB(T,1)
2630 IF T> 10THEN 2770
2640 Y9= 12
2650 X9= 3+ (T- 1)* 6
2660 GOSUB 4620
2670 S1= 0
2680 IF SP= 0THEN GOSUB 3090
2690 IF S3= 0THEN 1220
2700 TC= TC- 1
2710 IF TC< 1THEN 2800
2720 PLOT 6,7,3,9,1
2730 PRINT TC;" "
2740 F$= "0":T$= "0"
2750 GOSUB 1870
2760 GOTO 1970
2770 Y9= 21
2780 X9= 3+ (T- 11)* 6
2790 GOTO 2660
2800 S3= 0
2810 S4= 1
2820 TC= 0
2830 PLOT 6,7,3,9,1
2840 PRINT "    "
2850 GOTO 1220
2860 REM  TO FOUNDATION
2870 T= ASC (T$)- 48
2880 IF T> 4THEN 2930
2890 IF FO(T)+ 1= UCTHEN 2950
2900 PLOT 6,3,3,1,30
2910 PRINT "SEQUENCE AND/OR SUIT NO GOOD"
2920 GOTO 1560
2930 IF FO(T)- 1= UCTHEN 2950
2940 GOTO 2900
2950 X9= 7:Y9= 2:BC$= " ":PLOT 6,2:GOSUB 4910
2960 GOSUB 4990
2970 X= UC:UC= 0
2980 Y9= 2
2990 IF T> 4THEN X9= 40+ (T- 5)* 6:GOTO 3010
3000 X9= 15+ (T- 1)* 6
3010 GOSUB 4620
3020 FO(T)= X
3030 IF SP= 0THEN GOSUB 3090
3040 IF S3= 0THEN 3080
3050 F$= "0":T$= "0"
3060 GOSUB 1870
3070 GOTO 1970
3080 GOTO 1220
3090 X9= 7:Y9= 2:PLOT 6,2:BC$= " ":GOSUB 4910
3100 PLOT 3,9,9:PRINT " "
3110 RETURN
3120 REM
3130 IF S3= 0THEN 3170
3140 PLOT 6,3,3,1,30
3150 PRINT "YOU MUST FINISH MOVING";TC;" CARDS TO RESERVE"
3160 GOTO 1560
3170 IF T$< "9"AND T$> "0"THEN 3210
3180 PLOT 6,3,3,1,30
3190 PRINT "WITH FROM A-T, 'TO' IS NOT 1-8"
3200 GOTO 1560
3210 REM
3220 F= ASC (F$)- 64
3230 T= ASC (T$)- 48
3240 IF T> 4THEN 3270
3250 IF FO(T)+ 1= TB(F,1)THEN 3290
3260 GOTO 2900
3270 IF FO(T)- 1= TB(F,1)THEN 3290
3280 GOTO 2900
3290 X= TB(F,1)
3300 FOR A= 1TO 9
3310 TB(F,A)= TB(F,A+ 1)
3320 NEXT A
3330 TB(F,10)= 0
3340 H= F:J= F:GOSUB 3660
3350 Y9= 2
3360 IF T> 4THEN X9= 40+ (T- 5)* 6:GOTO 3380
3370 X9= 15+ (T- 1)* 6
3380 GOSUB 4620
3390 FO(T)= X
3400 X= TB(F,1)
3410 IF X= 0THEN PLOT 6,2:BC$= " ":GOTO 3500
3420 IF F> 10THEN 3470
3430 Y9= 12
3440 X9= 3+ (F- 1)* 6
3450 GOSUB 4620
3460 GOTO 1220
3470 Y9= 21
3480 X9= 3+ (F- 11)* 6
3490 GOTO 3450
3500 IF F> 10THEN 3560
3510 Y9= 12
3520 X9= 3+ (F- 1)* 6
3530 GOSUB 4910:GOSUB 4990
3540 IF S2= 1THEN 3590
3550 GOTO 1220
3560 Y9= 21
3570 X9= 3+ (F- 11)* 6
3580 GOTO 3530
3590 S1= 1
3600 G$= F$
3610 GOSUB 4510
3620 F$= "0"
3630 T$= F$
3640 GOSUB 1870
3650 GOTO 1970
3660 REM
3670 PLOT 6,4,15
3680 CC= 0
3690 FOR A= 1TO 10
3700 IF TB(H,A)< > 0THEN CC= CC+ 1
3710 NEXT A
3720 IF J> 10THEN 3770
3730 PLOT 3,7+ (J- 1)* 6,19
3740 IF CC< 2THEN 3790
3750 PRINT RIGHT$ ((STR$ (CC- 1)),1)
3760 RETURN
3770 PLOT 3,7+ (J- 11)* 6,28
3780 GOTO 3740
3790 PRINT "  "
3800 GOTO 3760
3810 REM
3820 PLOT 6,2
3830 C$= "                                                            "
3840 FOR A= 12TO 29
3850 PLOT 3,3,A
3860 PRINT C$
3870 NEXT A
3880 RETURN
3890 REM
3900 PLOT 6,2,15,3,3,12
3910 PRINT "OBJECT: BUILD ACES UP IN SUIT TO KINGS, AND KINGS DOWN IN"
3920 PLOT 3,3,13
3930 PRINT "        SUIT TO ACES. THE RESERVE CONSISTS OF 20 CARDS."
3940 PLOT 3,3,14
3950 PRINT "        RESERVE CARDS (A-T) ARE PLAYED TO THE FOUNDATIONS"
3960 PLOT 3,3,15
3970 PRINT "        (1-8).  THE CARD AT THE TOP (X) OF THE STOCK CAN"
3980 PLOT 3,3,16
3990 PRINT "        BE PLAYED TO THE FOUNDATIONS OR TO THE RESERVE."
4000 PLOT 6,3
4010 PLOT 3,3,17
4020 PRINT "PLAY:   IF YOU START THE GAME BY PLAYING FROM THE RESERVE"
4030 PLOT 3,3,18
4040 PRINT "        TO THE FOUNDATIONS, YOU MUST IMMEDIATELY REPLACE"
4050 PLOT 3,3,19
4060 PRINT "        THE CARD IN THE RESERVE WITH A CARD FROM THE STOCK."
4070 PLOT 3,3,20
4080 PRINT "        AFTER PLAYS FROM THE RESERVE ARE EXHAUSTED, MOVE"
4090 PLOT 3,3,21
4100 PRINT "        20 CARDS (OR LESS IF STOCK REMAINING IS LESS THAN"
4110 PLOT 3,3,22
4120 PRINT "        2O) FROM THE STOCK TO THE RESERVE, PLACING THEM"
4130 PLOT 3,3,23
4140 PRINT "        ANYWHERE YOU WANT IN THE RESERVE.  THE NUMBER OF"
4150 PLOT 3,3,24
4160 PRINT "        CARDS HIDDEN UNDER THE TOP CARD WILL BE SHOWN IN"
4170 PLOT 3,3,25
4180 PRINT "        BLUE UNDER THE TOP CARD IN THE RESERVE."
4190 PLOT 6,1
4200 PLOT 3,3,26
4210 PRINT "HINT:   THE COMPUTER WILL AUTOMATICALLY PLAY SOME CARD"
4220 PLOT 3,3,27
4230 PRINT "        MOVES FOR YOU. OTHER OBVIOUS MOVES CAN BE SHORTCUT"
4240 PLOT 3,3,28
4250 PRINT "        BY HITTING 'RETURN' ONLY, ON THE 'FROM' MESSAGE !"
4260 RETURN
4270 REM
4280 PLOT 14,6,6,3,0,31,11
4290 PLOT 3,0,31
4300 OUT 8,255
4310 INPUT "DO YOU WANT TO PLAY ANOTHER GAME (Y/N) ? ";Q$
4320 OUT 8,247
4330 IF LEFT$ (Q$,1)< > "Y"THEN 4460
4340 PLOT 3,0,31,11
4350 PLOT 6,3,3,0,31
4360 OUT 8,255
4370 INPUT "SAME DECK (Y/N) ? ";Q$
4380 OUT 8,247
4390 IF LEFT$ (Q$,1)< > "Y"THEN 4410
4400 SW= 1
4410 PLOT 15
4420 IF SW= 1THEN 4440
4430 FOR A= 0TO 104:KD(A)= 0:NEXT A
4440 PLOT 6,2,12,27,24,15
4450 GOTO 160
4460 REM  END IT ALL
4470 PLOT 6,2,27,11,15
4480 OUT 8,255
4490 LOAD "MENU":RUN
4500 END
4510 REM
4520 G$= F$:S1= 1
4530 PLOT 6,12
4540 PLOT 15,3,X9,Y9:PRINT "YOUR "
4550 PLOT 3,X9,Y9+ 1:PRINT "NEXT "
4560 PLOT 3,X9,Y9+ 2:PRINT "MOVE "
4570 PLOT 3,X9,Y9+ 3:PRINT "MUST "
4580 PLOT 3,X9,Y9+ 4:PRINT " BE  "
4590 PLOT 3,X9,Y9+ 5:PRINT " TO  "
4600 PLOT 3,X9,Y9+ 6:PRINT "HERE!"
4610 RETURN
4620 REM
4630 IF X> 39THEN Q= X- 39:P$= "c":PLOT 6,56:GOTO 4670
4640 IF X> 26THEN Q= X- 26:P$= "h":PLOT 6,57:GOTO 4670
4650 IF X> 13THEN Q= X- 13:P$= "d":PLOT 6,57:GOTO 4670
4660 Q= X:P$= "s":PLOT 6,56
4670 PLOT 27,10:FOR II= 0TO 4:PLOT 3,X9+ II,Y9:PRINT "       ":NEXT II
4680 IF Q> 9THEN 4750
4690 IF Q> 5THEN 4760
4700 IF Q> 3THEN 4770
4710 IF Q= 1OR Q= 5OR Q= 7THEN 4780
4720 IF Q= 2OR Q= 8THEN 4790
4730 IF Q= 3OR Q= 9OR Q> 10THEN 4800
4740 GOTO 4810
4750 PLOT 3,X9+ 1,Y9+ 1:PRINT P$;P$;P$;P$;P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$;P$;P$;P$;P$:GOTO 4730
4760 PLOT 3,X9+ 1,Y9+ 1:PRINT P$" "P$" "P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$" "P$" "P$:GOTO 4710
4770 PLOT 3,X9+ 1,Y9+ 1:PRINT P$"   "P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$"   "P$:GOTO 4710
4780 PLOT 3,X9+ 2,Y9+ 3:PRINT P$:GOTO 4810
4790 PLOT 3,X9+ 2,Y9+ 2:PRINT P$" "P$:GOTO 4810
4800 PLOT 3,X9+ 2,Y9+ 1:PRINT P$" "P$" "P$
4810 IF Q= 1THEN PLOT 3,X9,Y9:PRINT "A":PLOT 3,X9+ 4,Y9+ 6:PRINT "A":GOTO 4900
4820 IF Q> 9THEN 4840
4830 PLOT 3,X9,Y9:PRINT RIGHT$ ((STR$ (Q)),1):PLOT 3,X9+ 4,Y9+ 6:PRINT RIGHT$ ((STR$ (Q)),1):GOTO 4900
4840 PLOT 27,24:IF Q> 10THEN 4860
4850 PLOT 3,X9,Y9:PRINT RIGHT$ ((STR$ (Q)),2):PLOT 3,X9+ 3,Y9+ 6:PRINT RIGHT$ ((STR$ (Q)),2):GOTO 4900
4860 IF Q= 11THEN CD$= "J":GOTO 4890
4870 IF Q= 12THEN CD$= "Q":GOTO 4890
4880 CD$= "K"
4890 PLOT 3,X9,Y9:PRINT CD$:PLOT 3,X9+ 4,Y9+ 6:PRINT CD$:PLOT 3,X9+ 2,Y9+ 3:PRINT CD$
4900 PLOT 27,24,3,X9+ 4,Y9:PRINT P$:PLOT 3,64,0:RETURN
4910 REM  DRAW BACK OF CARD FROM X9,Y9,BC$(PATTERN)
4920 BC$= BC$+ BC$+ BC$+ BC$+ BC$
4930 FOR I= 0TO 6
4940 PLOT 3,X9,Y9+ I
4950 PRINT BC$
4960 NEXT I
4970 PLOT 3,64,0
4980 RETURN
4990 REM
5000 PLOT 6,4
5010 PLOT 3,X9,Y9:PRINT "neeeo"
5020 PLOT 3,X9,Y9+ 6:PRINT "lm"
5030 PLOT 27,10
5040 PLOT 3,X9,Y9+ 1:PRINT "aaaaa"
5050 PLOT 3,X9+ 4,Y9+ 1:PRINT "bbbbb"
5060 PLOT 27,24,3,64,0
5070 RETURN
5080 REM
5090 FOR A= 1TO 104:KD(A)= 0:NEXT A
5100 PLOT 6,1
5110 FOR I= 1TO 96
5120 PLOT 3,12,30:PRINT I;" "
5130 PLOT 3,64,0
5140 A= INT (104* RND (1)+ 1)
5150 AA= PEEK (33209)
5160 IF AA= 3* ITHEN FOR B= 0TO I:C= RND (1):NEXT B
5170 IF KD(A)= 1THEN 5140
5180 KD(A)= 1
5190 IF A= 1OR A= 13OR A= 14OR A= 26OR A= 27OR A= 39OR A= 40OR A= 52THEN 5140
5200 IF A> 52THEN A= A- 52
5210 DK(I)= A
5220 NEXT I
5230 RETURN
5240 END