home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / gam / domino.ba < prev    next >
Text File  |  2006-10-19  |  5KB  |  79 lines

  1. 1 'DOMINO.BA Bob Delbourgo
  2. 2 FORI=1TOVAL(RIGHT$(TIME$,2)):R=RND(1):NEXTI:CLEAR500:GOSUB58:CLS:PRINT@91,CHR$(27)"p"" D O M I N O E S ";:FORI=6TO126STEP40
  3. 3 PRINT@I," ";:PRINT@66+I," ";:NEXTI:PRINT@11,SPACE$(22);:PRINT@51,SPACE$(1);:PRINT@147,SPACE$(1);
  4. 4 PRINT@166,"     by Bob Delbourgo "CHR$(27)"q";:GOSUB62:GOSUB59:DIMXL(30),YL(30),XR(30),YR(30),N(9),X(180),Y(180):FORI=1TO6
  5. 5 FORJ=0TO4:XL(I+6*J)=126+16*I:YL(I+6*J)=3+8*J:XR(I+6*J)=133+16*I:YR(I+6*J)=3+8*J:NEXTJ,I:FORI=1TO10:FORJ=0TO8
  6. 6 X(18*I-17+J)=14*I-14:Y(18*I-17+J)=7*J:X(18*I-J)=14*I-7:Y(18*I-J)=7*J:NEXTJ,I
  7. 7 CLS:R$="":RL=0:RR=0:RD=RD+1:LINE(0,0)-(139,63),1,B:FORI=6TO132STEP14:LINE(I,0)-(I,57):LINE(I+1,0)-(I+1,57)
  8. 8 LINE(I+7,6)-(I+7,63):LINE(I+8,6)-(I+8,63):NEXTI:LINE(140,6)-(140,63),0:LINE(139,0)-(239,44),1,B:PRINT@264,"Draw  POCO  PILE";
  9. 9 PRINT@304,"Y/N?";:LINE(170,44)-(170,63):LINE(205,44)-(205,63):LINE(239,44)-(239,63)
  10. 10 C=1:FORI=1TOLEN(P$)/2:A$=MID$(P$,2*I-1,2):B$=LEFT$(A$,1):X=XL(I):Y=YL(I):GOSUB63:B$=RIGHT$(A$,1):X=XR(I):Y=YR(I):GOSUB63
  11. 11 NEXTI
  12. 12 PRINT@315,LEN(D$)/2;:PRINT@309,LEN(Q$)/2;:I$=INKEY$:IFI$=CHR$(28)THENC=C+1:IFC>LEN(P$)THENC=LEN(P$)
  13. 13 IFI$=CHR$(31)THENC=C+12:IFC>LEN(P$)THENC=C-12
  14. 14 IFI$=CHR$(29)THENC=C-1:IFC<1THENC=1
  15. 15 IFI$=CHR$(30)THENC=C-12:IFC<1THENC=C+12
  16. 16 IFC=2*INT(C/2)THENX=XR(C/2):Y=YR(C/2)ELSEX=XL((C+1)/2):Y=YL((C+1)/2)
  17. 17 LINE(X,Y-1)-(X+6,Y-1),1:LINE(X,Y+7)-(X+6,Y+7),1:FORT=1TO20:NEXTT:LINE(X,Y-1)-(X+6,Y-1),0:LINE(X,Y+7)-(X+6,Y+7),0
  18. 18 IFI$="N"ORI$="n"THEN24
  19. 19 IFI$="Y"ORI$="y"THEN21
  20. 20 GOTO12
  21. 21 IFD$=""THENDP=1:IFDQ=1THEN50ELSE32
  22. 22 P$=P$+LEFT$(D$,2):P=LEN(P$):X=XL(P/2):Y=YL(P/2):B$=LEFT$(D$,1):GOSUB63:X=XR(P/2):Y=YR(P/2):B$=MID$(D$,2,1):GOSUB63
  23. 23 D$=RIGHT$(D$,LEN(D$)-2):GOTO12
  24. 24 C$=MID$(P$,C,1):C1=2*C-2*INT(C/2)-1:IFC=C1THENF$=MID$(P$,C+1,1)ELSEF$=MID$(P$,C1,1)
  25. 25 IFR$=""ANDC$<>F$THENBEEP:GOTO12
  26. 26 IFR$=""THENSOUND1000,10:R$=C$+F$:B$=C$:X=X(90):Y=Y(90):GOSUB63:X=X(91):Y=Y(91):GOSUB63:GOTO31
  27. 27 IFLEFT$(R$,1)<>C$ANDRIGHT$(R$,1)<>C$THENBEEP:GOTO12
  28. 28 DP=0
  29. 29 IFC$=LEFT$(R$,1)THENSOUND1000,10:B$=C$:X=X(89-RL):Y=Y(89-RL):GOSUB63:B$=F$:X=X(88-RL):Y=Y(88-RL):GOSUB63:RL=RL+2:R$=F$+C$+R$:GOTO31
  30. 30 IFC$=RIGHT$(R$,1)THENSOUND1000,10:B$=C$:X=X(92+RR):Y=Y(92+RR):GOSUB63:B$=F$:X=X(93+RR):Y=Y(93+RR):GOSUB63:RR=RR+2:R$=R$+C$+F$
  31. 31 P$=LEFT$(P$,C1-1)+RIGHT$(P$,LEN(P$)-C1-1):LINE(140,1)-(239,43),0,BF:IFP$=""THEN50
  32. 32 FORC=1TOLEN(Q$):C$=MID$(Q$,C,1):IFC$=LEFT$(R$,1)ORC$=RIGHT$(R$,1)THEN36
  33. 33 NEXTC:IFD$<>""THENQ$=Q$+LEFT$(D$,2):D$=RIGHT$(D$,LEN(D$)-2):BEEP:PRINT@309,LEN(Q$)/2;:PRINT@315,LEN(D$)/2;
  34. 34 IFD$=""THENDQ=1:IFDP=1THEN50ELSE10
  35. 35 GOTO32
  36. 36 PRINT@146,"Pondering..";:FL=0:FR=0:U$=LEFT$(R$,1):IFC$=U$THENGOSUB73:FL=F
  37. 37 U$=RIGHT$(R$,1):IFC$=U$THENGOSUB73:FR=F
  38. 38 IF FR>FL OR FR=FL THEN F=FR ELSE F=FL
  39. 39 FORC=1TOLEN(Q$):C1=2*C-2*INT(C/2)-1:C$=MID$(Q$,C,1):IFC1=CTHENF$=MID$(Q$,C+1,1)ELSEF$=MID$(Q$,C1,1)
  40. 40 IFF=VAL(F$)ANDC$=LEFT$(R$,1)THEN43
  41. 41 IFF=VAL(F$)ANDC$=RIGHT$(R$,1)THEN45
  42. 42 NEXTC
  43. 43 SOUND10000,5
  44. 44 IFC$=LEFT$(R$,1)THENB$=C$:X=X(89-RL):Y=Y(89-RL):GOSUB63:B$=F$:X=X(88-RL):Y=Y(88-RL):GOSUB63:RL=RL+2:R$=F$+C$+R$:GOTO47
  45. 45 SOUND10000,5
  46. 46 IFC$=RIGHT$(R$,1)THENB$=C$:X=X(92+RR):Y=Y(92+RR):GOSUB63:B$=F$:X=X(93+RR):Y=Y(93+RR):GOSUB63:RR=RR+2:R$=R$+C$+F$
  47. 47 Q$=LEFT$(Q$,C1-1)+RIGHT$(Q$,LEN(Q$)-C1-1):PRINT@309,LEN(Q$)/2;:IFQ$=""THEN50
  48. 48 IFD$=""THENDQ=0
  49. 49 PRINT@146,SPACE$(12);:GOTO10
  50. 50 CLS:PRINT"ROUND "RD:IFP$=""THENPRINT"You  win!":GOSUB56
  51. 51 IFQ$=""THENPRINT"POCO wins":GOSUB57
  52. 52 IFDP=1ANDDQ=1THENPRINT"Stalemate":GOSUB56:GOSUB57
  53. 53 PRINTCHR$(27)"p""Your   TOTAL"SP:PRINT"POCO's TOTAL"SQ:PRINTCHR$(27)"q":PRINT@250,"Another round (Y/N)?
  54. 54 I$=INKEY$:IFI$="Y"ORI$="y"THENGOSUB62:GOSUB58:GOSUB59:GOTO7ELSEIFI$="n"ORI$="N"THENMENU
  55. 55 GOTO54
  56. 56 FORI=1TOLEN(Q$):SQ=SQ+VAL(MID$(Q$,I,1)):NEXTI:RETURN
  57. 57 FORJ=1TOLEN(P$):SP=SP+VAL(MID$(P$,J,1)):NEXTJ:RETURN
  58. 58 D$="111213141516171819222324252627282933343536373839444546474849555657585966676869777879888999":RETURN
  59. 59 FORI=1TO5*VAL(RIGHT$(TIME$,2))+10:J=2*INT(45*RND(1)+1)-1:K=2*INT(45*RND(1)+1)-1:A$=MID$(D$,J,2):B$=MID$(D$,K,2)
  60. 60 MID$(D$,J,2)=B$:MID$(D$,K,2)=A$:NEXTI:R=2*INT(35*RND(1)+1)+1:P$=MID$(D$,R,20):L$=LEFT$(D$,R-1):R$=RIGHT$(D$,71-R):D$=L$+R$
  61. 61 R=2*INT(25*RND(1)+1)+1:Q$=MID$(D$,R,20):L$=LEFT$(D$,R-1):R$=RIGHT$(D$,51-R):D$=L$+R$:RETURN
  62. 62 PRINT@240,"Shuffling the dominoes, please wait...";:RETURN
  63. 63 LINE(X,Y)-(X+6,Y+6),1,BF:IFB$="1"THENPRESET(X+3,Y+3)
  64. 64 IFB$="2"THENPRESET(X+1,Y+1):PRESET(X+5,Y+5)
  65. 65 IFB$="3"THENPRESET(X+1,Y+1):PRESET(X+3,Y+3):PRESET(X+5,Y+5)
  66. 66 IFB$="4"THENPRESET(X+1,Y+1):PRESET(X+5,Y+1):PRESET(X+1,Y+5):PRESET(X+5,Y+5)
  67. 67 IFB$="5"THENPRESET(X+1,Y+1):PRESET(X+5,Y+1):PRESET(X+1,Y+5):PRESET(X+5,Y+5):PRESET(X+3,Y+3)
  68. 68 IFB$="6"THENFORK=1TO5STEP2:PRESET(X+1,Y+K):PRESET(X+5,Y+K):NEXTK
  69. 69 IFB$="7"THENFORK=1TO5STEP2:PRESET(X+1,Y+K):PRESET(X+5,Y+K):NEXTK:PRESET(X+3,Y+3)
  70. 70 IFB$="8"THENFORK=1TO5STEP2:PRESET(X+1,Y+K):PRESET(X+5,Y+K):NEXTK:PRESET(X+3,Y+1):PRESET(X+3,Y+5)
  71. 71 IFB$="9"THENFORJ=1TO5STEP2:FORK=1TO5STEP2:PRESET(X+J,Y+K):NEXTK,J
  72. 72 RETURN
  73. 73 FORI=1TO9:N(I)=0:NEXTI:FORC=1TOLEN(Q$):A$=MID$(Q$,C,1):IFA$<>U$THEN77
  74. 74 C1=2*C-2*INT(C/2)-1:IFC1=CTHENF$=MID$(Q$,C+1,1)ELSEF$=MID$(Q$,C1,1)
  75. 75 F=VAL(F$):FORI=1TOLEN(Q$+R$):IFVAL(MID$(Q$+R$,I,1))=FTHENN(F)=N(F)+1
  76. 76 NEXTI
  77. 77 NEXTC:N=N(1):FORG=2TO9:IFN(G)>=NTHENN=N(G):F=G
  78. 78 NEXTG:RETURN
  79.