Skip to main content

....

تونس اليوم

عاجل

EN CONTINU

يهمكم

علوم و تكنولوجيا

أخبار كرة القدم

BACKGAMMON

10 '
20 ' COMPUTER BACKGAMMON
30 '
35 ' by Randy Hawkins
40 '    5342 Gateridge
45 '    Corpus Christi, TX 78413
50 '
60 COMMON RH: IF RH=0 THEN SYSTEM
70 CLEAR: ON ERROR GOTO 1630
80 KEY OFF:COLOR 14,0,0:WIDTH 80:CLS:COLOR 14:LOCATE 4:KEY(1) ON:ON KEY(1) GOSUB 1330:PRINT"C O M P U T E R   B A C K G A M M O N":RANDOMIZE TIMER
82 KEY (17) ON
84 KEY 17, CHR$(0)+CHR$(1)
86 ON KEY (17) GOSUB 1620
90 PRINT:PRINT"This public domain version of Backgammon was downloaded from":PRINT"a local computer bulletin board service.  The original author is":PRINT"unknown.  Extensive modifications were added by Randy Hawkins."
100 PRINT:PRINT"In this version of Backgammon, you will be playing against":PRINT"the computer.  To turn the sound effects off or on, press":PRINT"the F1 key.  When you are ready to bear off, press <ENTER>.":PRINT
110 INPUT"Whom will I be playing today";A$(1):A$(2)="Computer"
120 DEFINT A,D-J,L-M,S-U,X-Z:DIM A(25),B(25),C(25),F(2),T(2)
130 CLS:LOCATE 5,28:PRINT"Your pips look like this:"
140 LOCATE 7,40-LEN(A$(1)):PRINT A$(1);" - ";:COLOR 2:PRINT"ßßß":COLOR 14:LOCATE 9,32:PRINT A$(2);" - ";:COLOR 4:PRINT STRING$(3,8):COLOR 14:SS=1
150 LOCATE 11,28:PRINT "Press any key to continue";:IF SS THEN PLAY "c"
160 IF INKEY$="" THEN L=RND(1):GOTO 160
170 FOR X=0 TO 25:A(X)=0:NEXT X
180 A(24)=2:A(19)=-5:A(17)=-3:A(13)=5:A(12)=-5:A(8)=3:A(6)=5:A(1)=-2
190 GOSUB 240:W=0:IF INT(RND*2+1)=2 THEN W=1
200 LOCATE 25,1:PRINT SPC(79);
210 L=INT(RND*6+1):M=INT(RND*6+1):D=2:IF L=M THEN D=4 ELSE IF L<M THEN SWAP L,M
220 ON W+1 GOTO 430, 790
230 IF SS THEN PLAY "ae"
235 LOCATE 25,1:PRINT SPC(79):LOCATE 25,1:PRINT"INVALID MOVE";:TIMEOUT=6:GOSUB 1530:RETURN
240 COLOR 14,0,0:CLS:FOR X=20 TO 70 STEP 4:FOR Y=3 TO 19:LOCATE Y,X:PRINT"º";:NEXT Y,X
250 LOCATE 2,20:PRINT"ÉÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍËÍÍÍ»";
260 LOCATE 20,20:PRINT"ÈÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÊÍÍͼ";
270 LOCATE 11,20:PRINT"ÌÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÎÍÍ͹";
280 Y=88:FOR X=22 TO 66 STEP 4:LOCATE 1,X:PRINT CHR$(Y);:LOCATE 21,X:PRINT CHR$(153-Y);:Y=Y-1:NEXT X
290 LOCATE 11,5:PRINT"ON BAR";:LOCATE 10,6:COLOR 4:PRINT STRING$(3,8);:LOCATE 12,6:COLOR 2:PRINT"ßßß";:COLOR 14
300 LOCATE 9,6:PRINT A(0);:LOCATE 13,6:PRINT A(25);
310 FOR X=24 TO 13 STEP -1
320 IF A(X)=0 THEN 360 ELSE  U=1:IF A(X)<0 THEN U=2
330 FOR Z=1 TO ABS(A(X)):S=3+Z-1
340 Y=(24-X)*4+21:LOCATE S,Y:IF U=1 THEN COLOR 2:PRINT"ßßß"; ELSE COLOR 4:PRINT STRING$(3,8);
350 COLOR 14:NEXT Z
360 NEXT X
370 FOR X=1 TO 12:IF A(X)=0 THEN 420
380 U=1:IF A(X)<0 THEN U=2
390 FOR Z=1 TO ABS(A(X)):S=20-Z
400 Y=(X-1)*4+21:LOCATE S,Y:IF U=1 THEN COLOR 2:PRINT"ßßß"; ELSE COLOR 4:PRINT STRING$(3,8);
410 COLOR 14:NEXT Z
420 NEXT X:RETURN
430 LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1,1:COLOR 2:PRINT A$(1) ", your roll is ";L;
440 J=25:IF D>1 THEN PRINT M;
450 IF D=3 THEN PRINT M; ELSE IF D=4 THEN PRINT M;M;
460 COLOR 14:IF A(25)>0 AND A(25-L)<-1 AND A(25-M)<-1 THEN 770
470 IF A(J)<1 THEN J=J-1:GOTO 470
480 E=0:FOR X=L+1 TO 25:IF A(X)>0 AND A(X-L)>-2 THEN E=1
490 NEXT X:FOR X=M+1 TO 25:IF A(X)>0 AND A(X-M)>-2 THEN E=1
500 NEXT X:IF E=1 THEN 520 ELSE IF J>6 THEN 770
510 IF A(M)<1 AND A(L)<1 AND J>L THEN 770
520 IF A(25)=0 THEN 540 ELSE F=25:LOCATE 25,40:COLOR 14:IF SS THEN PLAY"d"
525 PRINT"From: Bar";TAB(60);"To: ";:IF (D=1 OR (D>1)*(L=M))*(J>6) THEN T=F-L:PRINT CHR$(64+T);:GOTO 610
530 IN$=INKEY$:IF IN$="" THEN 530 ELSE T=(ASC(IN$) AND 95)-64:IF T<1 OR T>24 THEN 530 ELSE IF A(T)<-1 THEN 530 ELSE PRINT CHR$(64+T);:GOTO 610
540 LOCATE 25,40: PRINT"From: ";: IF SS THEN PLAY "d"
550 IN$=INKEY$:IF IN$="" THEN 550 ELSE F=(ASC(IN$) AND 95)-64:IF F<1 OR F>24 THEN 640
560 PRINT CHR$(64+F);:IF A(F)<1 THEN 640
570 LOCATE 25,60:PRINT"How Many? ";:IF SS THEN PLAY "d"
575 IF (D=1 OR (D>1)*(L=M))*(J>6) THEN PRINT L;:T=F-L:GOTO 600
580 IN$=INKEY$:IF IN$=CHR$(13) THEN PRINT"Off";:T=99:GOTO 720 ELSE T=VAL(IN$):IF T=L OR (T=M)*(D=2) THEN T=F-T:PRINT IN$;:GOTO 600 ELSE  580
590 IN$=INKEY$:IF IN$="" THEN 590 ELSE T=(ASC(IN$) AND 95)-64
600 IF T<1 OR T>24 THEN 640
610 IF A(T)<-1 THEN 640
620 IF F-T=L THEN L=M:GOTO 650
630 IF F-T=M THEN M=L:GOTO 650
640 GOSUB 230:GOTO 430
650 A(F)=A(F)-1:IF A(T)=-1 THEN A(0)=A(0)+1:A(T)=0
660 A(T)=A(T)+1
670 GOSUB 1120:D=D-1:E=0:FOR X=1 TO 25
680 IF A(X)<1 THEN E=E+1
690 NEXT X:IF E=25 THEN 1260
700 IF D=0 THEN W=1:GOTO 200
710 GOTO 430
720 IF J>6 THEN 640
730 IF F=M OR M>J AND F=J THEN M=L:GOTO 760
740 IF F=L OR L>J AND F=J THEN L=M:GOTO 760
750 GOTO 640
760 A(F)=A(F)-1:GOTO 670
770 IF SS THEN PLAY "ae"
775 TIMEOUT=3:GOSUB 1530:LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT"You can't move!";:W=ABS(W-1):TIMEOUT=6:GOSUB 1530:LOCATE 25,1:PRINT SPC(79);:GOTO 200
780 W=1-W:TIMEOUT=3:GOSUB 1530:LOCATE 25,1:PRINT SPC(79);:GOTO 200
790 LOCATE 25,1,0:PRINT SPC(79);:LOCATE 25,1:COLOR 4:PRINT"The computer is considering its roll of";L;
800 IF D>1 THEN PRINT M;
810 IF D=3 THEN PRINT M; ELSE IF D=4 THEN PRINT M;M;
820 J=0:IF A(0)=0 THEN 840
830 IF A(L)<2 OR (A(M)<2 AND D>1) THEN 910 ELSE 900
840 IF A(0)=0 AND A(J)>=0 THEN J=J+1:GOTO 840
850 E=0:FOR X=1 TO 24-L:IF A(X)<0 AND A(X+L)<2 THEN E=1
860 NEXT X:IF D=1 THEN 890
870 FOR X=1 TO 24-M:IF A(X)<0 AND A(X+M)<2 THEN E=1
880 NEXT X
890 IF E=1 THEN 910 ELSE IF J>18 THEN 910
900 IF SS THEN PLAY "ae"
905 TIMEOUT=3:GOSUB 1530:LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT"Computer cannot move!";:GOTO 780
910 IF A(0)>0 THEN GOSUB 1340:GOSUB 1020:IF D=0 THEN W=0:GOTO 200 ELSE 820
920 IF J>18 THEN GOSUB 1360: GOSUB 1020:IF D=0 THEN W=0:GOTO 200 ELSE 820
930 X=0:FOR Y=J TO 24:X=X-(A(Y)>0):NEXT Y:IF X=0 THEN F=J:T=J+L:GOSUB 1020:IF D=0 THEN W=0:GOTO 200 ELSE 820
940 GOSUB 1400:F=F(1):T=T(1):GOSUB 1020:IF D=0 THEN W=0:GOTO 200 ELSE J=0
950 IF A(0)>0 AND A(J)>=0 THEN J=J+1:GOTO 840
960 IF J>18 THEN 920
970 E=0:FOR X=1 TO 24-L:IF A(X)<0 AND A(X+L)<2 THEN E=1
980 NEXT X:IF D=1 THEN 1010
990 FOR X=1 TO 24-M:IF A(X)<0 AND A(X+M)<2 THEN E=1
1000 NEXT X
1010 IF E=0 THEN 900 ELSE F=F(2):T=T(2):GOSUB 1020:IF D=0 THEN W=0:GOTO 200 ELSE 790
1020 GOSUB 1280:IF T=99 THEN 1090 ELSE IF T-F=L THEN L=M ELSE M=L
1030 IF F=0 THEN A(0)=A(0)-2
1040 A(F)=A(F)+1:IF A(T)=1 THEN A(25)=A(25)+1:A(T)=0
1050 A(T)=A(T)-1
1060 GOSUB 1120:D=D-1:E=0:FOR X=1 TO 25
1070 IF A(X)>-1 THEN E=E+1
1080 NEXT X:IF E=25 THEN 1270 ELSE RETURN
1090 IF F=25-M OR J>25-M AND F=J THEN M=L:GOTO 1110
1100 IF F=25-L OR J>25-L AND F=J THEN L=M:GOTO 1110
1110 A(F)=A(F)+1:GOTO 1060
1120 LOCATE 9,6:COLOR 4:PRINT A(0);:LOCATE 13,6:COLOR 2:PRINT A(25);:COLOR 14:IF F=0 OR F=25 THEN 1140
1130 H=F:GOSUB 1150:IF T=99 THEN RETURN
1140 H=T:GOSUB 1150:RETURN
1150 U=1:IF A(H)<0 THEN U=2
1160 P=A(H):IF P>8 THEN P=8
1170 IF H<=12 THEN 1200
1180 X=(24-H)*4+21:G=0:IF H=F THEN G=1
1190 Y=2+ABS(P)+G:GOTO 1220
1200 X=(H-1)*4+21:G=0:IF H=F THEN G=1
1210 Y=20-ABS(P)-G
1220 LOCATE Y,X:PRINT"   ";
1230 IF H<>T THEN RETURN
1240 LOCATE Y,X:IF U=1 THEN COLOR 2:PRINT"ßßß"; ELSE COLOR 4:PRINT STRING$(3,8);
1250 COLOR 14:RETURN
1260 IF SS THEN PLAY "c16c16c16ge8g"
1265 LOCATE 25,1:PRINT SPC(79);:COLOR 0,7:LOCATE 23,1:PRINT A$(1);" Wins!";:GOTO 1600
1270 IF SS THEN PLAY "c16c16c16ge8g"
1275 LOCATE 25,1:PRINT SPC(79);:COLOR 0,7:LOCATE 23,1:PRINT A$(2);" Wins!";:GOTO 1600
1280 COLOR 4:LOCATE 25,1:PRINT SPC(79);:LOCATE 25,1:PRINT A$(2);", your roll is";L;:IF D=2 THEN PRINT M; ELSE IF D=3 THEN PRINT M;M; ELSE IF D=4 THEN PRINT M;M;M;
1290 COLOR 14:LOCATE 25,40:PRINT"From: ";:IF F=0 THEN PRINT"Bar"; ELSE PRINT CHR$(64+F);
1300 IF SS THEN PLAY "f"
1305 PRINT SPC(20);:TIMEOUT=1:GOSUB 1530:LOCATE 25,60:PRINT"To: ";
1310 IF T=99 THEN PRINT"Off"; ELSE PRINT CHR$(64+T);
1320 IF SS THEN PLAY "f"
1325 TIMEOUT=3:GOSUB 1530:RETURN
1330 SS=1-SS:RETURN
1340 IF A(L)=1 THEN T=L ELSE IF A(M)=1 AND D>1 THEN T=M ELSE IF A(L)<0 THEN T=L ELSE IF A(M)<0 AND D>1 THEN T=M ELSE IF A(L)=0 THEN T=L ELSE IF A(M)=0 AND D>1 THEN T=M
1350 F=0:RETURN
1360 IF A(25-L)<0 THEN F=25-L:T=99:RETURN
1370 IF A(25-M)<0 AND D>1 THEN F=25-M:T=99:RETURN
1380 IF 25-L<J THEN F=J:T=99:RETURN
1390 F=J:T=J+L:RETURN
1400 BS=-99:FOR X=1 TO 1-(D>1):IF D>1 THEN SWAP L,M:IF X=2 AND L=M THEN 1520
1410 FOR Y=1 TO 24-L:IF A(Y)>-1 OR A(Y+L)>1 THEN 1510
1420 FOR Q=0 TO 25:B(Q)=A(Q):NEXT Q:B(Y)=B(Y)+1
1430 IF B(Y+L)=1 THEN B(Y+L)=-1:B(25)=B(25)+1 ELSE B(Y+L)=B(Y+L)-1
1440 Z=1:IF D=1 THEN 1460
1450 IF B(Z)<0 AND B(Z+M)<2 THEN 1470 ELSE Z=Z+1:IF Z+M<25 THEN 1450
1460 SC=B(25):FOR Q=1 TO 24:SC=SC+(B(Q)=-1):NEXT Q:IF SC>BS THEN F(1)=Y:T(1)=Y+L:BS=SC:GOTO 1510 ELSE 1510
1470 FOR Z=1 TO 24-M:IF B(Z)>-1 OR B(Z+M)>1 THEN 1500
1480 FOR Q=0 TO 25:C(Q)=B(Q):NEXT Q:C(Z)=C(Z)+1:IF C(Z+M)=1 THEN C(Z+M)=-1:C(25)=C(25)+1 ELSE C(Z+M)=C(Z+M)-1
1490 SC=C(25):FOR Q=1 TO 24:SC=SC+(C(Q)=-1):NEXT Q:IF SC>BS THEN F(1)=Y:T(1)=Y+L:F(2)=Z:T(2)=Z+M:BS=SC
1500 SOUND 20000,SS:NEXT Z
1510 SOUND 20000,SS:NEXT Y
1520 NEXT X:RETURN
1530 TIMEOUT$=TIME$:TIME2=VAL(LEFT$(TIMEOUT$,2))*120+VAL(MID$(TIMEOUT$,4,2))*60+VAL(RIGHT$(TIMEOUT$,2))
1540 TIMEOUT$=TIME$:TIME3=VAL(LEFT$(TIMEOUT$,2))*120+VAL(MID$(TIMEOUT$,4,2))*60+VAL(RIGHT$(TIMEOUT$,2))
1550 IF TIMEOUT > TIME3 - TIME2 THEN 1540 ELSE RETURN
1600 COLOR 14,0:LOCATE 23,1:PRINT"Play Another Game (Y/N)? ";
1610 I$=INPUT$(1):IF I$="Y" OR I$="y" THEN 70 ELSE IF I$<>"N" AND I$<>"n" THEN 1610
1620 CLS: LOCATE 12,28: PRINT "One moment please...": RUN "menu"
1630 RESUME NEXT

Comments

👍

Sous la pression de l'UE, Apple ouvre le paiement sans contact sur iPhone aux développeurs tiers

Voir la version en ligne | Suspendre la réception de la newsletter : L'Usine Digitale Afin de toujours recevoir notre newsletter, merci d'ajouter usinedigitale@b2b.infopro-digital.com à votre carnet d'adresses.       13 décembre 2023

Qui veut être mon associé : Comment Neo Justice a levé des fonds sans avoir de [...]

L'actualité des BeaBoss chaque jour Pensez à ajouter cette adresse à votre carnet d'adresse - Pour visualiser sur votre navigateur cliquez ici 1 Mars 2024

Le meilleur de la semaine

L'actu numérique de la semaine : OpenAI riposte à la plainte d'Elon Musk, arguant qu'il n'est pas de bonne foi, Anthropic dévoile Claude 3, une famille de modèles d'IA qui surpasse ceux de Google et OpenAI,