X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;ds=sidebyside;f=sw%2Fsrc%2Fbasic%2FNIMBLE.BA;fp=sw%2Fsrc%2Fbasic%2FNIMBLE.BA;h=1c28789341579555dd23fb59ed1ac3d1ba37cc31;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/basic/NIMBLE.BA b/sw/src/basic/NIMBLE.BA new file mode 100644 index 0000000..1c28789 --- /dev/null +++ b/sw/src/basic/NIMBLE.BA @@ -0,0 +1,190 @@ +10 REM GAME OF NIMBLE +80 PRINT "NEED INSTRUCTIONS "; +90 GOSUB 1900 +100 IF A$="N" GOTO 290 +110 PRINT +120 PRINT "IN THIS GAME OF NIMBLE TWO PLAYERS ARE CONFRONTED WITH P" +130 PRINT "(263 GOTO 480 +510 IF I9<1 GOTO 480 +520 I9=I9+1 +530 N=INT(RND(1)*(J9-2))+3 +540 FOR J=1 TO N +550 N(J)=INT(RND(1)*(2*V(I9)-1))+1 +560 GOSUB 1700 +570 NEXT J +580 GOTO 730 +590 PRINT "HOW MANY PILES "; +600 PRINT "(3-";J9;")"; +610 INPUT N +620 IF N<3 GOTO 600 +630 IF N>9 GOTO 600 +640 PRINT "HOW MANY IN PILE NO."; +650 FOR J=1 TO N +660 PRINT J; +670 INPUT N(J) +680 IF N(J)<2*V(I9) GOTO 710 +690 PRINT "SELECT NUMBERS LESS THAN ";2*V(I9) +700 GOTO 660 +710 GOSUB 1700 +720 NEXT J +730 S=1 +740 PRINT "I AM ABOUT TO TOSS A COIN-CALL H OR T "; +750 T1=INT(2*RND(1)) +760 INPUT A$ +770 IF A$="H" GOTO 810 +780 IF A$="T" GOTO 810 +790 PRINT "DON'T BE A WISE GUY-CALL H OR T "; +800 GOTO 760 +810 IF T1=0 GOTO 840 +820 C$="H" +830 GOTO 850 +840 C$="T" +850 PRINT "THE TOSS WAS ";C$ +860 GOSUB 1780 +870 IF C$=A$ GOTO 900 +880 PRINT "MY CHOICE - PONDER PONDER PONDER - "; +890 GOSUB 940 +900 PRINT "YOUR CHOICE-DO YOU WANT TO GO FIRST "; +910 GOSUB 1900 +920 IF A$="Y" GOTO 970 +930 GOTO 990 +940 FOR I=1 TO I9 +950 IF P(I)=1 GOTO 990 +960 NEXT I +970 PRINT "YOU GO FIRST - "; +980 GOTO 1010 +990 PRINT "I GO FIRST - "; +1000 S=(S-1)**2 +1010 IF S=1 GOTO 1400 +1020 FOR I= I9 TO 1 STEP -1 +1030 IF P(I)=1 GOTO 1100 +1040 NEXT I +1050 J=INT(N*RND(1))+1 +1060 IF N(J)=0 GOTO 1050 +1070 T=INT(N(J)*RND(1))+1 +1080 PRINT "MY MOVE IS ";J;", ";T +1090 GOTO 1560 +1100 T=V(I) +1110 FOR J = 1 TO N +1120 IF G(I,J)=1 GOTO 1140 +1130 NEXT J +1140 G(I,J)=0 +1150 P(I)=0 +1160 FOR K=1 TO I +1170 IF P(K)=0 GOTO 1210 +1180 T=T+(2*G(K,J)-1)*V(K) +1190 G(K,J)=(G(K,J)-1)**2 +1200 P(K)=0 +1210 NEXT K +1220 PRINT "MY MOVE IS ";J;", ";T +1230 REM WAS PRINT FORMAT +1240 N(J)=N(J)-T +1250 FOR J=1 TO N +1260 IF N(J)<>0 GOTO 1370 +1270 NEXT J +1280 IF S=1 GOTO 1310 +1290 PRINT "I WIN !!! "; +1300 GOTO 1320 +1310 PRINT "YOU WIN !!! "; +1320 W(S+1)=W(S+1)+1 +1330 PRINT "PLAY AGAIN "; +1340 GOSUB 1900 +1350 IF A$="N" GOTO 1970 +1360 GOTO 410 +1370 IF S=1 GOTO 1000 +1380 GOSUB 1800 +1390 GOTO 1000 +1400 PRINT "YOUR MOVE "; +1410 INPUT J,T +1420 IF J>=1 GOTO 1460 +1430 PRINT "PICK A PLIE FROM 1 TO ";N; +1440 INPUT J +1450 GOTO 1420 +1460 IF J>N GOTO 1430 +1470 IF N(J)>0 GOTO 1510 +1480 PRINT "THAT PILE IS EMPTY" +1490 GOSUB 1800 +1500 GOTO 1400 +1510 IF T>=1 GOTO 1550 +1520 PRINT "PICK A QUANTITY FROM 1 TO ";N(J); +1530 INPUT T +1540 GOTO 1510 +1550 IF T>N(J) GOTO 1520 +1560 N(J)=N(J)-T +1570 T=N(J) +1580 FOR I=I9 TO 1 STEP -1 +1590 IF V(I)>T GOTO 1650 +1600 T=T-V(I) +1610 IF G(I,J)=1 GOTO 1680 +1620 G(I,J)=1 +1630 P(I)=(P(I)-1)**2 +1640 GOTO 1680 +1650 IF G(I,J)=0 GOTO 1680 +1660 G(I,J)=0 +1670 P(I)=(P(I)-1)**2 +1680 NEXT I +1690 GOTO 1250 +1700 T=N(J) +1710 FOR I=I9 TO 1 STEP -1 +1720 IF V(I)>T GOTO 1760 +1730 G(I,J)=1 +1740 T=T-V(I) +1750 P(I)=(P(I)-1)**2 +1760 NEXT I +1770 RETURN +1780 PRINT "THERE ARE ";N;" PILES" +1800 PRINT +1810 FOR X=1 TO N +1820 PRINT X; +1830 NEXT X +1840 PRINT +1850 FOR X=1 TO N +1860 PRINT N(X); +1870 NEXT X +1880 PRINT +1890 RETURN +1900 INPUT A$ +1910 IF A$<>"N" GOTO 1930 +1920 RETURN +1930 IF A$<>"Y" GOTO 1950 +1940 RETURN +1950 PRINT "ANSWER ONLY Y OR N"; +1960 GOTO 1900 +1970 PRINT " FINAL SCORE - ME ";W(1),"YOU ";W(2) +1990 END