home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / lambda / misc / crazy.lbr / CRAZY.BZS / CRAZY.BAS
Encoding:
BASIC Source File  |  1993-10-25  |  15.5 KB  |  373 lines

  1. 10 '    *****************************************************
  2.  
  3.     *****                        *****
  4.  
  5.     *****        C R A Z Y   E I G H T S        *****
  6.  
  7.     *****                        *****
  8. 20 '    *****************************************************
  9.  
  10.     *****        Based on the Card Game        *****
  11.  
  12.     *****     Adapted for KAYPRO 10 by R. Altman    *****
  13. 30 '    *****              11/6/89            *****
  14.  
  15.     *****************************************************
  16.  
  17.  
  18. 50 '
  19. 51 '     USER SUPPORTED
  20. 52 '
  21. 53 '     This program is user-supported software.  It is copyrighted and cannot
  22. 54 ' be sold for profit (without the author's express written permission),  but
  23. 55 ' it may be copied and distributed for free.
  24. 56 '
  25. 57 '     The  SHAREWARE  concept is a  distribution method  that dispenses with
  26. 58 ' heavy  marketing/advertising costs and gives the user the  opportunity  to
  27. 59 ' try a software program before buying.   Its continued existence depends on
  28. 60 ' each user paying for what he does, in fact, use.
  29. 61 '
  30. 62 '     If you find this program [CRAZY .BAS] useful,  please send the $15 (or
  31. 63 ' more) registration fee directly to the author:
  32. 64 '
  33. 65 '        Richard S. Altman -- P.O. Box 4388 -- Clearlake, CA 95422
  34. 66 '
  35. 67 '      Upon registration,  you will receive a floppy diskette containing the
  36. 68 ' latest version of this program,  as well as a printed manual detailing its
  37. 69 ' uses and specifications.   You will also receive a FREE  calendar printing
  38. 70 ' program and other programs by the same author.
  39. 71 '
  40. 72 '      WHEN ORDERING,  please be sure to indicate  single or double  density
  41. 73 ' disk drive,  and the name of the program  [CRAZY .BAS].   Comments on pro-
  42. 74 ' grams are also most welcome!
  43. 75 '
  44. 76 '     Due to  possible unforeseen circumstances,  the above offer is subject
  45. 77 ' to change without notice.
  46. 78 '
  47. 80 GOTO 7000
  48. 100 '    *********************************************
  49.  
  50.     *****        Set up cards        *****
  51.  
  52.     *********************************************
  53. 105 RESTORE 120:FOR X=1 TO 4:READ I(X),II(X):NEXT
  54. 110 FOR X=1 TO 13:READ C(X):R(X)=X:R(X+13)=X:R(X+26)=X:R(X+39)=X:NEXT
  55. 115 FOR X=1 TO 52:READ P(X),S(X):NEXT
  56. 120 DATA HEARTS,HRT,SPADES,SPD,DIAMONDS,DMD,CLUBS,CLB
  57. 125 DATA ACE,"2","3","4","5","6","7","8","9","10",JACK,QUEEN,KING
  58. 130 DATA 1,1,2,1,3,1,4,1,5,1,6,1,7,1,50,1,9,1,10,1,10,1,10,1,10,1
  59. 135 DATA 1,2,2,2,3,2,4,2,5,2,6,2,7,2,50,2,9,2,10,2,10,2,10,2,10,2
  60. 140 DATA 1,3,2,3,3,3,4,3,5,3,6,3,7,3,50,3,9,3,10,3,10,3,10,3,10,3
  61. 145 DATA 1,4,2,4,3,4,4,4,5,4,6,4,7,4,50,4,9,4,10,4,10,4,10,4,10,4
  62. 150 N1=0:N2=0:N3=0:S1=0:S2=0
  63. 155 FOR K=1 TO 52:B(K)=K:H(K)=0:NEXT:JJ=38
  64. 160 FOR K=1 TO 52:X=FNRN(52):Y=FNRN(52)
  65. 165 B=B(X):B(X)=B(Y):B(Y)=B:NEXT
  66. 170 M1=0:M2=0:M3=1:M4=1
  67. 175 FOR K=1 TO 7:H(B(52-2*K+1))=1:H(B(52-2*K+2))=2:NEXT
  68. 180 C1%=7:C2%=7:CA%=9: A1=B(1)
  69. 185 IF R(A1)=8 THEN A1=B(2)
  70. 190 IF R(A1)=8 THEN A1=B(3)
  71. 195 A2=S(A1):SU=A2:IF FLAG!=9 THEN PRINT C7:GOTO 250
  72. 200 PRINT FNF(23,8)"Press <";:L$=" ANY KEY ":GOSUB 5065
  73. 205 PRINT"> to start the game.   "C7;:GOSUB 6000
  74. 210 '
  75. 250 '    *****    Start the Game
  76. 255 '
  77. 260 PRINT CLS:GOSUB 1500
  78. 265 IF M1=1 OR M2=1 THEN 500
  79. 270 GOSUB 3000
  80. 275 IF M1=1 OR M2=1 THEN 500
  81. 280 GOTO 250
  82. 285 '
  83. 500 '    *****    Display Final Cards
  84. 505 '
  85. 510 PRINT CLS:PRINT FNTITLE$(2,"  C R A Z Y   E I G H T S  "):P1=0:P2=0
  86. 515 L$="       NO CARDS LEFT IN COMPUTER'S HAND!       ":PRINT DD:PRINT
  87. 520 IF C2%=0 THEN GOSUB 5065:PRINT:PRINT:PRINT:GOTO 580
  88. 525 L$="      "+STR$(C2%)+" CARD":IF C2%<>1 THEN L$=L$+"S"
  89. 530 L$=L$+" LEFT IN COMPUTER'S HAND:  ":IF C2%=1 THEN L$=L$+" "
  90. 535 GOSUB 5065:PRINT
  91. 540 PRINT:KK=0:FOR K=1 TO 52
  92. 545 CR=C(R(K)):IF H(K)<2 THEN 570
  93. 550 IF CR="10" THEN PRINT "10"; ELSE PRINT" "LEFT$(CR,1);
  94. 555 PRINT"--"II(S(K))",  ";:KK=KK+1
  95. 560 IF KK=8 THEN PRINT C8:KK=0
  96. 565 P1=P1+P(K)
  97. 570 NEXT K:PRINT C8:PRINT
  98. 575 L$="       NO CARDS LEFT IN YOUR HAND!       " 
  99. 580 IF C1%=0 THEN GOSUB 5065:PRINT:PRINT:GOTO 650
  100. 585 L$="      "+STR$(C1%)+" CARD":IF C1%<>1 THEN L$=L$+"S"
  101. 590 L$=L$+" LEFT IN YOUR HAND:  ":GOSUB 5065:PRINT
  102. 595 PRINT:KK=0:FOR K=1 TO 52
  103. 600 CR=C(R(K)):IF H(K)<>1 THEN 625
  104. 605 IF CR="10" THEN PRINT "10"; ELSE PRINT" "LEFT$(CR,1);
  105. 610 PRINT"--"II(S(K))",  ";:KK=KK+1
  106. 615 IF KK=8 THEN PRINT C8:KK=0
  107. 620 P2=P2+P(K)
  108. 625 NEXT K:PRINT C8:PRINT
  109. 630 IF P1=0 THEN 650
  110. 635 IF P1>=P2 THEN 645
  111. 640 P2=P2-P1:P1=0:GOTO 650
  112. 645 P1=P1-P2:P2=0
  113. 650 S1=S1+P1:S2=S2+P2
  114. 655 '
  115. 750 '    *****    End of Game
  116. 755 '
  117. 760 PRINT DD:PRINT:PRINT C7
  118. 765 PRINT"    Your score is"USING"####";P1
  119. 770 PRINT"    My score is"USING"######";P2:PRINT:PRINT"---->   ";
  120. 775 IF P2=P1 THEN 805
  121. 780 IF P2>P1 THEN 795
  122. 785 L$="  YOU WON THAT HAND.  ":GOSUB 5065:PRINT
  123. 790 N1=N1+1:GOTO 810
  124. 795 L$="  I WON THAT HAND!  ":GOSUB 5065:PRINT
  125. 800 N2=N2+1:GOTO 810
  126. 805 L$=" TIE GAME -- STALEMATE ":GOSUB 5065:PRINT
  127. 810 PRINT:N3=N3+1
  128. 815 PRINT"    Do you want to play again?   (Y/N)   ";:IK=INKEY$
  129. 820 IN=INKEY$:IF IN="" THEN 820
  130. 825 IF IN="Y" OR IN="y" OR IN=CHR$(13) THEN 1085
  131. 830 '
  132. 1000 '    *****    Print FINAL Totals
  133. 1005 '
  134. 1010 PRINT F(3) DE;DSCR:PRINT:PRINT:PRINT
  135. 1015 PRINT"     Out of"N3"hand";:IF N3>1 THEN PRINT "s";
  136. 1020 PRINT", you won"N1:PRINT:PRINT"    ";:L$=" Your TOTAL SCORE is"+STR$(S1)+" ":GOSUB 5065:PRINT";   ";
  137. 1025 L$=" Computer's SCORE is"+STR$(S2)+" ":GOSUB 5065:PRINT"."
  138. 1030 PRINT:IF S2=S1 THEN 1070
  139. 1035 IF S2>S1 THEN 1055
  140. 1040 PRINT"    It looks like you're High Scorer for this ";
  141. 1045 IF N3=1 THEN PRINT"game." ELSE PRINT"series."
  142. 1050 PRINT"    Good going!   Keep up the good work.":GOTO 1080
  143. 1055 PRINT"    It looks like I am the High Scorer for this ";
  144. 1060 IF N3=1 THEN PRINT"game." ELSE PRINT"series."
  145. 1065 PRINT"    Better luck next time!":GOTO 1080
  146. 1070 PRINT"    It looks like we're TIED for the series."
  147. 1075 PRINT"    You were a tough opponent!    Nice work."
  148. 1080 PRINT F(15)DE:PRINT:PRINT:END
  149. 1085 S5=9:GOSUB 4000:S5=0:PRINT FNF(11,22);
  150. 1090 L$=" Setting up the cards   (SHUFFLING)... ":GOSUB 5065:FLAG!=9:GOTO 155
  151. 1095 '
  152. 1500 '    *****    Display your hand
  153. 1505 '
  154. 1510 L$=F(3)+"   YOUR HAND CONTAINS"+STR$(C1%)+" CARD":IF C1%<>1 THEN L$=L$+"S"
  155. 1515 L$=L$+":   ":GOSUB 5065:PRINT FNF(3,44)"(Computer has"C2%"card";
  156. 1520 IF C2%=1 THEN PRINT ".)" ELSE PRINT "s.)"
  157. 1525 PRINT FNF(4,43);:L$=" (Cards remaining..."+STR$(JJ)+") ":GOSUB 5060
  158. 1530 PRINT:GOSUB 5025:LNN=0:K1=0:FOR K=1 TO 52
  159. 1535 IF H(K)<>1 THEN 1550
  160. 1540 K1=K1+1:IF K1>19 THEN LNN=LNN+1:PRINT FNF(5+LNN,31);
  161. 1545 PRINT"_____ "C(R(K))" of "I(S(K))
  162. 1550 NEXT K
  163. 1555 DCARD="LAST":IF CA%=9 THEN CA%=0:DCARD="UP"
  164. 1560 PRINT FNF(9+LNN,28)DLINE FNF(10+LNN,28)DLINE1 FNF(10+LNN,28);
  165. 1565 PRINT"|  The "DCARD" CARD played was the "C(R(A1))" of "I(A2)
  166. 1570 IF R(A1)<>8 THEN LN=11+LNN:GOTO 1585
  167. 1575 LN=12+LNN:PRINT FNF(LN-1,28)DLINE1 FNF(LN-1,28);
  168. 1580 PRINT"|  The SUIT called for is "I(SU)"."
  169. 1585 PRINT FNF(LN,28)DLINE1 FNF(LN,28);:LN=LN+1:GOSUB 5020
  170. 1590 PRINT"|  Do you wish to play a card?  (Y/N)    <cr>=Y"
  171. 1595 PRINT FNF(LN,28)DLINE FNF(LN+1,28);:LN=LN+2
  172. 1600 GOSUB 6000:IF IN<>"Y" AND IN<>"y" AND IN<>"N" AND IN<>"n" AND IN<>CHR$(13) THEN PRINT FNF(LN,31)DCLR"(Y or N) please !!   "C7;:GOTO 1600 ELSE PRINT
  173. 1605 IF IN="Y" OR IN="y" OR IN=CHR$(13) THEN 2010
  174. 1610 IF K1=26 THEN 1700
  175. 1615 IF JJ=0 THEN 1650
  176. 1620 K=B(JJ):JJ=JJ-1:C1%=C1%+1:H(K)=1:'        Deal another card
  177. 1625 PRINT CLS"   Your new card is the "C(R(K))" of "I(S(K)):GOTO 1500
  178. 1630 '
  179. 1650 GOSUB 4000:PRINT FNF(12,15)"ALL OF THE CARDS HAVE BEEN DEALT --- ";
  180. 1655 PRINT"YOU ARE BLOCKED.   "C7;
  181. 1660 FOR T=1 TO 450:PRINT FNF(12,70)"";:NEXT:GOTO 2570
  182. 1665 '
  183. 1700 X.CARDS=X.CARDS+1:IF X.CARDS=5 THEN 2570
  184. 1705 L$=FNF(LN,31)+"  YOU MUST PLAY A CARD, IF POSSIBLE.  ":GOSUB 5065
  185. 1710 L$=FNF(LN+1,31)+"  You already have HALF of the deck!  ":GOSUB 5065
  186. 1715 PRINT C7;:FOR T=1 TO 400:PRINT FNF(LN+1,73)"";:NEXT
  187. 1720 PRINT FNF(LN,31)DCLR;FNF(LN+1,31)DCLR:LN=LN-2:GOTO 1595
  188. 1725 '
  189. 2000 '    *****    Your play
  190. 2005 '
  191. 2010 PRINT FNF(LN,28)"Which of your cards do you wish to play -- ";:LN=LN+1
  192. 2015 INPUT X$,Y$: Y$=LEFT$(Y$,1):XX$=X$
  193. 2020 X.CARDS=0:IF Y$="" THEN Y$=LEFT$(I(SU),1)
  194. 2025 IF X$="a" OR X$="j" OR X$="q" OR X$="k" THEN X$=CHR$(ASC(X$)-32)
  195. 2030 IF X$="A" THEN XX$=C(1)
  196. 2035 IF X$="J" THEN XX$=C(11)
  197. 2040 IF X$="Q" THEN XX$=C(12)
  198. 2045 IF X$="K" THEN XX$=C(13)
  199. 2050 IF Y$="h" OR Y$="s" OR Y$="d" OR Y$="c" THEN Y$=CHR$(ASC(Y$)-32)
  200. 2055 IF Y$="H" THEN YY$=I(1)
  201. 2060 IF Y$="S" THEN YY$=I(2)
  202. 2065 IF Y$="D" THEN YY$=I(3)
  203. 2070 IF Y$="C" THEN YY$=I(4)
  204. 2075 PRINT FNF(19,28)DCLR;FNF(LN-1,73)X$","Y$" "DCLR;
  205. 2080 GOSUB 3750:IF R9>0 THEN 2090
  206. 2085 PRINT FNF(19,28)"UNKNOWN CARD, Try again  (Re-do)  -- "C7;DCLR;:GOTO 2015
  207. 2090 GOSUB 3500:IF S9>0 THEN 2100
  208. 2095 PRINT FNF(19,28)"UNKNOWN SUIT, Try again  (Re-do)  -- "C7;DCLR;:GOTO 2015
  209. 2100 FOR K=1 TO 52
  210. 2105 IF H(K)<>1 OR R(K)<>R9 THEN 2115
  211. 2110 IF S(K)=S9 THEN 2125
  212. 2115 NEXT K
  213. 2120 LX$=STRING$(27,32)+"=====  YOU DON'T HAVE the "+XX$+" of "+YY$:GOTO 2140
  214. 2125 IF R9=8 THEN 2500
  215. 2130 IF S9=SU OR R9=R(A1) THEN 2500
  216. 2135 LX$=STRING$(28,32)+"=====  THAT IS NOT A LEGAL PLAY"
  217. 2140 LX$=LX$+"!!  ====="+DSCR:GOSUB 4250:PRINT LX$;C7
  218. 2145 FOR X=1 TO 22:PRINT:NEXT:GOTO 1500
  219. 2150 '
  220. 2500 '    *****    Legal play was made    *****
  221.  
  222.     *****    Remove card from hand    *****
  223. 2505 '
  224. 2510 H(K)=-1:C1%=C1%-1:A1=K:A2=S(K)
  225. 2515 IF R9<>8 THEN 2550
  226. 2520 IF C1%=0 THEN 2550 ELSE PRINT FNF(LN,28)"What SUIT do you wish -- ";
  227. 2525 INPUT Y$:Y$=LEFT$(Y$,1):IF Y$="" THEN Y$=LEFT$(I(SU),1)
  228. 2530 IF Y$="h" OR Y$="s" OR Y$="d" OR Y$="c" THEN Y$=CHR$(ASC(Y$)-32)
  229. 2535 PRINT FNF(LN,55)Y$:GOSUB 3500
  230. 2540 IF S9>0 THEN 2550
  231. 2545 PRINT FNF(19,28)"UNKNOWN SUIT, Try again  (Re-do)  -- "C7;DCLR;:GOTO 2525
  232. 2550 SU=S9:M3=1:PRINT CLS F(3)
  233. 2555 IF C1%<>0 THEN RETURN
  234. 2560 M1=1:RETURN
  235. 2565 IF M4<>0 THEN RETURN
  236. 2570 M2=1:RETURN
  237. 2575 '
  238. 3000 '    *****    Play Computer's card
  239. 3005 '
  240. 3010 FOR K=52 TO 1 STEP-1
  241. 3015 IF H(K)<2 OR R(K)=8 THEN 3025:    ' Skip 8's & cards not Computer's
  242. 3020 IF S(K)=SU OR R(K)=R(A1) THEN 3075:' GO if correct suit or rank
  243. 3025 NEXT K:                '
  244. 3030 FOR K=1 TO 52:            '
  245. 3035 IF R(K)<>8 THEN 3045:        ' Skip if NOT an 8
  246. 3040 IF H(K)=2 THEN 3075:        ' GO if 8 = Computer's
  247. 3045 NEXT K:                '
  248. 3050 IF JJ=0 THEN 3145:            ' JJ=0 if all cards dealt.
  249. 3055 K=B(JJ):JJ=JJ-1:            ' DEAL another card
  250. 3060 IF R(K)=8 THEN 3080:        ' GO if an 8 is found
  251. 3065 IF S(K)=SU OR R(K)=R(A1) THEN 3080:' GO if correct suit or rank
  252. 3070 C2%=C2%+1:H(K)=2:GOTO 3050:    ' Add card to hand; deal another.
  253. 3075 C2%=C2%-1:                '
  254. 3080 H(K)=-2:A1=K:A2=S(K):SU=A2:    '
  255. 3085 IF R(K)<>8 THEN 3135:        '
  256. 3090 FOR J=1 TO 4:T(J)=0:NEXT:        ' Eight was found!!
  257. 3095 FOR J=1 TO 52:            ' Determine SUITs Computer has
  258. 3100 IF H(J)<2 THEN 3110:        ' Skip if card not Computer's
  259. 3105 S=S(J):T(S)=T(S)+1:        ' Else add 1 to counter
  260. 3110 NEXT J:                '
  261. 3115 SU=1:                ' Determine which SUIT to call
  262. 3120 FOR J=2 TO 4:            '
  263. 3125 IF T(J) > T(SU) THEN SU=J:        ' Call for SUIT with most cards
  264. 3130 NEXT J
  265. 3135 M4=1:IF C2%<>0 THEN RETURN
  266. 3140 M1=1:RETURN
  267. 3145 IF M3<>0 THEN 3155
  268. 3150 M2=1
  269. 3155 M4=0:RETURN
  270. 3160 '
  271. 3500 '    *****   Check Suit   ************
  272. 3505 FOR O=1 TO 4:'            *
  273. 3510 IF Y$=I(O) THEN S9=O:RETURN:'    *
  274. 3515 NEXT:S9=0:'            *
  275. 3520 IF Y$="H" THEN S9=1:'        *
  276. 3525 IF Y$="S" THEN S9=2:'        *
  277. 3530 IF Y$="D" THEN S9=3:'        *
  278. 3535 IF Y$="C" THEN S9=4:'        *
  279. 3540 RETURN:'                *
  280. 3545 '    *********************************
  281. 3550 '
  282. 3750 '    *****   Check Card Value   ******
  283. 3755 FOR O=2 TO 10:'            *
  284. 3760 IF X$=C(O) THEN R9=O:RETURN:'    *
  285. 3765 NEXT:R9=0:'            *
  286. 3770 IF X$="J" THEN R9=11:'        *
  287. 3775 IF X$="Q" THEN R9=12:'        *
  288. 3780 IF X$="K" THEN R9=13:'        *
  289. 3785 IF X$="A" THEN R9=1:'        *
  290. 3790 RETURN:'                *
  291. 3795 '    *********************************
  292. 3800 '
  293. 4000 '    *****    Print Box
  294. 4005 '
  295. 4010 PRINT CLS:L$=FNTITLE$(2,"  C R A Z Y   E I G H T S  ")
  296. 4015 IF S5=9 THEN PRINT L$ ELSE GOSUB 5065
  297. 4020 PRINT ESC$"L"CHR$(43)CHR$(32) CHR$(43) CHR$(191)
  298. 4025 PRINT ESC$"L"CHR$(111)CHR$(32)CHR$(111)CHR$(191)
  299. 4030 PRINT ESC$"L"CHR$(43)CHR$(32) CHR$(111)CHR$(32)
  300. 4035 PRINT ESC$"L"CHR$(43)CHR$(191)CHR$(111)CHR$(191);:RETURN
  301. 4040 '
  302. 4250 NN=LN:IF LN>=24 THEN NN=23
  303. 4255 PRINT FNF(NN-1,1)STRING$(25,32)FNF(NN,1)STRING$(25,32):RETURN
  304. 4260 '
  305. 5000 '    *************************************
  306.  
  307.     *****      Misc. Subroutines    *****
  308.  
  309.     *************************************
  310. 5005 '
  311. 5010 PRINT ESC$ "B0";:RETURN:'        Inverse Video ON/OFF
  312. 5015 PRINT ESC$ "C0";:RETURN:
  313. 5020 PRINT ESC$ "B4";:RETURN:'        Turn Cursor ON/OFF
  314. 5025 PRINT ESC$ "C4";:RETURN:
  315. 5030 PRINT ESC$ "B1";:RETURN:'        Reduced Intensity ON/OFF
  316. 5035 PRINT ESC$ "C1";:RETURN:
  317. 5040 PRINT DO;:RETURN:'            Underline ON/OFF
  318. 5045 PRINT DF;:RETURN:
  319. 5050 PRINT DO;L$;DF;:RETURN:'        Underline L$ -----
  320. 5055 '
  321. 5060 GOSUB 5010:GOSUB 5030:PRINT L$;:GOSUB 5015:GOTO 5035:'    Revrs. Video L$
  322. 5065 GOSUB 5010:PRINT L$;:GOTO 5015:'                BRIGHT Video L$
  323. 5070 '
  324. 6000 '    *****    INKEY$ Subroutine
  325. 6010 K$=INKEY$:IN=""
  326. 6020 IN=INKEY$:IF IN="" THEN 6020 ELSE RETURN
  327. 6030 '
  328. 7000 '    *************************************
  329.  
  330.     *****      Set Up Variables    *****
  331.  
  332.     *************************************
  333. 7005 '
  334. 7010 '    String Variables:    C$ D$ E$ F$ I$
  335.  
  336. 7012 '    Integer Variables:    A-B, G-H, J-S, U-W
  337. 7015 '
  338. 7020 DEFINT A-Z:DEFSTR C-F,I: DIM F(24),B(52),C(13),H(52),P(52),R(52),S(52)
  339. 7025 '
  340. 7030 CLS=CHR$(26):DCLR=CHR$(24):DSCR=CHR$(23): E=CHR$(34):PRINT CLS
  341. 7035 ESC$=CHR$(27):EQ$=CHR$(61):FE=ESC$+EQ$: C7=CHR$(7):C8=STRING$(3,8)+" "
  342. 7040 FOR X=1 TO 24:F(X)=FE+CHR$(X+31)+CHR$(32):NEXT: GOSUB 5020:WIDTH 255
  343. 7045 DEF FNF(X,Y)=FE+CHR$(X+31)+CHR$(Y+31):DEF FNRN(X)=INT(RND*X)+1
  344. 7050 DEF FNTITLE$(X,M$)=FNF(X,1)+STRING$((80-LEN(M$))/2,12)+M$
  345. 7055 DD=STRING$(79,45): DA=STRING$(79,42): DE=STRING$(79,61)
  346. 7060 GOSUB 7500:FOR X=1 TO 6:V%=V%+V%(X):NEXT:V%=V%*V%(5)
  347. 7065 DO=ESC$+"B3": DF=ESC$+"C3":'    Underline On and oFf
  348. 7070 DLINE=STRING$(50,45): DLINE1="|"+STRING$(48,32)+"|"
  349. 7075 GOSUB 8000:RANDOMIZE V%+COUNTER%:GOTO 100
  350. 7080 '
  351. 7500 '    *****    Today's Date CALCULATION -- (Date=D2$)
  352. 7510 '
  353. 7520 RESTORE 7580:FOR X=1 TO 6:READ D%(X):NEXT
  354. 7530 FOR Y=1 TO 6:D%=D%(Y):GOSUB 7560:V%(Y)=CV%:NEXT
  355. 7540 M$=STR$(V%(5)):D$=STR$(V%(6)):Y$=STR$(V%(3))
  356. 7550 D2$=RIGHT$(M$,2)+"/"+RIGHT$(D$,2)+"/"+RIGHT$(Y$,2):RETURN
  357. 7560 OUT 32,D%:BCD=INP(36):SX=INT(BCD/16)
  358. 7570 W=BCD-16*SX:CV%=10*SX+W:RETURN
  359. 7580 DATA 0,0,9,0,7,6
  360. 7590 '
  361. 8000 '    *********************************************
  362.  
  363.     *****        Print Instructions        *****
  364.  
  365.     *********************************************
  366. 8005 GOSUB 4000:PRINT FNF(22,10);:K$=INKEY$
  367. 8010 PRINT"Copyright (c) 1989 by Richard Altman -- All Rights Reserved."
  368. 8015 PRINT FNF(11,22)"Would you like Instructions?   (Y/N)    "C7;
  369. 8020 FK=INKEY$:IF FK="" THEN COUNTER%=COUNTER%+1:GOTO 8020
  370. 8025 IF FK="Y" OR FK="y" OR FK="N" OR FK="n" OR FK=CHR$(13) THEN 8030 ELSE 8020
  371. 8030 IF FK="N" OR FK="n" OR FK=CHR$(13) THEN 8150
  372. 8035 PRINT F(21)DSCR;FNF(11,22)STRING$(45,32) FNF(6,8)"You must follow suit ";
  373. 8040 PRINT"or match the face value  (Example: Clubs on Clubs,"
  374. 8045 PRINT FNF(7,4)"9 on 9, etc.).   When asked which card you wish to ";
  375. 8050 PRINT"play, input as follows:":PRINT FNF(8,4)"--->  "DO"CARD,SUIT <cr>"DF;
  376. 8055 PRINT"  (For example:  9,H)"DF"   or   "DO"CARD, <cr>"DF" for SAME SUIT"
  377. 8060 PRINT FNF(10,8)"AN "DO"EIGHT"DF" MAY BE PLAYED AT ANY TIME DURING ";
  378. 8065 PRINT"THE GAME (regardless of suit"FNF(11,4)"showing) to change the ";
  379. 8070 PRINT "suit to one of your choosing."FNF(13,8)"If you are unable or ";
  380. 8075 PRINT"unwilling to play,  you will be given another card"FNF(14,4)"from";
  381. 8080 PRINT" the Draw stack.  "DO"If all cards have been drawn"DF", any ";
  382. 8085 PRINT"person able to play"FNF(15,4)"must do so."
  383. 8090 PRINT FNF(17,8)"At the end of the game, any player holding cards has ";
  384. 8095 L$=" EIGHTS=50,  J Q K=10,  OTHER CARDS=Face Value. "
  385. 8100 PRINT"points scored"FNF(18,4)"against him, as follows:   ";:GOSUB 5065
  386. 8105 PRINT FNF(23,8);:RETURN
  387. 8150 PRINT L$ FNF(11,22);:L$=" Setting up the cards   (SHUFFLING)... "
  388. 8155 GOSUB 5065:FLAG!=9:RETURN
  389. INT FNF(23,8);:RETURN
  390. 8150 PRINT L$ FNF(11,22);:L$="