home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Games / BRIDGE-PLAYER (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  12.1 KB  |  486 lines

  1. 10 SC=12:BO=0
  2. 20 POKE53280,BO:POKE53281,SC:PRINTCHR$(147):X=RND(-TI)
  3. 30 PRINT"****  BRIDGE 3.1  ****"
  4. 40 PRINT:DIM C(52),P(52),V(4,5),Y(4,5),F(4,13),T9(4),X(4),G(4)
  5. 50 DIM T$(104),E$(56),A$(13),Z$(26),D$(13)
  6. 60 A$="23456789TJQKA":N$="1234567"
  7. 70 B$="XCDHS"
  8. 80 PRINT" DO YOU WISH TO PLAY CONTRACT":INPUT"BRIDGE OR DUPLICATE BRIDGE ";Q$
  9. 90 R9=R9-4*INT(R9/4)+1:K1=0:K=R9:FORI=1TO52:P(I)=I:NEXT:V5=14
  10. 100 IFQ$="C"THEN120
  11. 110 PRINTCHR$(147):PRINT"SHUFFLING":GOTO220
  12. 120 A=3.14159:B=2.71828:C=1.41421:T1=.5
  13. 130 X=RND(-TI):A9=INT(RND(1)*(INT(X*1000))+1)
  14. 140 PRINT"[147]SHUFFLING"
  15. 150 X9=A9:FORJ=52TO1STEP-1
  16. 160 I2=I2+1:X9=1+ABS(X9):E=(E+(1+X9/B)*C)*I2:E=E-1*INT(E/A):E=E-INT(E)+.018
  17. 170 IFE>.5THENE=T1*(E-T1)+T1
  18. 180 R=INT(E*J+1):C(J)=P(R):P(R)=P(J):NEXTJ:IFC(1)<13THENR9=1:GOTO240
  19. 190 IFC(1)<27THENR9=2:GOTO240
  20. 200 IFC(1)<40THENR9=3:GOTO240
  21. 210 R9=4:GOTO240
  22. 220 FORJ=52TO1STEP-1
  23. 230 R=INT((RND(1))*J+1):C(J)=P(R):P(R)=P(J):NEXT
  24. 240 FORI=1TO4:T9(I)=13:M=I*13-13:FORJ=1TO13:F(I,J)=C(J+M):NEXT:NEXT
  25. 250 PRINT"[147]SHUFFLING":PRINT"DEALING"
  26. 260 FORI=1TO4
  27. 270 T1=0
  28. 280 FORJ=2TO13:IFF(I,J-1)>F(I,J)THEN300
  29. 290 T2=F(I,J):F(I,J)=F(I,J-1):F(I,J-1)=T2:T1=1
  30. 300 NEXTJ:IFT1=1THEN270
  31. 310 NEXT:T$="":FORL=1TO4:FORI=1TO13
  32. 320 J=F(L,I)-13*INT(F(L,I)/13):M=INT((F(L,I)-.1)/13):IFJ=0THENJ=13
  33. 330 Z$=MID$(A$,J,1)+MID$(B$,M+2,1):T$=T$+Z$:NEXT:NEXT
  34. 340 PRINT"DEALING":R=1:H=0
  35. 345 PRINT"SORTING":GOSUB2460:K=1:L5=4:PRINT"[147]"
  36. 350 PRINT"YOUR HAND (SOUTH):":PRINT:GOSUB2220:E$="":S$="1A":K=R9-1
  37. 360 PRINT:IFK>0THEN480
  38. 365 PRINT" YOU ARE THE DEALER, WHAT DO YOU BID?":PRINT
  39. 370 K=1:K1=K1+1:PRINT"SOUTH";
  40. 380 INPUTZ$:IFZ$=""THEN440
  41. 383 IFLEFT$(Z$,1)<>"P"THEN390
  42. 386 C(K1)=1:E$=E$+"00":IFK1<4THEN480
  43. 389 GOTO560
  44. 390 IFMID$(Z$,2,1)="N"THENZ$=LEFT$(Z$,1)+"X"
  45. 400 IFLEFT$(Z$,1)<>"D"THEN430
  46. 402 IFC(K1-1)=0THEN420
  47. 404 IFC(K1-2)=1THEN420
  48. 410 PRINT"  YOU CANNOT DOUBLE YOUR OWN PARTNER'S BID !":GOTO440
  49. 420 C(K1)=0:E$=E$+"DB":IFK1<4THEN490
  50. 425 GOTO560
  51. 430 IFZ$>S$THEN450
  52. 440 PRINT"  ILLEGAL BID, TRY AGAIN.":GOTO380
  53. 450 C(K1)=0:IFK1>4THEN470
  54. 460 FORI=1TO5:IFMID$(Z$,2,1)=MID$(B$,I,1)THENX(1)=6-I:NEXT
  55. 470 E$=E$+Z$:S$=Z$
  56. 480 K=K+1:IFK>4THEN370
  57. 485 GOSUB600:IFC(K1)=0THEN570
  58. 490 GOSUB2760:IFK=3THEN550
  59. 500 T1=LEN(E$):IFT1<5THEN550
  60. 510 Z$=MID$(E$,T1-1,2):IFZ$="00"THEN520
  61. 512 IFZ$="DB"THEN550
  62. 514 GOTO530
  63. 520 IFMID$(E$,T1-3,2)<>"00"THEN550
  64. 530 GOSUB3370:IFF1<>2THEN550
  65. 540 PRINTF$;": DOUBLE":E$=E$+"DB":IFK1<4THEN480
  66. 545 GOTO560
  67. 550 PRINTF$;": PASS":E$=E$+"00"
  68. 560 IFK1<4THEN480
  69. 562 IFMID$(E$,2*K1-5,6)="000000"THEN940
  70. 564 GOTO480
  71. 570 GOSUB3170:IFF1=1THEN490
  72. 580 S$=D$:E$=E$+S$:IFMID$(S$,2,1)="X"THEND$=MID$(S$,1,1)+"NT"
  73. 590 GOSUB2760:PRINTF$;": ";D$:GOTO480
  74. 600 K1=K1+1:C(K1)=0:L=K-2:IFL<=0THENL=K+2
  75. 610 IFK1>4THEN780
  76. 615 IFK1>2THEN660
  77. 620 IFP(K)>23THEN740
  78. 625 IFP(K)>12THEN650
  79. 630 C(K1)=1:RETURN
  80. 640 GOSUB3110:RETURN
  81. 650 GOSUB3050:RETURN
  82. 660 IFC(K1-2)=1THEN620
  83. 662 IFP(K)>5THEN680
  84. 664 IFP(L)>23THEN650
  85. 670 IFC(K1-1)=0THEN630
  86. 672 IFMID$(E$,2*K1-5,1)<>"D"THEN630
  87. 674 GOTO650
  88. 680 IFP(K)>9THEN740
  89. 685 IFV(K,X(K))<5THEN700
  90. 690 IFMID$(B$,6-X(K),1)>MID$(S$,2,1)THEN650
  91. 700 IFX(L)=5THEN650
  92. 710 IFV(K,X(L))>3THEN770
  93. 720 IFV(K,X(L))<2THEN630
  94. 725 IFY(K,X(L))=0THEN730
  95. 727 GOTO770
  96. 730 IFS$>="1X"THEN630
  97. 735 D$="1X":RETURN
  98. 740 IFP(K)<14THEN650
  99. 745 IFP(K)>18THENL=K:GOTO640
  100. 750 IFV(K,X(L))<4THEN650
  101. 755 IFV(K,X(K))<5THEN650
  102. 760 IFY(K,X(K))<4THEN650
  103. 765 GOTO640
  104. 770 GOSUB3080:RETURN
  105. 780 IFP(K)>5THEN790
  106. 785 IFP(K)+P(L)>25THEN870
  107. 790 IFV(K,X(K))>4THEN810
  108. 795 IFP(K)>16THEN810
  109. 800 IFC(K1-2)=1THEN630
  110. 802 IFP(K)<10THEN700
  111. 804 IFK1<8THEN930
  112. 806 GOTO870
  113. 810 IFC(K1-2)=0THEN830
  114. 820 IFP(K)<14THEN630
  115. 822 IFV(K,X(K))<5THEN630
  116. 824 GOTO650
  117. 830 IFMID$(E$,2*(K1-1)-2,1)="X"THEN900
  118. 840 IFK1>7THEN870
  119. 845 IFMID$(S$,1,1)>"2"THEN870
  120. 850 IFV(K,X(K))<5THEN870
  121. 855 IFP(K)>9THEN650
  122. 860 IFMID$(B$,6-X(K),1)>MID$(S$,2,1)THEN650
  123. 865 GOTO710
  124. 870 IFX(L)=0THEN650
  125. 875 M1=Y(K,X(K))+V(K,X(K))+Y(L,X(K))+V(L,X(K))
  126. 880 M2=Y(K,X(L))+V(K,X(L))+Y(L,X(L))+V(L,X(L))
  127. 890 IFM1>=M2THEN650
  128. 892 IFV(K,X(L))<2THEN650
  129. 894 X(K)=X(L):GOTO770
  130. 900 IFP(K)<6THEN630
  131. 905 IFMID$(E$,2*(K1-1)-3,2)="3X"THEN630
  132. 910 F1=0:FORI=1TO4:IFV(K,I)>4THENF1=1
  133. 920 NEXT:IFF1=1THEN650
  134. 922 IFK1>4THEN930
  135. 924 IFP(K)>12THEN640
  136. 930 GOSUB3140:RETURN
  137. 940 I2=LEN(E$)-7:T1=6:IFMID$(E$,I2,1)<>"D"THEN950
  138. 942 IFMID$(E$,I2-4,4)="0000"THENT1=12:GOTO950
  139. 946 T1=8
  140. 950 X=(K1*2-T1)/2+(R9-1):W8=X-4*INT(X/4):IFW8=0THENW8=4
  141. 960 T4=W8-2:IFT4<1THENT4=W8+2
  142. 970 K=0:T1=K1*2-2:I=0
  143. 980 I=I+2:K=K+1:IFMID$(E$,I,1)<>MID$(S$,2,1)THEN1010
  144. 990 K1=(K+(R9-1))-4*INT((K+(R9-1))/4):IFK1=0THENK1=4
  145. 1000 IFK1=W8ORK1=T4THEN1030
  146. 1010 IFI<T1THEN980
  147. 1015 PRINT"  EVERYONE PASSES, REDEAL."
  148. 1020 FORY=1TO750:NEXT:GOTO90
  149. 1030 FORI=1TO5:IFMID$(S$,2,1)=MID$(B$,6-I,1)THENX=I
  150. 1040 NEXT
  151. 1050 IFX=5THENS$=MID$(S$,1,1)+"NT"
  152. 1060 IFMID$(E$,I2,1)="D"THENS$=S$+" (DBL)"
  153. 1070 PRINT"[147]":PRINT"THE CONTRACT IS: ";S$:K=K1:GOSUB2760
  154. 1080 PRINT"THE DECLARER IS: ";F$:PRINT:PRINT:K2=K1+2:IFK2>4THENK2=K1-2
  155. 1090 R=0:W8=0:T4=0:PRINT"REVIEW OF THE BIDDING:":PRINT:PRINT"SOUTH  WEST  NORTH  EAST":
  156. 1095 T1=R9*7-7:PRINTTAB(T1);:I=-1:T2=R9-1:T3=LEN(E$)
  157. 1100 I=I+2:IFI>T3THEN1160
  158. 1110 D$=MID$(E$,I,2)+"  ":T2=T2+1:IFT2>4THENPRINT:T2=1
  159. 1120 IFMID$(E$,I+1,1)="X"THEND$=MID$(E$,I,1)+"NT "
  160. 1130 IFMID$(E$,I,2)="DB"THEND$="DBL "
  161. 1140 IFMID$(E$,I,2)="00"THEND$="PASS"
  162. 1150 PRINTD$;"   ";:GOTO1100
  163. 1160 PRINT:PRINT:PRINT"  READY TO PLAY";:INPUTD$:PRINT"[147]"
  164. 1170 H=H+1:IFH=5THEN2050
  165. 1175 K=K+1:IFK>4THENK=1
  166. 1180 L=K-2:IFL<1THENL=K+2
  167. 1190 M1=K+1:IFM1=5THENM1=1
  168. 1200 M2=M1+2:IFM2>4THENM2=M1-2
  169. 1210 IFH>1THEN1290
  170. 1215 G2=0
  171. 1220 IFR=13THEN2930
  172. 1225 R=R+1:PRINT"[147]ROUND:";R:
  173. 1227 PRINT"";S$;"     WE:";W8;"   THEY:";T4:K3=K:PRINT
  174. 1230 IFK1-2*INT(K1/2)=0THEN1240
  175. 1235 L5=5:K=3:PRINT" NORTH:":GOSUB2220:GOTO1270
  176. 1240 K=K1+2:IFK1=4ANDR=1THEN1270
  177. 1245 IFK>4THENK=K1-2
  178. 1250 L5=7:IFK1=2THENL5=17
  179. 1260 GOSUB2760:PRINTTAB(L5-4);F$;":":GOSUB2220
  180. 1270 K=1:L5=7:IFK1<>4THEN1280
  181. 1275 L5=17
  182. 1280 PRINTTAB(L5-4);"SOUTH:":GOSUB2220:K=K3
  183. 1290 IFK>1THEN1370
  184. 1295 K2=K:GOSUB2360:GOSUB2760
  185. 1300 PRINTF$;" PLAYS";:INPUTD$:IFLEN(D$)<2THEN1350
  186. 1305 IFH=1THEN1330
  187. 1310 IFMID$(D$,2,1)=MID$(B$,6-N,1)THEN1330
  188. 1315 IFV(K,N)=0THEN1330
  189. 1320 PRINT"RENEGE, TRY AGAIN.":GOTO1300
  190. 1330 F1=0:FORI=1TOT9(K)*2-1:IFD$=MID$(Z$,I,2)THENF1=1
  191. 1340 NEXT:IFF1=1THEN1360
  192. 1350 PRINT"  ERROR IN LEAD, TRY AGAIN.":GOTO1300
  193. 1360 GOSUB2080:IFG(K)<G2THEN1170
  194. 1365 G2=G(K):GOTO1170
  195. 1370 IFK<>3THEN1390
  196. 1375 IFK1-2*INT(K1/2)=0THEN1390
  197. 1380 K2=K:GOSUB2360:GOSUB2760:GOTO1300
  198. 1390 IFH>1THEN1830
  199. 1395 GOSUB2620
  200. 1400 IFT1=4THEN1420
  201. 1405 IFK=K1ORL=K1THEN1450
  202. 1410 IFVAL(MID$(S$,1,1))>7-RTHEN1450
  203. 1420 IFV(K,X(L))=0THEN1450
  204. 1422 IFX(L)<>XTHEN1430
  205. 1424 IFK=K1ORL=K1THEN1430
  206. 1426 GOTO1590
  207. 1430 K2=K:GOSUB2360:T1=0:FORI=1TOX(L):T1=T1+V(K,I):NEXT:D$=MID$(Z$,2*T1-1,2)
  208. 1440 GOSUB2080:G2=G(K):GOSUB2760:PRINTF$;" PLAYS: ";D$:GOTO1170
  209. 1450 IFV(K,X)=0THEN1520
  210. 1452 IFK=K1ORL=K1THEN1460
  211. 1454 GOTO1520
  212. 1460 IFV(M1,X)+V(M2,X)=0THEN1520
  213. 1470 K2=K:K$=MID$(B$,6-X,1):GOSUB2840:G3=G(K):K2=L:GOSUB2840
  214. 1480 IFG3>G(K)THEN1510
  215. 1490 K2=K:GOSUB2360:T1=0:FORI=1TOX:T1=T1+V(K,I):NEXT
  216. 1500 D$=MID$(Z$,2*T1-1,2):GOTO1440
  217. 1510 K2=K:GOSUB2840:GOTO1440
  218. 1520 J=0
  219. 1530 J=J+1:IFV(M1,J)>0THEN1540
  220. 1535 IFV(M1,X)>0THEN1570
  221. 1540 IFV(M2,J)>0THEN1550
  222. 1545 IFV(M2,X)>0THEN1570
  223. 1550 IFJ=XTHEN1570
  224. 1555 K$=MID$(B$,6-J,1):K2=K:GOSUB2840:T2=G(K):K2=M1:GOSUB2840:IFG(K)>T2THEN1570
  225. 1560 K2=M2:GOSUB2840:IFG(K)<T2THEN1580
  226. 1570 IFJ<4THEN1530
  227. 1572 IFV(K,X(L))=0THEN1590
  228. 1574 GOTO1430
  229. 1580 K2=K:GOSUB2840:GOTO1440
  230. 1590 K2=K:GOSUB2360:T1=300:T2=1:FORI=1TO27-2*RSTEP2:D$=MID$(Z$,I,2)
  231. 1600 IFMID$(D$,2,1)=MID$(S$,2,1)THEN1620
  232. 1605 GOSUB2880:IFG(K)>T1THEN1620
  233. 1610 T1=G(K):T2=I
  234. 1620 NEXT:D$=MID$(Z$,T2,2):GOSUB2080:IFG(K)>G2THENG2=G(K)
  235. 1630 GOSUB2760:PRINTF$;" PLAYS: ";D$:GOTO1170
  236. 1640 T1=0:FORI=1TON:T1=T1+V(K,I):NEXT:K2=K:GOSUB2360:D$=MID$(Z$,2*T1-1,2)
  237. 1650 GOSUB2080:IFG(K)>G2THENG2=G(K)
  238. 1660 GOSUB2760:PRINTF$;" PLAYS: ";D$:GOTO1170
  239. 1670 IFV(K,X)=0THEN1590
  240. 1675 G3=G2
  241. 1680 IFH<4THEN1750
  242. 1685 IFG(L)=G2THEN1590
  243. 1690 T1=0:IFX=1THEN1710
  244. 1700 FORI=1TOX-1:T1=T1+V(K,I)*2:NEXT
  245. 1710 K2=K:GOSUB2360:T2=T1+2*V(K,X)-1
  246. 1720 I=T1-1
  247. 1730 I=I+2:D$=MID$(Z$,I,2):GOSUB2880:IFG(K)>G3THEN1740
  248. 1732 IFI=T1+1THEN1590
  249. 1734 GOTO1920
  250. 1740 IFI<T2THEN1730
  251. 1742 IFG(K)>G3THEN1930
  252. 1746 GOTO1590
  253. 1750 IFH=3THEN1780
  254. 1752 IFV(L,N)>0THEN1770
  255. 1754 IFV(L,X)>0THEN1590
  256. 1760 G(L)=0:GOTO1780
  257. 1770 K2=L:K$=MID$(B$,6-N,1):GOSUB2840:G(L)=G(K)
  258. 1780 K2=M1:IFV(M1,N)>0THEN1800
  259. 1785 IFV(M1,X)=0THENG4=0:GOTO1810
  260. 1790 K$=MID$(B$,6-X,1):GOSUB2840:G4=G(K):GOTO1810
  261. 1800 K$=MID$(B$,6-N,1):GOSUB2840:G4=G(K)
  262. 1810 IFG4>G3THENG3=G4
  263. 1820 IFG(L)<G3THEN1690
  264. 1825 GOTO1590
  265. 1830 IFV(K,N)=0THEN1670
  266. 1832 IFV(K,N)=1THEN1640
  267. 1834 G3=G2:IFH<4THEN1940
  268. 1840 IFG(L)=G2THEN1640
  269. 1850 T1=0:IFN=1THEN1860
  270. 1855 FORI=1TON-1:T1=T1+V(K,I)*2:NEXT
  271. 1860 T2=T1+1+V(K,N)*2-2:K2=K:GOSUB2360:I=T1-1
  272. 1870 I=I+2:D$=MID$(Z$,I,2):GOSUB2880:IFG(K)>G3THEN1880
  273. 1875 GOTO1890
  274. 1880 IFI<T2THEN1870
  275. 1890 IFI=T1+1THEN1930
  276. 1895 IFG(K)>G3THEN1930
  277. 1900 D$=MID$(Z$,I-2,2):GOSUB2880:IFG(K)>G3THEN1920
  278. 1910 IFH=3THENGOSUB2380:IFF1=1THEN1650
  279. 1920 D$=MID$(Z$,I-2,2):GOTO1650
  280. 1930 D$=MID$(Z$,T2,2):GOTO1650
  281. 1940 IFH=3THEN1980
  282. 1945 K2=L:IFV(L,N)>0THEN1970
  283. 1950 IFV(L,X)>0THEN1960
  284. 1955 G(L)=0:GOTO1980
  285. 1960 K$=MID$(B$,6-X,1):GOSUB2840:G(L)=G(K):GOTO1980
  286. 1970 K$=MID$(B$,6-N,1):GOSUB2840:G(L)=G(K)
  287. 1980 K2=M1:IFV(M1,N)>0THEN2010
  288. 1990 IFV(M1,X)>0THEN2000
  289. 1995 G4=0:GOTO2020
  290. 2000 K$=MID$(B$,6-X,1):GOSUB2840:G4=G(K):GOTO2020
  291. 2010 K$=MID$(B$,6-N,1):GOSUB2840:G4=G(K)
  292. 2020 IFG4>G3THENG3=G4
  293. 2030 IFG(L)>=G3THEN1640
  294. 2035 IFH<>3THEN1850
  295. 2040 GOSUB2380:IFF1=1THEN1650
  296. 2045 GOTO1850
  297. 2050 T3=0:FORK=1TO4:IFG(K)>T3THENT3=G(K):T1=K
  298. 2060 NEXT:IFT1-2*INT(T1/2)=1THENW8=W8+1:GOTO2070
  299. 2065 T4=T4+1
  300. 2070 H=0:K=T1-1:GOTO1170
  301. 2080 T3=N:FORI=1TO4:IFMID$(D$,2,1)<>MID$(B$,6-I,1)THEN2100
  302. 2090 V(K,I)=V(K,I)-1:N=I
  303. 2100 NEXT:T2=(111-8*R)-2*(H-1):I=-1
  304. 2110 I=I+2
  305. 2120 IFD$=MID$(T$,I,2)THEN2130
  306. 2125 IFI<T2THEN2110
  307. 2130 IFI=T2THEN2160
  308. 2135 IFI>1THEN2150
  309. 2140 T$=MID$(T$,3,104):GOTO2170
  310. 2150 T$=MID$(T$,1,I-1)+MID$(T$,I+2,104):GOTO2170
  311. 2160 IFT2=1THEN2170
  312. 2165 T$=MID$(T$,1,T2-1)
  313. 2170 T9(K)=T9(K)-1:IFH=1ORN=T3THEN2200
  314. 2180 IFN=XTHEN2190
  315. 2185 N=T3:G(K)=0:RETURN
  316. 2190 N=T3
  317. 2200 GOSUB2880
  318. 2210 RETURN
  319. 2220 D$="":T1=(28-2*R)*(K-1)+1:Z$=MID$(T$,T1,2*(14-R)-1)
  320. 2230 FORI=1TO27-2*RSTEP2:D$=D$+MID$(Z$,I,1):NEXT
  321. 2240 IFV(K,1)=0THEN2260
  322. 2250 PRINTTAB(L5);"[193] ";MID$(D$,1,V(K,1)):PRINT:GOTO2270
  323. 2260 PRINTTAB(L5);"[193]":PRINT
  324. 2270 IFV(K,2)=0THEN2290
  325. 2280 PRINTTAB(L5);"[211][144] ";MID$(D$,V(K,1)+1,V(K,2)):PRINT:GOTO2300
  326. 2290 PRINTTAB(L5);"[211][144]":PRINT
  327. 2300 IFV(K,3)=0THEN2320
  328. 2310 T1=V(K,1)+V(K,2):PRINTTAB(L5);"[218][144] ";MID$(D$,T1+1,V(K,3)):PRINT:GOTO2330
  329. 2320 PRINTTAB(L5);"[218][144]":PRINT:IFV(K,4)=0THEN2350
  330. 2330 IFV(K,4)=0THEN2350
  331. 2340 T1=V(K,1)+V(K,2)+V(K,3):PRINTTAB(L5);"[216] ";MID$(D$,T1+1,V(K,4)):PRINT:RETURN
  332. 2350 PRINTTAB(L5);"[216]":PRINT:RETURN
  333. 2360 T5=0:IFK2=1THEN2370
  334. 2365 FORI=1TOK2-1:T5=T5+2*T9(I):NEXT
  335. 2370 Z$=MID$(T$,T5+1,2*T9(K2)):RETURN
  336. 2380 K2=K:GOSUB2360:T1=0:IFN=1THEN2390
  337. 2385 FORI=1TON-1:T1=T1+V(K,I)*2:NEXT
  338. 2390 T2=T1+1+V(K,N)*2-2
  339. 2400 K$=MID$(B$,6-N,1):GOSUB2840:I=T1-1:IFG(K)>G3THENF1=0:RETURN
  340. 2410 I=I+2
  341. 2420 D$=MID$(Z$,I,2):GOSUB2880:IFG(K)>G2THEN2430
  342. 2425 GOTO2440
  343. 2430 IFI<T2THEN2410
  344. 2440 IFI<>T1+1THEN2450
  345. 2445 D$=MID$(Z$,T2,2):F1=1:RETURN
  346. 2450 D$=MID$(Z$,I-2,2):F1=1:RETURN
  347. 2460 FORI=1TO4:P(I)=0:FORJ=1TO5:V(I,J)=0:Y(I,J)=0:NEXT:NEXT
  348. 2470 FORI=1TO4:FORJ=1TO13
  349. 2480 T2=F(I,J)-13*INT(F(I,J)/13):T1=5-(INT((F(I,J)-.9)/13)+1):IFT2=0THENT2=13
  350. 2490 IFT2<10THEN2500
  351. 2495 T2=T2-9:Y(I,T1)=Y(I,T1)+T2
  352. 2500 V(I,T1)=V(I,T1)+1:NEXT:NEXT
  353. 2510 FORI=1TO4:FORJ=1TO4:T1=3-V(I,J):IFT1<=0THENT1=0
  354. 2520 P(I)=P(I)+Y(I,J)+T1:F(I,J)=V(I,J)+(2*(V(I,J)-4)+Y(I,J)):IFV(I,J)<4THENF(I,J)=0
  355. 2530 NEXT:NEXT:I=0
  356. 2540 I=I+1:IFI>4THENRETURN
  357. 2545 T1=-1:FORJ=1TO4:IFF(I,J)<=T1THEN2560
  358. 2550 T1=F(I,J):T2=J
  359. 2560 NEXTJ
  360. 2570 IFF(I,1)+T2>1THEN2580
  361. 2575 X(I)=5:GOTO2590
  362. 2580 X(I)=T2
  363. 2590 IFP(I)<16THEN2610
  364. 2592 FORJ=1TO4:IFY(I,J)<2THEN2610
  365. 2594 IFV(I,J)<3THEN2610
  366. 2600 NEXT:X(I)=5:V(I,5)=5:Y(I,5)=7:F(I,5)=42
  367. 2610 GOTO2540
  368. 2620 GOSUB2780:IFT1>0THENRETURN
  369. 2625 K2=L:GOSUB2360:T2=0
  370. 2630 FORJ=1TO4:T3=1+T2:F(L,J)=0:FORI=T3TOT3+V(L,J)-1:D$=MID$(Z$,2*I-1,2):GOSUB2880
  371. 2635 N2=N2-9:IFN2<0THENN2=0
  372. 2640 F(L,J)=F(L,J)+N2:NEXT:T2=T2+V(L,J):NEXT
  373. 2650 IFMID$(S$,2,1)="X"THEN2700
  374. 2655 IFV(L,X)=0THEN2700
  375. 2660 FORJ=1TO4:IFV(L,J)>0THEN2670
  376. 2663 IFV(K,J)=0THEN2670
  377. 2666 GOTO2690
  378. 2670 NEXT
  379. 2680 IFV(L,4)>0THEN2700
  380. 2690 F(L,J)=10
  381. 2700 T2=-1:FORJ=1TO4:IFF(L,J)<=T2THEN2710
  382. 2705 T2=F(L,J):F1=J
  383. 2710 NEXT:X(L)=F1:RETURN
  384. 2720 GOSUB2360:T3=0:IFN=1THEN2740
  385. 2730 FORI=1TON-1:T3=T3+V(K2,I):NEXT
  386. 2740 IFT3=14-RTHENT3=T3-1
  387. 2750 D$=MID$(Z$,2*T3+1,2):GOSUB2880:RETURN
  388. 2760 IFK=1THENF$="SOUTH"
  389. 2762 IFK=2THENF$=" WEST"
  390. 2764 IFK=3THENF$="NORTH"
  391. 2766 IFK=4THENF$=" EAST"
  392. 2768 RETURN
  393. 2770 RETURN
  394. 2780 J=0
  395. 2790 J=J+1:K$=MID$(B$,6-J,1):IFJ=XTHEN2800
  396. 2792 K2=L:GOSUB2840:T1=G(K):K2=M1:GOSUB2840:IFG(K)>T1THEN2800
  397. 2794 K2=M2:GOSUB2840:IFG(K)<T1THEN2810
  398. 2800 IFJ<4THEN2790
  399. 2805 T1=0:RETURN
  400. 2810 IFV(K,J)=0THEN2800
  401. 2812 IFX=5THEN2830
  402. 2814 IFV(M1,J)>0THEN2820
  403. 2816 IFV(M1,X)>0THEN2800
  404. 2820 IFV(M2,J)>0THEN2830
  405. 2825 IFV(M2,X)>0THEN2800
  406. 2830 X(L)=J:T1=4:RETURN
  407. 2840 GOSUB2360:I=0:F1=14-R
  408. 2850 I=I+1:IFMID$(Z$,2*I,1)=K$THEN2870
  409. 2860 IFI<F1THEN2850
  410. 2865 G(K)=0:RETURN
  411. 2870 D$=MID$(Z$,2*I,2):GOSUB2880:RETURN
  412. 2880 N1=0:IFMID$(D$,2,1)=MID$(S$,2,1)THENN1=13
  413. 2890 FORI2=9TO13:IFMID$(D$,1,1)=MID$(A$,I2,1)THENN2=I2
  414. 2900 NEXT
  415. 2910 IFMID$(D$,1,1)<"A"THENN2=VAL(MID$(D$,1,1))-1
  416. 2920 G(K)=N1+N2:RETURN
  417. 2930 PRINT:PRINT"  THE CONTRACT WAS ";S$;".":T1=VAL(LEFT$(S$,1)):IFK1-2*INT(K1/2)=1THEN2970
  418. 2933 T3=T4-6-T1:IFT3=0THEN2950
  419. 2936 IFT3>0THEN2960
  420. 2940 PRINT:PRINT"  YOUR OPPONENTS WERE SET";ABS(T3);"TRICK(S).":GOTO3020
  421. 2950 PRINT:PRINT"  YOUR OPPONENTS MADE THEIR CONTRACT.":GOTO3020
  422. 2960 PRINT:PRINT"  YOUR OPPONENTS MADE THEIR CONTRACT":PRINT"  PLUS";T3;"OVERTRICK(S)."
  423. 2965 GOTO3020
  424. 2970 T3=W8-6-T1:IFT3=0THEN2990
  425. 2975 IFT3>0THEN3000
  426. 2980 PRINT:PRINT"  YOU WERE SET";ABS(T3);"TRICK(S).":GOTO3020
  427. 2990 PRINT:PRINT"  YOU MADE YOUR CONTRACT.":GOTO3020
  428. 3000 PRINT:PRINT"  YOU MADE YOUR CONTRACT"
  429. 3010 PRINT"  PLUS";T3;"OVERTRICK(S)."
  430. 3020 IFLEFT$(Q$,1)="D"THEN3040
  431. 3025 PRINT:PRINT"  CONTINUE ";:INPUTD$:IFLEN(D$)=0THEN90
  432. 3030 IFMID$(D$,1,1)="N"THENSTOP
  433. 3035 GOTO90
  434. 3040 PRINT:PRINT"  THE HAND YOU JUST":PRINT"PLAYED WAS #";:PRINTA9:END
  435. 3050 FORI=1TO7:Z$=MID$(N$,I,1)+MID$(B$,6-X(K),1):IFZ$<=S$THEN3070
  436. 3060 D$=Z$:RETURN
  437. 3070 NEXT:RETURN
  438. 3080 FORI=1TO7:Z$=MID$(N$,I,1)+MID$(B$,6-X(L),1):IFZ$<=S$THEN3100
  439. 3090 D$=Z$:RETURN
  440. 3100 NEXT:RETURN
  441. 3110 FORI=1TO7:Z$=MID$(N$,I,1)+MID$(B$,6-X(L),1):IFZ$<=S$THEN3130
  442. 3120 D$=MID$(N$,I+1,1)+MID$(B$,6-X(L),1):RETURN
  443. 3130 NEXT:RETURN
  444. 3140 FORI=1TO7:Z$=MID$(N$,I,1)+MID$(B$,1,1):IFZ$<=S$THEN3160
  445. 3150 D$=Z$:RETURN
  446. 3160 NEXT:RETURN
  447. 3170 T2=P(K)+P(L):IFK-2*INT(K/2)=0THENT2=T2-2
  448. 3180 F1=0:IFMID$(S$,1,1)<"2"THENRETURN
  449. 3185 IFMID$(Z$,1,1)="3"THEN3200
  450. 3190 IFMID$(Z$,1,1)="4"THEN3210
  451. 3192 IFMID$(Z$,1,1)="5"THEN3240
  452. 3194 IFMID$(Z$,1,1)="6"THEN3270
  453. 3196 IFMID$(Z$,1,1)="7"THEN3280
  454. 3200 IFT2<23THEN3290
  455. 3205 GOTO3300
  456. 3210 IFT2<26THEN3290
  457. 3220 T1=LEN(E$):IFMID$(E$,T1-3,2)="3X"THEN3290
  458. 3230 IFMID$(Z$,2,1)="X"THEN3290
  459. 3235 GOTO3300
  460. 3240 IFT2<29THEN3290
  461. 3242 IFT2>30THENRETURN
  462. 3246 T1=LEN(E$)
  463. 3250 IFMID$(E$,T1-3,2)="4S"THEN3290
  464. 3260 IFMID$(E$,T1-3,2)="4H"THEN3290
  465. 3265 GOTO3300
  466. 3270 IFT2<33THEN3290
  467. 3275 GOTO3300
  468. 3280 IFT2<37THEN3290
  469. 3285 IFS$=MID$(E$,2*(K1-1)-3,2)THEN3290
  470. 3287 RETURN
  471. 3290 F1=1:C(K1)=1:RETURN
  472. 3300 IFT2>30THENRETURN
  473. 3310 FORI2=1TO5:IFMID$(Z$,2,1)<>MID$(B$,I2,1)THEN3330
  474. 3320 T1=VAL(MID$(Z$,1,1)):I=I2
  475. 3330 NEXT:IFI=1THEN3350
  476. 3335 IFI>3THEN3360
  477. 3340 IFT1>5THEN3290
  478. 3345 RETURN
  479. 3350 IFT1>3THEN3290
  480. 3355 RETURN
  481. 3360 IFT1>4THEN3290
  482. 3365 RETURN
  483. 3370 F1=0:IFMID$(E$,T1-5,6)="DB0000"THENRETURN
  484. 3375 T2=P(1)+P(3):I=3*VAL(LEFT$(S$,1))+13:IFI>=T2THENF1=2
  485. 3380 RETURN
  486.