Listing of file='LUCIE.BAS;01' on disk='vmedia/chip_13-sector.ccvf'
0 CLEAR 1000 1 OUT 8,255:OUT 8,247 2 DIM DK(52),KD(52),TB(18,15),FO(4) 3 BL$= " " 10 PLOT 6,2,12,15,27,24 20 GOSUB 1000:REM HK 30 GOTO 2000:REM LOGIC FLOW 1000 REM HK 1005 L1= PEEK (33209):FOR L2= 0TO L1:L3= RND (1):NEXT L2 1007 GOSUB 1820 1010 PLOT 6,6,15,3,15,5 1020 PRINT "COPYRIGHT 1979 BY DONALD R MILLER" 1030 PLOT 6,6,3,7,0:PRINT "LA" 1040 PLOT 3,6,1:PRINT "BELLE" 1045 PLOT 3,6,2:PRINT "LUCIE" 1050 PLOT 6,3,3,13,0 1060 PRINT "A B C D E F G H I" 1070 PLOT 6,3,3,13,31 1080 PRINT "J K L M N O P Q R" 1090 PLOT 6,1,3,7,4:PRINT "FM:" 1100 PLOT 6,6,3,7,8:PRINT "TO:" 1110 PLOT 6,3 1120 PLOT 2,14,98,242,14,105,19,105,19,98,14,98,255 1130 PLOT 2,14,82,242,14,89,19,89,19,82,14,82,255 1140 PLOT 6,7,3,5,3:PRINT "s" 1150 PLOT 6,1,3,5,11:PRINT "d" 1160 PLOT 3,5,20:PRINT "h" 1170 PLOT 6,7,3,5,28:PRINT "c" 1180 X9= 0:Y9= 0:GOSUB 40400 1190 Y9= 8:GOSUB 40400 1200 Y9= 17:GOSUB 40400 1210 Y9= 25:GOSUB 40400 1220 PLOT 6,3,3,5,24:PRINT "MOVES" 1230 PLOT 6,1,3,6,30:PRINT "PASS" 1240 PLOT 6,6 1250 PLOT 2,11,19,242,11,24,18,24,18,19,11,19,255 1260 MO= - 1 1270 PLOT 6,7,3,7,31:PRINT 1 1280 PA= 1 1300 GOSUB 3000 1400 PLOT 3,15,5,6,2:PRINT LEFT$ (BL$,34) 1490 N= 1 1500 FOR L1= 1TO 17 1510 FOR L2= 1TO 3 1520 TB(L1,L2)= DK(N) 1530 N= N+ 1 1540 NEXT L2,L1 1550 TB(18,1)= DK(52) 1600 FOR L1= 1TO 18 1610 FOR L2= 3TO 1STEP - 1 1620 X= TB(L1,L2) 1625 IF X= 0THEN 1680 1630 X9= L1* 6+ 5 1640 IF L1> 9THEN X9= X9- 54 1660 IF L1> 9THEN 1700 1662 IF L2= 1THEN 1740 1664 IF L2= 2THEN 1770 1666 IF L2= 3THEN Y9= 1 1670 GOSUB 40000 1680 NEXT L2,L1 1690 GOTO 1800 1700 IF L2= 1THEN 1900 1710 IF L2= 2THEN 1930 1720 IF L2= 3THEN Y9= 24 1725 IF L2= 1AND L1= 18THEN Y9= 24 1730 GOTO 1670 1740 IF TB(L1,2)= 0THEN 1755 1745 Y9= 3 1746 IF TB(L1,3)= 0THEN Y9= 2 1750 GOTO 1670 1755 IF TB(L1,3)= 0THEN Y9= 1:GOTO 1670 1760 Y9= 2 1765 GOTO 1670 1770 IF TB(L1,3)= 0THEN Y9= 1:GOTO 1670 1775 Y9= 2 1780 GOTO 1670 1800 PLOT 6,2 1810 RETURN 1820 PLOT 6,3,3,12,12 1825 PRINT "BUILD UP FOUNDATION (ON LEFT) FROM ACES TO KINGS" 1830 PLOT 3,12,13 1835 PRINT "AND CAN BUILD DOWN IN SEQUENCE BY SUIT IN COLUMNS" 1840 PLOT 3,12,14 1845 PRINT "A TO R. ONLY KINGS CAN BE MOVED TO OPEN COLUMNS." 1850 PLOT 3,12,16 1855 PRINT "MOVE ONLY ONE CARD AT A TIME, BY ENTERING COLUMN" 1860 PLOT 3,12,17 1865 PRINT "A TO R. TO MOVE TO FOUNDATION, HIT RETURN FOR" 1870 PLOT 3,12,18 1875 PRINT "'TO' LOCATION. TO QUIT OR RESHUFFLE, ENTER S&S." 1899 RETURN 1900 IF TB(L1,2)= 0THEN 1915 1905 Y9= 22 1906 IF TB(L1,3)= 0THEN Y9= 23 1910 GOTO 1725 1915 IF TB(L1,3)= 0THEN Y9= 24:GOTO 1725 1920 Y9= 23 1925 GOTO 1725 1930 IF TB(L1,3)= 0THEN Y9= 24:GOTO 1725 1935 Y9= 23 1940 GOTO 1725 1999 RETURN 2000 REM 2010 FOR L1= 1TO 4 2015 IF FO(L1)= 0THEN 2030 2020 IF FO(L1)/ 13= INT (FO(L1)/ 13)THEN 2040 2030 GOTO 2100:REM NOT A WINNER 2040 NEXT L1 2050 REM A WINNER 2060 PLOT 3,0,15,6,70:PRINT "YOU WIN !" 2070 GOTO 9020 2100 MO= MO+ 1 2105 IF MO< > 2THEN 2120 2107 PLOT 6,2 2110 FOR L1= 12TO 18 2111 PLOT 3,12,L1 2112 PRINT BL$ 2114 NEXT L1 2120 PLOT 6,3,3,6,26 2130 PRINT RIGHT$ ((STR$ (MO)),3) 2200 PLOT 6,1,3,0,15 2210 OUT 8,255 2220 INPUT "FROM:";Q1$ 2230 OUT 8,247 2235 PLOT 3,0,15,11 2240 Q1$= LEFT$ (Q1$,1) 2242 PLOT 6,1,3,8,6:PRINT Q1$ 2250 IF Q1$> "S"OR Q1$< "A"THEN SW= 1:GOTO 2900 2260 PLOT 6,6,3,0,15 2270 OUT 8,255 2280 INPUT "TO:";Q2$ 2290 OUT 8,247 2295 PLOT 3,0,15,11 2300 Q2$= LEFT$ (Q2$,1) 2310 PLOT 6,6,3,8,10:PRINT Q2$ 2320 IF Q2$= "0"THEN 2350 2330 IF Q2$> "S"OR Q2$< "A"THEN SW= 2:GOTO 2900 2340 IF Q1$= "S"AND Q2$= "S"THEN 9000 2350 IF Q2$= Q1$THEN SW= 3:GOTO 2900 2352 IF Q1$= "S"AND Q2$< > "S"THEN SW= 10:GOTO 2900 2354 IF Q2$= "S"AND Q1$< > "S"THEN SW= 10:GOTO 2900 2360 IF Q2$= "0"THEN 4000:REM TO FOUNDATION 2370 GOTO 5000 2900 PLOT 6,6,3,0,15 2910 ON SWGOTO 2961,2962,2963,2964,2965,2966,2967,2968,2969,2970 2920 FOR L1= 0TO 999:NEXT L1 2930 PLOT 3,0,15,11 2932 IF MO> 0THEN MO= MO- 1 2940 IF SW= 1THEN 2200 2950 IF SW= 2THEN 2260 2960 GOTO 2100 2961 PRINT "'FROM' NOT A TO S":GOTO 2920 2962 PRINT "'TO' NOT A TO S OR RETURN":GOTO 2920 2963 PRINT "'FROM' AND 'TO' ARE SAME":GOTO 2920 2964 PRINT "SUIT SEQUENCE NO GOOD":GOTO 2920 2965 PRINT "'TO' LOCATION OCCUPIED":GOTO 2920 2966 PRINT "'FROM' AND 'TO' SUIT NOT SAME":GOTO 2920 2967 PRINT "NO CARD AT 'FROM' LOCATION":GOTO 2920 2968 PRINT "NO CARD AT 'TO' LOCATION":GOTO 2920 2969 PRINT "SUIT SEQUENCE NO GOOD":GOTO 2920 2970 PRINT "'FROM' AND 'TO' NOT COMPATIBLE":GOTO 2920 2999 RETURN 3000 REM 3010 OUT 8,255 3020 PLOT 6,65,3,27,23 3030 PRINT "HIT RETURN" 3040 POKE 33278,0 3050 I= RND (1) 3060 IF PEEK (33278)= 0THEN 3050 3065 OUT 8,247 3070 PLOT 6,70,3,27,23 3080 PRINT "SHUFFLING " 3090 PLOT 3,64,0 3100 GOSUB 40500 3110 PLOT 3,27,23:PRINT " " 3120 FOR L1= 1TO 18 3130 FOR L2= 1TO 15 3140 TB(L1,L2)= 0 3150 NEXT L2,L1 3190 RETURN 4000 REM TO FOUNDATION 4010 FM= ASC (Q1$)- 64 4020 F= TB(FM,1) 4030 F1= F 4032 FOR L1= 1TO 3:IF F1> 13THEN F1= F1- 13:NEXT L1 4035 F2= INT ((F- 1)/ 13)+ 1 4040 IF FO(F2)+ 1= F1THEN 4100 4050 REM SEQUENCE NOGOOD 4060 SW= 4:GOTO 2900 4100 REM OK TO MOVE CARD 4110 X9= 0 4120 Y9= F2* 8- 8 4122 IF F2< 3THEN 4130 4124 Y9= F2* 8- 8+ 1 4130 X= F 4135 SV= 0 4140 GOSUB 40000 4145 FO(F2)= F1 4146 FC= FC+ 1 4150 X9= FM* 6+ 5 4160 IF FM> 9THEN X9= X9- 54 4170 IF FM> 9THEN 4500 4174 SV= 1 4180 Y9= 1 4190 FOR L1= 2TO 15 4200 IF TB(FM,L1)= 0THEN 4250 4210 Y9= Y9+ 1 4220 NEXT L1 4250 BC$= " " 4255 PLOT 6,0 4260 GOSUB 40300 4280 X9= FM* 6+ 5 4290 Y9= 0 4300 FOR L1= 1TO 14 4310 TB(FM,L1)= TB(FM,L1+ 1) 4320 NEXT L1 4330 TB(FM,15)= 0 4340 FOR L1= 1TO 15 4350 IF TB(FM,L1)= 0THEN 4400 4360 Y9= Y9+ 1 4370 NEXT L1 4400 X= TB(FM,1) 4410 GOSUB 40000 4430 GOTO 2000 4500 REM BOTTOM ROW 4505 SV= 2 4510 Y9= 24 4520 FOR L1= 2TO 15 4530 IF TB(FM,L1)= 0THEN 4560 4540 Y9= Y9- 1 4550 NEXT L1 4560 BC$= " " 4570 PLOT 6,0 4580 GOSUB 40300 4590 X9= FM* 6+ 5 4600 IF FM> 9THEN X9= X9- 54 4610 Y9= 25 4620 FOR L1= 1TO 14 4630 TB(FM,L1)= TB(FM,L1+ 1) 4640 NEXT L1 4650 TB(FM,15)= 0 4660 FOR L1= 1TO 15 4670 IF TB(FM,L1)= 0THEN 4400 4680 Y9= Y9- 1 4690 NEXT L1 4700 GOTO 4400 5000 REM TO TABLEAU 5010 FM= ASC (Q1$)- 64 5020 F= TB(FM,1) 5030 F1= F 5040 FOR L1= 1TO 3:IF F1> 13THEN F1= F1- 13:NEXT L1 5050 F2= INT ((F- 1)/ 13)+ 1 5060 T3= ASC (Q2$)- 64 5070 T= TB(T3,1) 5080 T1= T 5090 FOR L1= 1TO 3:IF T1> 13THEN T1= T1- 13:NEXT L1 5100 T2= INT ((T- 1)/ 13)+ 1 5110 IF F1= 13THEN 6000 5120 IF F1= 0THEN SW= 7:GOTO 2900 5130 IF T1= 0THEN SW= 8:GOTO 2900 5140 IF F2< > T2THEN SW= 6:GOTO 2900 5150 IF F1+ 1< > T1THEN SW= 9:GOTO 2900 5160 X9= T3* 6+ 5 5170 IF T3> 9THEN X9= X9- 54 5180 IF T3> 9THEN 5400 5185 SV= 1 5190 Y9= 2 5200 FOR L1= 2TO 15 5210 IF TB(T3,L1)= 0THEN 5240 5220 Y9= Y9+ 1 5230 NEXT L1 5240 X= F 5250 GOSUB 40000 5260 FOR L1= 15TO 2STEP - 1 5270 TB(T3,L1)= TB(T3,L1- 1) 5280 NEXT L1 5290 TB(T3,1)= F 5390 GOTO 4150 5400 REM BOTTOM ROW 5405 SV= 2 5410 Y9= 23 5420 FOR L1= 2TO 15 5430 IF TB(T3,L1)= 0THEN 5460 5440 Y9= Y9- 1 5450 NEXT L1 5460 GOTO 5240 6000 REM FROM CARD IS A KING 6010 IF TB(T3,1)< > 0THEN SW= 5:GOTO 2900 6020 X9= T3* 6+ 5 6030 IF T3> 9THEN X9= X9- 54 6040 Y9= 1 6050 IF T3> 9THEN Y9= 24 6060 X= F 6065 SV= 0 6070 GOSUB 40000 6080 TB(T3,1)= X 6090 GOTO 4150 9000 REM SHUFFLE OR QUIT 9010 GOTO 10000 9020 FOR L1= 0TO 999:NEXT L1 9030 PLOT 3,0,15,11 9040 OUT 8,255 9050 PLOT 3,0,15,6,65 9060 INPUT "PLAY ANOTHER GAME (Y/N) ?";Q$ 9070 OUT 8,247 9080 PLOT 3,0,15,11 9090 Q$= LEFT$ (Q$,1) 9100 IF Q$< > "Y"THEN 9900 9110 FOR L1= 1TO 52:KD(L1)= 0:NEXT L1 9120 FOR L1= 1TO 4:FO(L1)= 0:NEXT L1 9130 FOR L1= 1TO 18:FOR L2= 1TO 15 9140 TB(L1,L2)= 0 9150 NEXT L2,L1 9160 FC= 0 9170 SV= 0 9290 GOTO 10 9900 PLOT 6,2,27,11,15 9910 LOAD "MENU":RUN 9920 END 10000 FOR L1= 0TO 999:NEXT L1 10010 PLOT 3,0,15,11 10020 OUT 8,255 10030 PLOT 3,0,15,6,1 10040 INPUT "SHUFFLE AND MAKE ANOTHER PASS (Y/N) ?";Q$ 10050 OUT 8,247 10060 PLOT 3,0,15,11 10070 IF LEFT$ (Q$,1)< > "Y"THEN 9040 10075 SV= 0 10080 PA= PA+ 1 10090 PLOT 3,7,31,6,7 10095 IF PA> 3THEN 10200 10100 PRINT RIGHT$ ((STR$ (PA)),2) 10110 FOR L1= 1TO 30 10120 PLOT 3,11,L1 10130 PRINT " " 10132 NEXT L1 10135 FOR L1= 1TO 52:KD(L1)= 1:DK(L1)= 0:NEXT L1 10140 FOR L1= 1TO 18 10150 FOR L2= 1TO 15 10160 L5= TB(L1,L2) 10162 IF L5= 0THEN 10170 10164 KD(L5)= 0 10170 NEXT L2,L1 10180 GOSUB 1300 10190 GOTO 2000 10200 PLOT 6,1,3,0,15 10210 PRINT "YOU WILL EXCEED THREE PASSES" 10220 FOR L1= 0TO 999:NEXT L1 10230 PLOT 3,0,15,11 10240 PLOT 6,68,3,7,31 10250 GOTO 10100 40000 REM DRAW CARD AT X9,Y9, FROM X (1-52) 40001 IF X= 0THEN RETURN 40002 IF SV< > 0THEN 40280 40005 IF X> 39THEN Q= X- 39:P$= "c":PLOT 6,56:GOTO 40040 40010 IF X> 26THEN Q= X- 26:P$= "h":PLOT 6,57:GOTO 40040 40020 IF X> 13THEN Q= X- 13:P$= "d":PLOT 6,57:GOTO 40040 40030 Q= X:P$= "s":PLOT 6,56 40040 IF SV< > 0THEN 40180 40045 PLOT 27,10:FOR II= 0TO 4:PLOT 3,X9+ II,Y9:PRINT " ":NEXT II 40050 IF Q> 9THEN 40120 40060 IF Q> 5THEN 40130 40070 IF Q> 3THEN 40140 40080 IF Q= 1OR Q= 5OR Q= 7THEN 40150 40090 IF Q= 2OR Q= 8THEN 40160 40100 IF Q= 3OR Q= 9OR Q> 10THEN 40170 40110 GOTO 40180 40120 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 40100 40130 PLOT 3,X9+ 1,Y9+ 1:PRINT P$" "P$" "P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$" "P$" "P$:GOTO 40080 40140 PLOT 3,X9+ 1,Y9+ 1:PRINT P$" "P$:PLOT 3,X9+ 3,Y9+ 1:PRINT P$" "P$:GOTO 40080 40150 PLOT 3,X9+ 2,Y9+ 3:PRINT P$:GOTO 40180 40160 PLOT 3,X9+ 2,Y9+ 2:PRINT P$" "P$:GOTO 40180 40170 PLOT 3,X9+ 2,Y9+ 1:PRINT P$" "P$" "P$ 40180 IF Q= 1THEN 40182 40181 GOTO 40190 40182 IF SV= 2THEN 40184 40183 PLOT 3,X9,Y9:PRINT "A" 40184 IF SV= 1THEN 40186 40185 PLOT 3,X9+ 4,Y9+ 6:PRINT "A" 40186 GOTO 40270 40190 IF Q> 9THEN 40210 40200 IF SV= 2THEN 40203 40202 PLOT 3,X9,Y9:PRINT RIGHT$ ((STR$ (Q)),1) 40203 IF SV= 1THEN 40205 40204 PLOT 3,X9+ 4,Y9+ 6:PRINT RIGHT$ ((STR$ (Q)),1) 40205 GOTO 40270 40210 PLOT 27,24:IF Q> 10THEN 40230 40220 IF SV= 2THEN 40223 40222 PLOT 3,X9,Y9:PRINT RIGHT$ ((STR$ (Q)),2) 40223 IF SV= 1THEN 40230 40224 PLOT 3,X9+ 3,Y9+ 6:PRINT RIGHT$ ((STR$ (Q)),2) 40226 GOTO 40270 40230 IF Q= 11THEN CD$= "J":GOTO 40260 40240 IF Q= 12THEN CD$= "Q":GOTO 40260 40250 CD$= "K" 40260 IF SV= 2THEN 40264 40262 PLOT 3,X9,Y9:PRINT CD$ 40264 IF SV= 1THEN 40267 40266 PLOT 3,X9+ 4,Y9+ 6:PRINT CD$ 40267 IF SV< > 0THEN 40270 40268 PLOT 3,X9+ 2,Y9+ 3:PRINT CD$ 40270 PLOT 27,24 40272 IF X9< 11THEN RETURN 40274 IF Y9> 15THEN PLOT 3,X9,Y9+ 6:PRINT P$:RETURN 40276 PLOT 3,X9+ 4,Y9:PRINT P$:RETURN 40280 IF SV= 1AND Y9> 8THEN BC$= " ":PLOT 6,63:GOSUB 40300:GOTO 40286 40282 IF SV= 2AND Y9< 16THEN BC$= " ":PLOT 6,63:GOSUB 40300:GOTO 40286 40284 SV= 0 40286 GOTO 40005 40300 REM DRAW BACK OF CARD FROM X9,Y9,BC$(PATTERN) 40310 BC$= BC$+ BC$+ BC$+ BC$+ BC$ 40312 IF Y9> 16THEN 40362 40314 IF Y9< 9THEN L4= 6:GOTO 40320 40316 L4= 14- Y9 40320 FOR I= 0TO L4 40330 PLOT 3,X9,Y9+ I 40340 PRINT BC$ 40350 NEXT I 40355 PLOT 3,64,0 40360 RETURN 40362 IF Y9> 22THEN L4= 6:GOTO 40320 40364 L4= Y9- 17 40366 FOR I= L4TO 0STEP - 1 40368 PLOT 3,X9,Y9+ I 40370 PRINT BC$ 40372 NEXT I 40374 GOTO 40355 40400 REM DRAW BLUE BORDER AROUND EMPTY CARD FROM X9,Y9 40410 PLOT 6,4 40420 Y8= Y9+ 6 40430 Y8= 31- Y8 40440 Y8= 4* Y8 40450 X8= X9* 2 40460 PLOT 2,X8,Y8,242,X8,Y8+ 27,X8+ 9,Y8+ 27,X8+ 9,Y8,X8,Y8,255 40465 PLOT 3,64,0 40470 RETURN 40480 REM SHUFFLE DECK INTO DK(1-52), USE KD TO STOCK DUPES 40490 IF FT= 1THEN 40510 40495 FT= 1 40500 REM 40510 FOR I= 1TO 52- FC 40520 DK(I)= INT (52* RND (1)+ 1) 40530 IF KD(DK(I))= 1THEN 40520 40540 KD(DK(I))= 1 40550 NEXT I 40560 RETURN