10 REM CRAZY.ECB 100 REM ...CRAZY EIGHTS ... Source ??? via EAGAN Jul 77 110 PRINT "&K&J&J": REM ...Last revision 03-10-81 R.E.H. 120 PRINT "CRAZY EIGHTS PROGRAM" 130 PRINT 140 DIM A(52),D(52),G(52),H(52) 150 DIM T(52),S(52),V(52) 160 DIM Z(52),U$(4),C$(13) 170 LET U$="CDHS" 180 LET C$="23456789TJQKA" 210 FOR I=1 TO 52 220 READ Z(I) 230 NEXT I 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 DATA 2,3,4,5,6,7,50,9,10,10,10,10,1 290 DATA 2,3,4,5,6,7,50,9,10,10,10,10,1 300 PRINT " ANSWER TWO NUMBERS WHEN ASKED WHICH CARD" 310 PRINT " YOU WISH TO PLAY. THE FIRST NUMBER IS THE " 320 PRINT "VALUE OF THE CARD AND THE SECOND IS THE SUIT." 330 PRINT " FOR VALUES: 2=2,3=3,4=4,5=5,6=6,7=7,8=8,9=9," 340 PRINT "10=10, JACK=11, QUEEN=12, KING=13, AND ACE=14" 350 PRINT " FOR SUITS: CLUBS=1, DIAMONDS=2, HEARTS=3," 360 PRINT " AND SPADES=4. FORM FOR RESPONSE IS X,X." 370 PRINT " ALL 8's MAY BE PLAYED AT ANY TIME REGARDLESS" 380 PRINT " OF SUIT TO CHANGE THE SUIT." 390 GOSUB 2590 400 PRINT " IF YOU ARE UNABLE TO PLAY OR UNWILLING TO" 410 PRINT "YOU WILL BE GIVEN ANOTHER CARD" 420 PRINT "FROM THE DRAW STACK. IF ALL CARDS" 430 PRINT "HAVE BEEN DRAWN THE PERSON WHO IS ABLE" 440 PRINT "TO PLAY MUST DO SO." 450 PRINT 460 PRINT 470 GOSUB 2590 480 PRINT "AT THE END OF THE GAME THE PERSON " 490 PRINT " HOLDING CARDS HAS POINTS SCORED" 500 PRINT "AGAINST HIM AS FOLLOWS" 510 PRINT "EIGHTS=50, ACE=1, FACE CARD=10, INDEX" 520 PRINT "VALUE FOR EACH OTHER CARD." 540 PRINT 550 PRINT 560 GOSUB 2590 570 LET L=0 580 FOR I=1 TO 4 590 FOR J=1 TO 13 600 LET L=L+1 610 LET S(L)=I 620 LET V(L)=J 630 NEXT J 640 NEXT I 650 LET N1=0 660 LET N2=0 670 LET N3=0 680 LET S1=0 690 LET S2=0 700 FOR I=1 TO 52 710 LET G(I)=0 720 LET H(I)=0 730 LET A(I)=RND(Z) 740 NEXT I 750 LET W1=0 760 LET B1=0 770 LET P1=1 780 LET P2=1 790 LET J=0 800 LET M1=99999 810 FOR I=1 TO 52 820 IF A(I)>=M1 THEN 850 830 LET M1=A(I) 840 LET I1=I 850 NEXT I 860 LET J=J+1 870 LET D(J)=I1 880 LET A(I1)=99999 890 IF J<52 THEN 800 900 FOR I=1 TO 7 910 LET G(D(52-2*I+2))=1 920 LET H(D(52-2*I+1))=1 930 NEXT I 940 LET T(1)=D(38) 950 LET T1=1 960 LET P=S(T(1)) 970 LET H1=7 980 LET H2=7 990 LET D1=37 1000 GOSUB 1560 1010 GOSUB 1680 1020 IF W1=1 THEN 1080 1030 IF B1=1 THEN 1080 1040 GOSUB 2110 1050 IF W1=1 THEN 1080 1060 IF B1=1 THEN 1080 1070 GOTO 1000 1080 GOSUB 1310 1090 PRINT "&JYour score is ";C1 1100 PRINT "My score is ";C2 1110 IF C2>=C1 THEN 1150 1120 PRINT "YOU WON THAT HAND." 1130 LET N1=N1+1 1140 GOTO 1170 1150 PRINT "I WON THAT HAND." 1160 LET N2=N2+1 1170 PRINT 1180 LET N3=N3+1 1190 PRINT "Do you wish to play again ( Y=yes, N=no ) ---=>"; 1200 INPUT (1,0)I$: LET I$=I$+"Y" 1210 IF I$(1,1)="Y" THEN 700 1215 IF I$(1,1)="y" THEN 700 1220 PRINT 1230 PRINT "Out of ";N3;" hands you won ";N1;"." 1240 PRINT " Your total score is ";S1;" ; Mine is ";S2;"." 1250 IF S1<=S2 THEN 1280 1260 PRINT "LOOKS LIKE YOUR HIGH SCORER." 1270 GOTO 1290 1280 PRINT "LOOKS LIKE I AM THE HIGH SCORER." 1290 PRINT "BYE." 1300 GOTO 2640 1310 LET C1=0 1320 LET C2=0 1330 IF H2=0 THEN 1410 1340 PRINT 1350 PRINT "CARDS LEFT IN MY HAND" 1360 FOR I=1 TO 52 1370 IF H(I)=0 THEN 1400 1380 PRINT C$(V(I),V(I));" of ";U$(S(I),S(I)) 1390 LET C1=C1+Z(I) 1400 NEXT 1410 IF H1=0 THEN 1530 1420 FOR I=1 TO 52 1430 IF G(I)=0 THEN 1450 1440 LET C2=C2+Z(I) 1450 NEXT I 1460 IF C1=0 THEN 1530 1470 IF C1>=C2 THEN 1510 1480 LET C2=C2-C1 1490 LET C1=0 1500 GOTO 1530 1510 LET C1=C1-C2 1520 LET C2=0 1530 LET S1=S1+C1 1540 LET S2=S2+C2 1550 RETURN 1560 PRINT 1570 PRINT " Your HAND is" 1580 FOR I=1 TO 52 1590 IF G(I)=0 THEN 1610 1600 PRINT C$(V(I),V(I));" of ";U$(S(I),S(I)) 1610 NEXT I 1620 PRINT 1630 PRINT " The LAST CARD PLAYED was " 1640 PRINT C$(V(T(T1)),V(T(T1)));" of ";U$(S(T(T1)),S(T(T1))) 1650 IF V(T(T1))<>7 THEN 1670 1660 PRINT "THE SUIT called for is ";U$(P,P) 1670 RETURN 1680 PRINT "Do you wish to play a CARD (Y or N) ---=>"; 1690 INPUT (1,0)I$: LET I$=I$+"Y",Z9=3 1695 IF I$(1,1)="Y" THEN LET Z9=1 1696 IF I$(1,1)="y" THEN LET Z9=1 1697 IF I$(1,1)="N" THEN LET Z9=0 1698 IF I$(1,1)="n" THEN LET Z9=0 1700 IF Z9=1 THEN 1800 1705 IF Z9=3 THEN 1730 1710 IF D1<>0 THEN 1740 1720 PRINT "ALL THE CARDS HAVE BEEN DEALT---YOU ARE BLOCKED" 1725 GOTO 2070 1730 PRINT "Answer Y = yes, N = no&J" 1735 GOTO 1680 1740 LET I=D(D1) 1750 LET D1=D1-1 1760 LET H1=H1+1 1770 LET G(I)=1 1780 PRINT "Your new card is ";C$(V(I),V(I));" ";U$(S(I),S(I)) 1790 GOTO 1680 1800 PRINT "Which of your cards do you wish to play ---=>"; 1810 INPUT V9,S9 1820 LET V9=V9-1 1830 IF V9=7 THEN 1880 1840 IF S9=P THEN 1880 1850 IF V9=V(T(T1)) THEN 1880 1860 PRINT "THAT IS NOT A LEGAL PLAY." 1865 PRINT "( C=1 D=2 H=3 S=4 )" 1870 GOTO 1680 1880 FOR I=1 TO 52 1890 IF G(I)=0 THEN 1920 1900 IF V(I)<>V9 THEN 1920 1910 IF S(I)=S9 THEN 1950 1920 NEXT I 1930 PRINT "YOU DO NOT HAVE THAT CARD." 1935 PRINT "( C=1 D=2 H=3 S=4 )" 1940 GOTO 1680 1950 LET G(I)=0 1960 LET H1=H1-1 1970 LET T1=T1+1 1980 LET T(T1)=I 1990 IF V9<>7 THEN 2020 2000 PRINT "( C=1 D=2 H=3 S=4 )" 2005 PRINT "What SUIT do you wish ---=>"; 2010 INPUT (1,0)S9 2020 LET P=S9 2030 LET P1=1 2040 IF H1<>0 THEN 2060 2050 LET W1=1 2060 RETURN 2070 IF P2<>0 THEN 2090 2080 LET B1=1 2090 LET P1=0 2100 RETURN 2110 LET I=53 2120 LET I=I-1 2130 IF H(I)=0 THEN 2170 2140 IF V(I)=7 THEN 2170 2150 IF S(I)=P THEN 2310 2160 IF V(I)=V(T(T1)) THEN 2310 2170 IF I>1 THEN 2120 2180 FOR I=1 TO 52 2190 IF V(I)<>7 THEN 2210 2200 IF H(I)<>0 THEN 2310 2210 NEXT I 2220 IF D1=0 THEN 2550 2230 LET I=D(D1) 2240 LET D1=D1-1 2250 IF V(I)=7 THEN 2330 2260 IF S(I)=P THEN 2330 2270 IF V(I)=V(T(T1)) THEN 2330 2280 LET H2=H2+1 2290 LET H(I)=1 2300 GOTO 2220 2310 LET H(I)=0 2320 LET H2=H2-1 2330 LET T1=T1+1 2340 LET T(T1)=I 2350 LET P=S(I) 2360 IF V(I)<>7 THEN 2510 2370 FOR J=1 TO 4 2380 LET Y(J)=0 2390 LET K1=13*(J-1)+1 2400 LET K2=13*J 2410 FOR K=K1 TO K2 2420 IF H(I)=0 THEN 2440 2430 LET Y(J)=Y(J)+1 2440 NEXT K 2450 NEXT J 2460 LET P=1 2470 FOR J=2 TO 4 2480 IF Y(J)<=Y(P) THEN 2500 2490 LET P=J 2500 NEXT J 2510 LET P2=1 2520 IF H2<>0 THEN 2540 2530 LET W1=1 2540 RETURN 2550 IF P1<>0 THEN 2570 2560 LET B1=1 2570 LET P2=0 2580 RETURN 2590 PRINT 2600 PRINT "*** TYPE IN ANY LETTER FOR MORE ***"; 2610 INPUT (1,0)I$ 2620 PRINT 2630 RETURN 2640 END