home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
club100
/
gam
/
nim.ba
< prev
next >
Wrap
Text File
|
2006-10-19
|
3KB
|
51 lines
0 'NIM.BA Unknown
1 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE
2 CLEAR200:DEFINTA-A:CLS:P(1)=140:P(2)=222:P(3)=304:N(1)=7:N(2)=5:N(3)=3:X(1)=0:X(2)=1:CM=2
3 IFCM=2THENK=VAL(RIGHT$(TIME$,2)):FORI=1TOK:L=RND(1):NEXTI
4 GOSUB46
5 IR=3:IC=4:GOSUB35:PRINT@Q,"Do you want";:IR=4:IC=4:GOSUB35:PRINT@Q,"to go first?";:IR=5:IC=8:GOSUB35:PRINT@Q,"";:PL=0
6 A$=INPUT$(1):IFA$="Y"ORA$="y"THENPL=1ELSEIFA$="N"ORA$="n"THENPL=2
7 IFCM=2ANDPL=0THENBEEP:GOTO5ELSEIFCM=1ANDPL=0THEN5
8 PRINTA$;:GOSUB45:GOSUB49:IR=4:IC=0:GOSUB35:PRINT@Q,STRING$(17," ");:IR=3:IC=1:GOSUB35:PRINT@Q,"Ok buddy,";:IR=5:IC=1
9 GOSUB35:PRINT@Q,"";:IFPL=1THENPRINT"you";ELSEPRINT"I'll";:EX=1
10 PRINT" go first...";:GOSUB45:GOSUB49:IFPL=1THEN28
11 IFEX=0THENIR=5:IC=0:GOSUB35:PRINT@Q,"Now it's my turn...";:GOSUB45:PL=2
12 PRINT@Q,STRING$(19," ");:EX=0:GOTO16
13 J1=(4ANDN(1)+(4ANDN(2)))/4:J2=(2ANDN(1)+(2ANDN(2))+(2ANDN(3)))/2:J3=(1ANDN(1)+(1ANDN(2))+(1ANDN(3)))
14 IFINT(J1/2)*2=J1ANDINT(J2/2)*2=J2ANDINT(J3/2)*2=J3THENST=0ELSEST=1
15 RETURN
16 GOSUB13:IFST=0THEN22ELSEM1=0:M2=0:X=0
17 FORI=1TO3:IFN(I)=0THEN21
18 FORJ=1TON(I):IFX=1THEN20
19 Z=N(I):Y=N(I)-J:N(I)=Y:GOSUB13:IFST=0THENM1=I:M2=J:X=1ELSEN(I)=Z
20 NEXTJ
21 NEXTI:IFX=1THEN26
22 I=INT(RND(X(CM))*10):IFI>0ANDI<4THENM1=IELSE22
23 IFN(M1)=0THEN22
24 I=INT(RND(X(CM))*10):IFI>0ANDI<N(M1)+1THENM2=IELSE24
25 N(M1)=N(M1)-M2
26 IR=2:IC=0:GOSUB35:PRINT@Q,"My move is:";:GOSUB45:IR=4:GOSUB35:PRINT@Q,"Row #"INT(M1);:GOSUB45:IR=5:GOSUB35
27 PRINT@Q,"Number ="INT(M2);:GOSUB45:CLS:GOSUB46:GOSUB39
28 GOSUB13:PL=1:IR=3:IC=0:GOSUB35:PRINT@Q,"Your move...";:IR=5:IC=0:GOSUB35:PRINT@Q,"Enter row (1-3):";
29 A$=INPUT$(1):X=VAL(A$):IFX<1ORX>3THEN29
30 IFN(X)<1THEN29ELSEN=X:PRINTA$;
31 IR=1+2*X:IC=34:GOSUB35:PRINT@Q,"<--";:IR=6:IC=0:GOSUB35:PRINT@Q,"How many? ";
32 A$=INPUT$(1):X=VAL(A$):IFX<1ORX>N(N)THEN32
33 PRINTA$;:GOSUB45:FORI=1TO6:IR=I:IC=0:GOSUB35:PRINT@Q,STRING$(17," ");:NEXTI:IR=5:IC=3:GOSUB35:PRINT@Q,"Ok...";
34 N(N)=INT(N(N)-X):GOSUB45:CLS:GOSUB46:GOSUB39:GOTO11
35 ONCMGOTO36,37
36 Q=IR*80+IC:GOTO38
37 Q=IR*40+IC
38 RETURN
39 IFN(1)<=0ANDN(2)<=0ANDN(3)<=0THENONPLGOTO40,41ELSERETURN
40 MS$=" I don't believe you beat me!":GOTO42
41 MS$="Tough luck buddy, better luck next time!
42 CLS:IR=3:IC=0:GOSUB35:PRINT@Q,"";:FORI=1TOLEN(MS$):PRINTMID$(MS$,I,1);:FORJ=1TO10:NEXTJ:NEXTI:GOSUB45:CLS:IR=3:IC=12
43 GOSUB35
44 PRINT@Q,"Want to try again? ";:A$=INPUT$(1):IFA$="Y"ORA$="y"THENRUNELSEIFA$="N"ORA$="n"THENMENUELSE44
45 FORI=1TO500:NEXTI:RETURN
46 FORI=1TO3:N=N(I):P=P(I):IR=P/40:IC=P-IR*40:GOSUB35:GOSUB47:NEXTI:RETURN
47 PRINT@Q,STRING$(14," ");:PRINT@Q,"";:IFN=0THENRETURNELSEFORJ=1TON:PRINTCHR$(147)" ";:NEXTJ
48 RETURN
49 IR=3:IC=0:GOSUB35:PRINT@Q,STRING$(20," ");:IR=5:GOSUB35:PRINT@Q,STRING$(20," ");:RETURN