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