| 10 REM ********* Coins *********
20 REM ****** Two players ****** 30 REM ************************* 40 REM **** by Eileen Shinn **** 70 REM 80 REM ***** initialise ***** 90 REM 94 MODE 1 95 BORDER 0:INK 0,0:PAPER 0 100 DIM coins(15),pencol(15),player$(2) 110 DIM coinstaken(5),row(5) 120 INK 1,20: INK 2,6: INK 3,8 130 PAPER 0: BORDER 1 140 RANDOMIZE TIME 150 REM 160 GOTO 1860: REM *** instructions 165 REM 170 REM **** enter players' names **** 180 REM 190 CLS 200 CALL &BB03 210 FOR i=1 TO 2 220 LOCATE 5,5:PEN 1:PRINT "Enter name of player ";i;" -":LOCATE 11,8:PRINT SPC(20):LOCATE 11,8:INPUT " ",player$(i) 230 initial$(i)=UPPER$(LEFT$(player$(i),1)) 240 NEXT i 250 SYMBOL 255,60,66,153,165,165,153,90,60 260 REM 270 player=INT(RND*2)+1 280 FOR i=1 TO 2 290 player$(i)=UPPER$(LEFT$(player$(i),1))+MID$(player$(i),2,20) 300 NEXT i 310 REM 320 REM ****** new game ****** 330 REM 340 FOR i=1 TO 15: pencol(i)=1: coins(i)=0: NEXT i 350 coinstaken=0:FOR i=1 TO 5:coinstaken(i)=0:NEXT i 360 REM 370 REM ***** draw grid ***** 380 REM 390 CLS:PEN 1 395 LOCATE 5,2:PRINT"C O I N S" 396 LOCATE 5,3:PRINT"-----" 400 RESTORE 410 FOR i=1 TO 15 420 READ col,row:LOCATE col,row:PRINT CHR$(255) 430 NEXT i 440 DATA 20,3,18,6,22,6,16,9,20,9 450 DATA 24,9,14,12,18,12,22,12,26,12 460 DATA 12,15,16,15,20,15,24,15,28,15 470 REM 480 REM ***** set up marker ***** 490 REM 500 col=20: row=3: coin=1 510 newcol=col:newrow=row 520 oldcol=col: oldrow=row 530 LOCATE newcol,newrow: PEN pencol(coin): PRINT"*" 540 REM 550 REM ***** next player ***** 555 REM 560 IF player=1 THEN player=2 ELSE player=1 570 LOCATE 5,23: PRINT SPC(30) 580 LOCATE 5,23: PEN 3: PRINT player$(player);" - to play" 590 REM 600 REM **** input routine **** 610 REM 630 IF INKEY(8)=0 THEN GOSUB 710 640 IF INKEY(1)=0 THEN GOSUB 820 650 IF INKEY(0)=0 THEN GOSUB 1090 660 IF INKEY(2)=0 THEN GOSUB 930 670 IF INKEY(9)=0 THEN GOSUB 1260 680 IF INKEY(18)=0 THEN GOTO 1340 690 GOTO 630 700 REM 710 REM **** Left arrow **** 720 REM 730 IF coin=1 OR coin=2 OR coin=4 OR coin=7 OR coin=11 GOTO 800 740 newcol=oldcol-4 750 LOCATE oldcol,oldrow: PEN pencol(coin): IF coins(coin)=0 THEN PRINT CHR$(255) ELSE PRINT " " 760 coin=coin-1 770 LOCATE newcol,oldrow: PEN pencol(coin):PRINT"*" 780 oldcol=newcol 790 GOSUB 1680 800 RETURN 810 REM 820 REM **** right arrow **** 830 REM 840 IF coin=1 OR coin=3 OR coin=6 OR coin=10 OR coin=15 GOTO 910 850 newcol=oldcol+4 860 LOCATE oldcol,oldrow: PEN pencol(coin): IF coins(coin)=0 THEN PRINT CHR$(255) ELSE PRINT " " 870 coin=coin+1 880 LOCATE newcol,oldrow: PEN pencol(coin):PRINT"*" 890 oldcol=newcol 900 GOSUB 1680 910 RETURN 920 REM 930 REM **** down arrow **** 940 REM 950 newrow=oldrow+3 960 IF newrow=18 THEN newrow=15: GOTO 1070 970 newcol=oldcol-2 980 LOCATE oldcol,oldrow: PEN pencol(coin): IF coins(coin)=0 THEN PRINT CHR$(255) ELSE PRINT " " 990 LOCATE newcol,newrow 1000 IF coin=1 THEN coin=2: GOTO 1040 1010 IF coin=2 OR coin=3 THEN coin=coin+2:GOTO 1040 1020 IF coin>3 AND coin<7 THEN coin=coin+3: GOTO 1040 1030 IF coin>6 AND coin<11 THEN coin=coin+4 1040 PEN pencol(coin):PRINT"*" 1050 oldcol=newcol: oldrow=newrow 1060 GOSUB 1680 1070 RETURN 1080 REM 1090 REM **** up arrow **** 1100 REM 1110 newrow=oldrow-3 1120 IF newrow=0 THEN newrow=3: GOTO 1240 1130 IF coin=3 OR coin=6 OR coin=10 OR coin=15 THEN newcol=oldcol-2: GOTO 1150 1140 newcol=oldcol+2 1150 LOCATE oldcol,oldrow: PEN pencol(coin): IF coins(coin)=0 THEN PRINT CHR$(255) ELSE PRINT " " 1160 IF coin=15 THEN coin=10: GOTO 1210 1170 IF (coin>10 AND coin<15) OR coin=10 THEN coin=coin-4: GOTO 1210 1180 IF (coin>6 AND coin<10) OR coin=6 THEN coin=coin-3: GOTO 1210 1190 IF coin>3 AND coin<6 THEN coin=coin-2: GOTO 1210 1200 IF coin=2 OR coin=3 THEN coin=1 1210 LOCATE newcol,newrow: PEN pencol(coin):PRINT"*" 1220 oldcol=newcol: oldrow=newrow 1230 GOSUB 1680 1240 RETURN 1250 REM 1260 REM **** select coin **** 1265 REM 1270 IF coins(coin)=1 GOTO 1310 1290 IF pencol(coin)=1 THEN pencol(coin)=2 ELSE pencol(coin)=1 1300 LOCATE oldcol,oldrow: PEN pencol(coin):PRINT"*" 1310 GOSUB 1660 1320 RETURN 1330 REM 1340 REM **** confirm selection **** 1350 REM 1360 firstime=0: row=0: row1=0 1370 FOR i=1 TO 15: IF pencol(i)=2 THEN GOSUB 1550 1380 IF row<>row1 THEN GOSUB 1710: GOTO 600 1390 NEXT i 1400 IF firstime=0 THEN GOSUB 1710: GOTO 600 1410 gridrow=row 1420 RESTORE 1430 FOR i=1 TO 15 1440 READ col,row 1450 IF pencol(i)=2 THEN coins(i)=1 ELSE 1510 1460 pencol(i)=1 1470 LOCATE col,row:PRINT " " 1480 coinstaken=coinstaken+1 1490 coinstaken(gridrow)=coinstaken(gridrow)+1 1500 IF coinstaken=14 GOTO 1750 1510 NEXT i 1520 LOCATE oldcol,oldrow:PEN pencol(coin):PRINT "*" 1530 GOTO 550 1540 REM 1550 REM **** check row **** 1560 REM 1570 IF i=1 THEN row=1: GOTO 1620 1580 IF i=2 OR i=3 THEN row=2: GOTO 1620 1590 IF i>3 AND i<7 THEN row=3: GOTO 1620 1600 IF i>6 AND i<11 THEN row=4: GOTO 1620 1610 IF i>10 AND i<16 THEN row=5 1620 IF firstime=0 THEN row1=row: firstime=1 1630 RETURN 1650 REM 1660 REM **** time delay **** 1670 REM 1680 FOR t=1 TO 200: NEXT t: RETURN 1700 REM 1710 REM **** error beep **** 1720 REM 1730 LOCATE 1,1: PRINT CHR$(7): RETURN 1740 REM 1750 REM ***** End of Game ***** 1760 REM 1770 garbage$=INKEY$ 1780 LOCATE 5,20:PRINT player$(player);" - is the winner!!" 1790 LOCATE 5,23: PEN 3: PRINT"Another Game (Y/N)?" 1800 WHILE INKEY$="":WEND 1810 IF INKEY(43)=0 GOTO 320 1820 IF INKEY(46)=0 GOTO 1830 ELSE 1790 1830 CLS: CALL &BC02: PEN 1: END 1850 REM 1860 REM ***** Instructions ***** 1870 REM 1880 CLS: INK 1,26 1890 LOCATE 15,10:PRINT"C O I N S" 1900 LOCATE 5,20:PRINT"Are instructions required (Y/N) ": 1910 k$=UPPER$(INKEY$) 1920 IF k$<>"N" AND k$<>"Y" GOTO 1910 1930 IF k$="N" THEN CLS: GOTO 170 1940 IF k$="Y" THEN CLS: 1950 PEN 3:LOCATE 2,2:PRINT"To complete your turn you can take any number of coins at a time, but from onlyone line at a time.": 1960 LOCATE 2,6:PRINT"Move the asterisk with the CURSOR KEYS and press COPY to claim the coin(s) of your choice.": 1970 LOCATE 2,10: PRINT"Once you are sure your selection is okay, press the ENTER key to confirm.": 1980 LOCATE 2,13:PRINT"The object is NOT to be left with the last coin.": 1990 PEN 1:LOCATE 14,18: PRINT"For two players.": 2000 PEN 1:LOCATE 11,23: PRINT"Press any key to start": 2010 WHILE INKEY$="": WEND 2020 GOTO 170 |