home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
gam
/
domino.ba
< prev
next >
Wrap
Text File
|
2006-10-19
|
5KB
|
79 lines
1 'DOMINO.BA Bob Delbourgo
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 PRINT@I," ";:PRINT@66+I," ";:NEXTI:PRINT@11,SPACE$(22);:PRINT@51,SPACE$(1);:PRINT@147,SPACE$(1);
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 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 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 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 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 PRINT@304,"Y/N?";:LINE(170,44)-(170,63):LINE(205,44)-(205,63):LINE(239,44)-(239,63)
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 NEXTI
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 IFI$=CHR$(31)THENC=C+12:IFC>LEN(P$)THENC=C-12
14 IFI$=CHR$(29)THENC=C-1:IFC<1THENC=1
15 IFI$=CHR$(30)THENC=C-12:IFC<1THENC=C+12
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 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 IFI$="N"ORI$="n"THEN24
19 IFI$="Y"ORI$="y"THEN21
20 GOTO12
21 IFD$=""THENDP=1:IFDQ=1THEN50ELSE32
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 D$=RIGHT$(D$,LEN(D$)-2):GOTO12
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 IFR$=""ANDC$<>F$THENBEEP:GOTO12
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 IFLEFT$(R$,1)<>C$ANDRIGHT$(R$,1)<>C$THENBEEP:GOTO12
28 DP=0
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 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 P$=LEFT$(P$,C1-1)+RIGHT$(P$,LEN(P$)-C1-1):LINE(140,1)-(239,43),0,BF:IFP$=""THEN50
32 FORC=1TOLEN(Q$):C$=MID$(Q$,C,1):IFC$=LEFT$(R$,1)ORC$=RIGHT$(R$,1)THEN36
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 IFD$=""THENDQ=1:IFDP=1THEN50ELSE10
35 GOTO32
36 PRINT@146,"Pondering..";:FL=0:FR=0:U$=LEFT$(R$,1):IFC$=U$THENGOSUB73:FL=F
37 U$=RIGHT$(R$,1):IFC$=U$THENGOSUB73:FR=F
38 IF FR>FL OR FR=FL THEN F=FR ELSE F=FL
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 IFF=VAL(F$)ANDC$=LEFT$(R$,1)THEN43
41 IFF=VAL(F$)ANDC$=RIGHT$(R$,1)THEN45
42 NEXTC
43 SOUND10000,5
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 SOUND10000,5
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 Q$=LEFT$(Q$,C1-1)+RIGHT$(Q$,LEN(Q$)-C1-1):PRINT@309,LEN(Q$)/2;:IFQ$=""THEN50
48 IFD$=""THENDQ=0
49 PRINT@146,SPACE$(12);:GOTO10
50 CLS:PRINT"ROUND "RD:IFP$=""THENPRINT"You win!":GOSUB56
51 IFQ$=""THENPRINT"POCO wins":GOSUB57
52 IFDP=1ANDDQ=1THENPRINT"Stalemate":GOSUB56:GOSUB57
53 PRINTCHR$(27)"p""Your TOTAL"SP:PRINT"POCO's TOTAL"SQ:PRINTCHR$(27)"q":PRINT@250,"Another round (Y/N)?
54 I$=INKEY$:IFI$="Y"ORI$="y"THENGOSUB62:GOSUB58:GOSUB59:GOTO7ELSEIFI$="n"ORI$="N"THENMENU
55 GOTO54
56 FORI=1TOLEN(Q$):SQ=SQ+VAL(MID$(Q$,I,1)):NEXTI:RETURN
57 FORJ=1TOLEN(P$):SP=SP+VAL(MID$(P$,J,1)):NEXTJ:RETURN
58 D$="111213141516171819222324252627282933343536373839444546474849555657585966676869777879888999":RETURN
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 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 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 PRINT@240,"Shuffling the dominoes, please wait...";:RETURN
63 LINE(X,Y)-(X+6,Y+6),1,BF:IFB$="1"THENPRESET(X+3,Y+3)
64 IFB$="2"THENPRESET(X+1,Y+1):PRESET(X+5,Y+5)
65 IFB$="3"THENPRESET(X+1,Y+1):PRESET(X+3,Y+3):PRESET(X+5,Y+5)
66 IFB$="4"THENPRESET(X+1,Y+1):PRESET(X+5,Y+1):PRESET(X+1,Y+5):PRESET(X+5,Y+5)
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 IFB$="6"THENFORK=1TO5STEP2:PRESET(X+1,Y+K):PRESET(X+5,Y+K):NEXTK
69 IFB$="7"THENFORK=1TO5STEP2:PRESET(X+1,Y+K):PRESET(X+5,Y+K):NEXTK:PRESET(X+3,Y+3)
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 IFB$="9"THENFORJ=1TO5STEP2:FORK=1TO5STEP2:PRESET(X+J,Y+K):NEXTK,J
72 RETURN
73 FORI=1TO9:N(I)=0:NEXTI:FORC=1TOLEN(Q$):A$=MID$(Q$,C,1):IFA$<>U$THEN77
74 C1=2*C-2*INT(C/2)-1:IFC1=CTHENF$=MID$(Q$,C+1,1)ELSEF$=MID$(Q$,C1,1)
75 F=VAL(F$):FORI=1TOLEN(Q$+R$):IFVAL(MID$(Q$+R$,I,1))=FTHENN(F)=N(F)+1
76 NEXTI
77 NEXTC:N=N(1):FORG=2TO9:IFN(G)>=NTHENN=N(G):F=G
78 NEXTG:RETURN