100 REM SOURCE UNKNOWN: REVISED BY D. KURLAND 11/16/75 110 PRINT "THIS IS THE GAME OF CRAZY EIGHTS" 120 DIM A(52),D(52),G(52),H(52) 130 DIM T(52),S(52),V(52) 140 DIM Z(52),U$(4),C$(13) 150 READ U$(1),U$(2),U$(3),U$(4) 160 FOR I=1 TO 13 170 READ C$(I) 180 NEXT I 190 FOR I=1 TO 52 200 READ Z(I) 210 NEXT I 220 DATA CLUBS,DIAMONDS,HEARTS,SPADES 230 DATA "2","3","4","5","6","7","8","9","10",JACK,QUEEN,KING,ACE 240 DATA 2,3,4,5,6,7,50,9,10,10,10,10,1 250 DATA 2,3,4,5,6,7,50,9,10,10,10,10,1 260 DATA 2,3,4,5,6,7,50,9,10,10,10,10,1 270 DATA 2,3,4,5,6,7,50,9,10,10,10,10,1 280 PRINT "DO YOU KNOW HOW TO PLAY"; 290 INPUT A$ 300 IF A$="YES" OR A$="Y" THEN 400 310 PRINT "WHEN ASKED WHICH CARD YOU WISH TO PLAY, YOUR ANSWER SHOULD" 320 PRINT "OF THE FORM: CARD,SUIT . ANY EIGHT MAY BE" 330 PRINT "PLAYED AT ANY TIME REGARDLESS OF SUIT TO CHANGE THE SUIT." 340 PRINT "IF YOU ARE UNABLE OR UNWILLING TO PLAY, YOU WILL BE GIVEN" 350 PRINT "ANOTHER CARD FROM THE DRAW STACK. IF ALL CARDS HAVE BEEN" 360 PRINT "DRAWN, ANY PERSON WHO IS ABLE TO PLAY MUST DO SO." 370 PRINT "AT THE END OF THE GAME, THE PERSON HOLDING CARDS HAS POINTS" 380 PRINT "SCORED AGAINST HIM AS FOLLOWS: EIGHTS=50, ACE=1, FACE" 390 PRINT "CARD=10, INDEX VALUE FOR EACH OTHER CARD." 400 PRINT : PRINT "GAME WILL START SHORTLY..." 410 L=0 : FOR I=1 TO 4 420 FOR J=1 TO 13 430 L=L+1 440 S(L)=I 450 V(L)=J 460 NEXT J 470 NEXT I 480 N1=0 490 N2=0 500 N3=0 510 S1=0 520 S2=0 530 FOR I=1 TO 52 540 G(I)=0 550 H(I)=0 560 A(I)=RND(1) 570 NEXT I 580 W1=0 590 B1=0 600 P1=1 610 P2=1 620 J=0 630 M1=99999! 640 FOR I=1 TO 52 650 IF A(I)>=M1 THEN 680 660 M1=A(I) 670 I1=I 680 NEXT I 690 J=J+1 700 D(J)=I1 710 A(I1)=99999! 720 IF J<52 THEN 630 730 FOR I=1 TO 7 740 G(D(52-2*I+2))=1 750 H(D(52-2*I+1))=1 760 NEXT I 770 T(1)=D(38) 780 T1=1 790 P=S(T(1)) 800 H1=7 810 H2=7 820 D1=37 830 GOSUB 1390 840 GOSUB 1510 850 IF W1=1 THEN 910 860 IF B1=1 THEN 910 870 GOSUB 2020 880 IF W1=1 THEN 910 890 IF B1=1 THEN 910 900 GOTO 830 910 GOSUB 1140 920 PRINT "YOUR SCORE IS";C1 930 PRINT "MY SCORE IS";C2 940 IF C2>=C1 THEN 980 950 PRINT "YOU WON THAT HAND." 960 N1=N1+1 970 GOTO 1000 980 PRINT "I WON THAT HAND." 990 N2=N2+1 1000 PRINT 1010 N3=N3+1 1020 PRINT "DO YOU WISH TO PLAY AGAIN"; 1030 INPUT A$ 1040 IF A$="YES" OR A$="Y" THEN 530 1050 PRINT 1060 PRINT "OUT OF";N3;"HANDS YOU WON";N1 1070 PRINT "YOUR TOTAL SCORE IS";S1;": MINE IS";S2;"." 1080 IF S1<=S2 THEN1110 1090 PRINT "LOOKS LIKE YOU'RE HIGH SCORER." 1100 GOTO 1120 1110 PRINT "LOOKS LIKE I AM THE HIGH SCORER." 1120 PRINT "BYE." 1130 STOP 1140 C1=0 1150 C2=0 1160 IF H2=0 THEN 1240 1170 PRINT 1180 PRINT "CARDS LEFT IN MY HAND" 1190 FOR I=1 TO 52 1200 IF H(I)=0 THEN 1230 1210 PRINT C$(V(I));TAB(6);"OF ";U$(S(I)) 1220 C1=C1+Z(I) 1230 NEXT I 1240 IF H1=0 THEN 1360 1250 FOR I=1 TO 52 1260 IF G(I)=0 THEN 1280 1270 C2=C2+Z(I) 1280 NEXT I 1290 IF C1=0 THEN 1360 1300 IF C1>=C2 THEN 1340 1310 C2=C2-C1 1320 C1=0 1330 GOTO 1360 1340 C1=C1-C2 1350 C2=0 1360 S1=S1+C1 1370 S2=S2+C2 1380 RETURN 1390 PRINT 1400 PRINT "YOUR HAND IS" 1410 FOR I=1 TO 52 1420 IF G(I)=0 THEN 1440 1430 PRINT C$(V(I));TAB(6);"OF ";U$(S(I)) 1440 NEXT I 1450 PRINT 1460 PRINT "THE LAST CARD PLAYED WAS THE "; 1470 PRINT C$(V(T(T1)));" OF ";U$(S(T(T1))) 1480 IF V(T(T1))<>7 THEN 1500 1490 PRINT "THE SUIT CALLED FOR IS ";U$(P) 1500 RETURN 1510 PRINT "DO YOU WISH TO PLAY A CARD"; 1520 INPUT A$ 1530 AZ$=LEFT$(A$,1) 1531 IF AZ$<>"Y" AND AZ$<>"N" THEN PRINT "(Y OR N) PLEASE ! "; : GOTO 1520 1540 IF D1<>0 THEN 1570 1550 PRINT "ALL THE CARDS HAVE BEEN DEALT---YOU ARE BLOCKED" 1560 GOTO 1980 1570 I=D(D1) 1580 D1=D1-1 1590 H1=H1+1 1600 G(I)=1 1610 PRINT "YOUR NEW CARD IS THE ";C$(V(I));" OF ";U$(S(I)) 1620 GOTO 1510 1630 PRINT "WHICH OF YOUR CARDS DO YOU WISH TO PLAY"; 1640 INPUT X$,Y$ 1650 GOSUB 2610 1660 IF V9>0 THEN 1680 ELSE PRINT "UNKNOWN CARD, TRY AGAIN"; 1670 GOTO 1640 1680 GOSUB 2500 1690 IF S9>0 THEN 1710 ELSE PRINT "UNKNOWN SUIT, TRY AGAIN"; 1700 GOTO 1640 1710 IF V9=7 THEN 1760 1720 IF S9=P THEN 1760 1730 IF V9=V(T(T1)) THEN 1760 1740 PRINT "THAT IS NOT A LEGAL PLAY." 1750 GOTO 1510 1760 FOR I=1 TO 52 1770 IF G(I)=0 THEN 1800 1780 IF V(I)<>V9 THEN 1800 1790 IF S(I)=S9 THEN 1830 1800 NEXT I 1810 PRINT "YOU DO NOT HAVE THAT CARD." 1820 GOTO 1510 1830 G(I)=0 1840 H1=H1-1 1850 T1=T1+1 1860 T(T1)=I 1870 IF V9<>7 THEN 1930 1880 PRINT "WHAT SUIT DO YOU WISH"; 1890 INPUT Y$ 1900 GOSUB 2500 1910 IF S9>0 THEN 1930 ELSE PRINT "UNKNOWN SUIT, TRY AGAIN"; 1920 GOTO 1890 1930 P=S9 1940 P1=1 1950 IF H1<>0 THEN 1970 1960 W1=1 1970 RETURN 1980 IF P2<>0 THEN 2000 1990 B1=1 2000 P1=0 2010 RETURN 2020 I=53 2030 I=I-1 2040 IF H(I)=0 THEN 2080 2050 IF V(I)=7 THEN 2080 2060 IF S(I)=P THEN 2220 2070 IF V(I)=V(T(T1)) THEN 2220 2080 IF I>1 THEN 2030 2090 FOR I=1 TO 52 2100 IF V(I)<>7 THEN 2120 2110 IF H(I)<>0 THEN 2220 2120 NEXT I 2130 IF D1=0 THEN 2460 2140 I=D(D1) 2150 D1=D1-1 2160 IF V(I)=7 THEN 2240 2170 IF S(I)=P THEN 2240 2180 IF V(I)=V(T(T1)) THEN 2240 2190 H2=H2+1 2200 H(I)=1 2210 GOTO 2130 2220 H(I)=0 2230 H2=H2-1 2240 T1=T1+1 2250 T(T1)=I 2260 P=S(I) 2270 IF V(I)<>7 THEN 2420 2280 FOR J=1 TO 4 2290 Y(J)=0 2300 K1=13*(J-1)+1 2310 K2=13*J 2320 FOR K=K1 TO K2 2330 IF H(I)=0 THEN 2350 2340 Y(J)=Y(J)+1 2350 NEXT K 2360 NEXT J 2370 P=1 2380 FOR J=2 TO 4 2390 IF Y(J)<=Y(P) THEN 2410 2400 P=J 2410 NEXT J 2420 P2=1 2430 IF H2<>0 THEN 2450 2440 W1=1 2450 RETURN 2460 IF P1<>0 THEN 2480 2470 B1=1 2480 P2=0 2490 RETURN 2500 FOR I0 = 1 TO 4 2510 IF Y$=U$(I0) THEN 2590 2520 NEXT I0 2530 S9 = 0 2540 IF Y$="C" THEN S9=1 2550 IF Y$="D" THEN S9=2 2560 IF Y$="H" THEN S9=3 2570 IF Y$="S" THEN S9=4 2580 RETURN 2590 S9 = I0 2600 RETURN 2610 FOR I0 = 1 TO 13 2620 IF X$=C$(I0) THEN 2700 2630 NEXT I0 2640 V9 = 0 2650 IF X$="J" THEN V9=10 2660 IF X$="Q" THEN V9=11 2670 IF X$="K" THEN V9=12 2680 IF X$="A" THEN V9=13 2690 RETURN 2700 V9 = I0 2710 RETURN 2720 END THEN V9=11 2670 IF X$="K" THEN V9=12 2680 IF X$="A"