home *** CD-ROM | disk | FTP | other *** search
- 10 '6/12/83
- 20 WIDTH 80:SCREEN 0,0,0:COLOR 3,0:KEY OFF:DEF SEG:DEFINT A-D:DEFSTR Z
- 30 YSCR=0:MYSCR=0:XLIN=1:XPOS=1:ON KEY(10) GOSUB 3310:ON ERROR GOTO 3910
- 40 GOSUB 3040:GOSUB 3460:GOSUB 2140
- 50 XLIN=1:XPOS=1:GOSUB 3360:FSTTME=1:NOSPR=1:PLAYED=1
- 60 XXFLG=0:PL1=1:GOSUB 2700:GOSUB 590:IF XXFLG THEN PL1=0:GOTO 90 ELSE GOSUB 160:GOSUB 280
- 70 IF INVD THEN GOSUB 2070:GOTO 60 ELSE NOPLAY=0
- 80 GOSUB 1260:GOSUB 1570:YSCR=YSCR+HOLDY:PL1=0:IF PLNO=0 THEN 3620
- 90 GOSUB 3830:FOR A=3 TO 6:LOCATE A,1:PRINT SPC(25):NEXT:LOCATE 3,1:PRINT "One Moment Please":PRINT "I am Thinking
- 100 GOSUB 770:IF INVD THEN GOSUB 1340:IF EMPT THEN GOSUB 3560:GOTO 60
- 110 IF INVD THEN CONO=CONO+1:MY$(CONO)=NEXTBN$:GOTO 100 ELSE NOPLAY=0
- 120 GOSUB 1300:GOSUB 1570:MYSCR=MYSCR+HOLDY:IF CONO=0 THEN 3620
- 130 COLOR 4,0:LOCATE 1,66:PRINT "Dominoes Played":COLOR 3,0
- 140 FOR A=1 TO 5:LOCATE A,1:PRINT SPC(25):NEXT
- 150 LOCATE 4,1:FOR A=1 TO CONO:PRINT "▄▄":NEXT:GOSUB 3830:GOTO 60
- 160 DLN=15:DOM=40:DD=2:IF FSTTME THEN RETURN
- 170 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 170
- 180 LOCATE DLN,DOM,0:SAVE1=SCREEN(DLN,DOM):COLOR 31:PRINT CHR$(1);:COLOR 6
- 190 Z=INKEY$:IF Z="" THEN 190
- 200 IF LEN(Z)>1 THEN Z1=RIGHT$(Z,1) ELSE Z1=""
- 210 IF Z="8" OR Z1="H" THEN DLN=5 :DOM=40:DD=0
- 220 IF Z="6" OR Z1="M" THEN DLN=10:DOM=55:DD=1
- 230 IF Z="2" OR Z1="P" THEN DLN=15:DOM=40:DD=2
- 240 IF Z="4" OR Z1="K" THEN DLN=10:DOM=25:DD=3
- 250 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);
- 260 IF Z<>CHR$(13) THEN 180
- 270 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);:RETURN
- 280 INVD=0:OS=0:IS=0
- 290 IF FSTTME THEN 580
- 300 IF TBL$(DD)=" " THEN 380
- 310 ZL=LEFT$(TBL$(DD),1):ZLP=LEFT$(YOU$(PLA),1):ZRP=RIGHT$(YOU$(PLA),1)
- 320 IF ZL=ZLP THEN IS=1:GOTO 350
- 330 IF ZL=ZRP THEN OS=1:GOTO 350
- 340 INVD=1:RETURN
- 350 INVD=0
- 360 IF OS THEN TBL$(DD)=ZLP+ZRP:GOTO 490
- 370 IF IS THEN TBL$(DD)=ZRP+ZLP:GOTO 490
- 380 ZL=LEFT$(TBL$(4),1):ZR=RIGHT$(TBL$(4),1)
- 390 ZLP=LEFT$(YOU$(PLA),1):ZRP=RIGHT$(YOU$(PLA),1)
- 400 IF ZL=ZR THEN 460
- 410 IF DD=0 THEN IF ZL=ZLP THEN IS=1:GOTO 510
- 420 IF DD=0 THEN IF ZL=ZRP THEN OS=1:GOTO 510
- 430 IF DD=2 THEN IF ZR=ZLP THEN IS=1:GOTO 510
- 440 IF DD=2 THEN IF ZR=ZRP THEN OS=1:GOTO 510
- 450 GOTO 340
- 460 IF ZL=ZLP THEN IS=1:GOTO 510
- 470 IF ZL=ZRP THEN OS=1:GOTO 510
- 480 GOTO 340
- 490 CUR$=TBL$(DD)
- 500 GOSUB 2350:PLNO=PLNO-1:RETURN
- 510 IF LEFT$(TBL$(4),1)<>RIGHT$(TBL$(4),1) THEN 560
- 520 IF TBL$(1)=" " AND TBL$(2)=" " AND DD=1 THEN DD=2:GOTO 560
- 530 IF TBL$(3)=" " AND TBL$(2)=" " AND DD=3 THEN DD=2:GOTO 560
- 540 IF TBL$(1)=" " AND TBL$(0)=" " AND DD=1 THEN DD=0:GOTO 560
- 550 IF TBL$(3)=" " AND TBL$(0)=" " AND DD=3 THEN DD=0
- 560 IF OS THEN TBL$(DD)=YOU$(PLA):GOTO 490
- 570 IF IS THEN TBL$(DD)=ZRP+ZLP:GOTO 490
- 580 TBL$(4)=YOU$(PLA):CUR$=TBL$(4):GOTO 500
- 590 GOSUB 1780:IF XXFLG THEN RETURN
- 600 PLA=FIX(PLNO/2+.5):DLN=19
- 610 IF PLNO AND 1 THEN DOM=40 ELSE DOM=35
- 620 IF PLNO>8 THEN DOM=35:PLA=4
- 630 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 630
- 640 LOCATE DLN,DOM,0:SAVE1=SCREEN(DLN,DOM):COLOR 26:PRINT CHR$(1);:COLOR 14
- 650 Z=INKEY$:IF Z="" THEN 650
- 660 IF LEN(Z)>1 THEN Z1=RIGHT$(Z,1) ELSE Z1=""
- 670 IF Z="4" OR Z1="K" THEN DOM=DOM-10:PLA=PLA-1:GOTO 710
- 680 IF Z="6" OR Z1="M" THEN DOM=DOM+10:PLA=PLA+1:GOTO 710
- 690 IF Z<>CHR$(13) THEN 650
- 700 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);:RETURN
- 710 IF PLA=0 THEN PLA=1:DOM=DOM+10:GOTO 760
- 720 IF PLA>PLNO THEN PLA=PLNO:DOM=DOM-10:GOTO 760
- 730 IF ONEROW GOTO 760
- 740 IF DOM>80 THEN DOM=DOM-80:DLN=DLN+3:GOTO 760
- 750 IF DOM<0 THEN DOM=DOM+80:DLN=DLN-3:GOTO 760
- 760 LOCATE CSRLIN,POS(0)-1:PRINT CHR$(SAVE1);:GOTO 640
- 770 IS=0:OS=0:INVD=0:PLFG=0:HOLD=0:HH1=0:HH2=0
- 780 FOR DD=3 TO 0 STEP-1
- 790 FOR PLA=1 TO CONO
- 800 ZLM=LEFT$(TBL$(4),1):ZRM=RIGHT$(TBL$(4),1)
- 810 ZL=LEFT$(TBL$(DD),1):ZLP=LEFT$(MY$(PLA),1):ZRP=RIGHT$(MY$(PLA),1)
- 820 IF TBL$(DD)=" " THEN 850
- 830 IF ZL=ZRP THEN OS=1:GOSUB 1170:GOTO 980
- 840 IF ZL=ZLP THEN IS=1:GOSUB 1170:GOTO 980 ELSE 980
- 850 IF ZLM<>ZRM THEN 940
- 860 IF ZLM=ZRP AND DD=0 THEN OS=1:GOSUB 1170:GOTO 980
- 870 IF ZLM=ZLP AND DD=0 THEN IS=1:GOSUB 1170:GOTO 980
- 880 IF ZLM=ZRP AND DD=2 THEN OS=1:GOSUB 1170:GOTO 980
- 890 IF ZLM=ZLP AND DD=2 THEN IS=1:GOSUB 1170:GOTO 980
- 900 IF ZLM=ZLP AND DD=1 THEN IS=1:GOSUB 1170:GOTO 980
- 910 IF ZLM=ZRP AND DD=1 THEN OS=1:GOSUB 1170:GOTO 980
- 920 IF ZLM=ZLP AND DD=3 THEN IS=1:GOSUB 1170:GOTO 980
- 930 IF ZLM=ZRP AND DD=3 THEN OS=1:GOSUB 1170:GOTO 980 ELSE 980
- 940 IF ZLM=ZLP AND DD=0 THEN IS=1:GOSUB 1170:GOTO 980
- 950 IF ZLM=ZRP AND DD=0 THEN OS=1:GOSUB 1170:GOTO 980
- 960 IF ZRM=ZLP AND DD=2 THEN IS=1:GOSUB 1170:GOTO 980
- 970 IF ZRM=ZRP AND DD=2 THEN OS=1:GOSUB 1170:GOTO 980
- 980 NEXT PLA
- 990 NEXT DD
- 1000 IF LEFT$(TBL$(4),1)<>RIGHT$(TBL$(4),1) THEN 1030
- 1010 IF TBL$(1)=" " AND TBL$(2)=" " AND HH1 THEN HH2=2:GOTO 1030
- 1020 IF TBL$(1)=" " AND TBL$(2)=" " AND PLFG THEN DRH=2:GOTO 1030
- 1030 IF HH1 THEN PLA=HH1:DRH=HH2:GOTO 1060
- 1040 IF PLFG THEN PLA=PLFG:GOTO 1060
- 1050 INVD=1:RETURN
- 1060 ZLP1=LEFT$(MY$(PLA),1):ZRP1=RIGHT$(MY$(PLA),1)
- 1070 IF TBL$(DRH)<>" " THEN 1110
- 1080 ZL1=LEFT$(TBL$(4),1):ZR1=RIGHT$(TBL$(4),1)
- 1090 IF ZL1=ZR1 THEN 1120
- 1100 IF DRH=2 THEN SWAP ZL1,ZR1:GOTO 1120 ELSE 1120
- 1110 ZL1=LEFT$(TBL$(DRH),1):ZR1=RIGHT$(TBL$(DRH),1)
- 1120 IF ZL1=ZLP1 THEN IS=1:OS=0:GOTO 1140
- 1130 IF ZL1=ZRP1 THEN OS=1:IS=0:GOTO 1140
- 1140 IF IS THEN TBL$(DRH)=ZRP1+ZLP1:CUR$=TBL$(DRH):GOTO 1160
- 1150 IF OS THEN TBL$(DRH)=ZLP1+ZRP1:CUR$=TBL$(DRH):GOTO 1160
- 1160 GOSUB 2350:LOCATE 1,1:CONO=CONO-1:RETURN
- 1170 PLFG=PLA:DRH=DD
- 1180 FOR A=0 TO 4:SAV$(A)=TBL$(A):NEXT
- 1190 ZLP2=LEFT$(MY$(PLA),1):ZRP2=RIGHT$(MY$(PLA),1)
- 1200 IF IS THEN TBL$(DD)=ZRP2+ZLP2
- 1210 IF OS THEN TBL$(DD)=ZLP2+ZRP2
- 1220 GOSUB 1570
- 1230 IF HOLDY AND HOLD<=HOLDY THEN HOLD=HOLDY ELSE 1250
- 1240 HH1=PLA:HH2=DD
- 1250 FOR A=0 TO 4:TBL$(A)=SAV$(A):NEXT:RETURN
- 1260 FOR A=1 TO PLNO
- 1270 IF A<PLA THEN 1290
- 1280 YOU$(A)=YOU$(A+1)
- 1290 NEXT:RETURN
- 1300 FOR A=1 TO CONO
- 1310 IF A<PLA THEN 1330
- 1320 MY$(A)=MY$(A+1)
- 1330 NEXT:RETURN
- 1340 IF BNPTR=29 THEN EMPT=1:RETURN
- 1350 NEXTBN$=BONE$(BNPTR):BNPTR=BNPTR+1:RETURN
- 1360 IF NOSPR THEN 1370 ELSE RETURN
- 1370 IF LEFT$(TBL$(4),1)=RIGHT$(TBL$(4),1) THEN 1560
- 1380 FOR A=0 TO 3
- 1390 ZL=LEFT$(TBL$(A),1):ZR=RIGHT$(TBL$(A),1)
- 1400 IF TBL$(A)=" " THEN 1420
- 1410 IF ZL=ZR THEN 1430
- 1420 NEXT:RETURN
- 1430 IF A<>0 THEN 1470
- 1440 IF TBL$(2)<>" " THEN TBL$(4)=TBL$(0):TBL$(0)=" ":GOTO 1570
- 1450 SWAP TBL$(2),TBL$(4):SWAP TBL$(0),TBL$(4)
- 1460 TBL$(2)=RIGHT$(TBL$(2),1)+LEFT$(TBL$(2),1):GOTO 1570
- 1470 IF A<>1 THEN 1500
- 1480 IF TBL$(3)<>" " THEN TBL$(4)=TBL$(1):TBL$(1)=" ":GOTO 1570
- 1490 SWAP TBL$(3),TBL$(4):SWAP TBL$(1),TBL$(4):GOTO 1570
- 1500 IF A<>2 THEN 1530
- 1510 IF TBL$(0)<>" " THEN TBL$(4)=TBL$(2):TBL$(2)=" ":GOTO 1570
- 1520 SWAP TBL$(0),TBL$(4):SWAP TBL$(2),TBL$(4):GOTO 1570
- 1530 IF A<>3 THEN RETURN
- 1540 IF TBL$(1)=" " THEN SWAP TBL$(1),TBL$(4):SWAP TBL$(3),TBL$(4):GOTO 1570
- 1550 TBL$(4)=TBL$(3):TBL$(3)=" "
- 1560 NOSPR=0:RETURN
- 1570 HOLDY=0:FLAG1=0:PTOT=0
- 1580 PLM=VAL(LEFT$(TBL$(4),1)):PRM=VAL(RIGHT$(TBL$(4),1))
- 1590 IF FSTTME THEN 1760
- 1600 FOR A=0 TO 3
- 1610 PL=VAL(LEFT$(TBL$(A),1)):PR=VAL(RIGHT$(TBL$(A),1))
- 1620 IF TBL$(A)=" " THEN 1650
- 1630 PTOT=PTOT+PL:IF PL=PR THEN PTOT=PTOT+PR
- 1640 GOTO 1730
- 1650 IF PLM<>PRM THEN 1710
- 1660 IF FLAG1 THEN 1730
- 1670 IF A=0 OR A=2 THEN PTOT=PTOT+PRM+PLM:GOTO 1700
- 1680 IF TBL$(1)=" " THEN PTOT=PTOT+PLM
- 1690 IF TBL$(3)=" " THEN PTOT=PTOT+PLM
- 1700 FLAG1=1:GOTO 1730
- 1710 IF A=0 THEN PTOT=PTOT+PLM:GOTO 1730
- 1720 IF A=2 THEN PTOT=PTOT+PRM:GOTO 1730
- 1730 NEXT A
- 1740 IF PTOT/5=PTOT\5 THEN 1750 ELSE RETURN
- 1750 HOLDY=PTOT:RETURN
- 1760 A=PLM+PRM:IF A/5=A\5 THEN HOLDY=A ELSE HOLDY=0
- 1770 FSTTME=0:RETURN
- 1780 IF FSTTME THEN RETURN
- 1790 C=0
- 1800 FOR A=0 TO 3
- 1810 IF TBL$(A)=" " THEN 1870 ELSE C=C+1
- 1820 ZL=LEFT$(TBL$(A),1)
- 1830 FOR B=1 TO PLNO
- 1840 ZLP=LEFT$(YOU$(B),1):ZRP=RIGHT$(YOU$(B),1)
- 1850 IF ZL=ZLP OR ZL=ZRP THEN 2060
- 1860 NEXT B
- 1870 NEXT A
- 1880 IF C<4 THEN 1920
- 1890 GOSUB 1340:IF EMPT THEN XXFLG=1:GOSUB 3560:RETURN
- 1900 PLNO=PLNO+1:YOU$(PLNO)=NEXTBN$
- 1910 GOSUB 2700:GOTO 1790
- 1920 ZL=LEFT$(TBL$(4),1):ZR=RIGHT$(TBL$(4),1)
- 1930 IF ZL=ZR THEN 1990
- 1940 FOR A=1 TO PLNO
- 1950 ZLP=LEFT$(YOU$(A),1):ZRP=RIGHT$(YOU$(A),1)
- 1960 IF TBL$(0)=" " AND (ZL=ZLP OR ZL=ZRP) THEN 2060
- 1970 IF TBL$(2)=" " AND (ZR=ZLP OR ZR=ZRP) THEN 2060
- 1980 NEXT A:GOTO 1890
- 1990 FOR B=0 TO 3
- 2000 IF TBL$(B)<>" " THEN 2050
- 2010 FOR A=1 TO PLNO
- 2020 ZLP=LEFT$(YOU$(A),1):ZRP=RIGHT$(YOU$(A),1)
- 2030 IF ZL=ZLP OR ZL=ZRP THEN 2060
- 2040 NEXT A
- 2050 NEXT B:GOTO 1890
- 2060 RETURN
- 2070 LOCATE 25,1:PRINT SPC(79);:COLOR 31,0:LOCATE 25,25
- 2080 PRINT "Invalid Move. Please Try Again.";:COLOR 3,0:INVD=0:GOTO 2090
- 2090 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 2090
- 2100 FOR XX=1 TO 1000
- 2110 Z=INKEY$:IF Z<>"" THEN 2130
- 2120 NEXT
- 2130 LOCATE 25,1:PRINT SPC(79);:RETURN
- 2140 FOR A=0 TO 6:READ DT$(A):NEXT
- 2150 DATA " "," ∙ ",". ∙",".∙.",": :",":∙:",":::"
- 2160 RANDOMIZE(VAL(RIGHT$(TIME$,2)))
- 2170 DIM PLD$(28),BONE$(28),MY$(25),YOU$(25):C=0:B=-1
- 2180 FOR A=1 TO 28
- 2190 B=B+1
- 2200 BONE$(A)=RIGHT$(STR$(B),1)+RIGHT$(STR$(C),1)
- 2210 IF B=6 THEN B=C:C=C+1
- 2220 NEXT
- 2230 FOR A=1 TO 28
- 2240 B=FIX(RND*28)+1:C=FIX(RND*28)+1:IF B=C THEN 2240
- 2250 SWAP BONE$(B),BONE$(C)
- 2260 NEXT
- 2270 FOR A=0 TO 4:TBL$(A)=" ":NEXT
- 2280 B=0
- 2290 FOR A=1 TO 13 STEP 2
- 2300 B=B+1
- 2310 YOU$(B)=BONE$(A)
- 2320 MY$(B)=BONE$(A+1)
- 2330 NEXT:PLNO=7:CONO=7:BNPTR=15
- 2340 RETURN
- 2350 CLS:GOSUB 1360:GOSUB 3360:CUR$=LEFT$(CUR$,1)+":"+RIGHT$(CUR$,1)
- 2360 PLD$(PLAYED)=CUR$
- 2370 PLAYED=PLAYED+1
- 2380 FOR SLOC=0 TO 3
- 2390 IF TBL$(SLOC)=" " THEN 2420
- 2400 ZL=LEFT$(TBL$(SLOC),1):ZR=RIGHT$(TBL$(SLOC),1)
- 2410 IF ZL<>ZR THEN GOSUB 2520 ELSE GOSUB 2460
- 2420 NEXT
- 2430 ZL=LEFT$(TBL$(4),1):ZR=RIGHT$(TBL$(4),1)
- 2440 IF ZL=ZR THEN GOSUB 2510 ELSE GOSUB 2570
- 2450 RETURN
- 2460 ON SLOC+1 GOSUB 2470,2490,2500,2480,2510:RETURN
- 2470 SLN=6:HS=36:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2650:RETURN
- 2480 SLN=8:HS=28:TOP=VAL(ZL):BOT=VAL(ZR):GOSUB 2580:RETURN
- 2490 SLN=8:HS=50:TOP=VAL(ZL):BOT=VAL(ZR):GOSUB 2580:RETURN
- 2500 SLN=12:HS=36:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2650:RETURN
- 2510 SLN=9:HS=36:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2650:RETURN
- 2520 ON SLOC+1 GOSUB 2530,2550,2560,2540,2570:RETURN
- 2530 SLN=3:HS=38:TOP=VAL(ZR):BOT=VAL(ZL):GOSUB 2580:RETURN
- 2540 SLN=9:HS=26:LFT=VAL(ZR):RHT=VAL(ZL):GOSUB 2650:RETURN
- 2550 SLN=9:HS=46:LFT=VAL(ZL):RHT=VAL(ZR):GOSUB 2650:RETURN
- 2560 SLN=13:HS=38:TOP=VAL(ZL):BOT=VAL(ZR):GOSUB 2580:RETURN
- 2570 SLN=8:HS=38:TOP=VAL(ZR):BOT=VAL(ZL):GOSUB 2580:RETURN
- 2580 COLOR 6,0:LOCATE SLN+0,HS:PRINT "┌───┐"
- 2590 LOCATE SLN+1,HS:PRINT "│ │"
- 2600 LOCATE SLN+2,HS:PRINT "├───┤"
- 2610 LOCATE SLN+3,HS:PRINT "│ │"
- 2620 LOCATE SLN+4,HS:PRINT "└───┘":COLOR 15,0
- 2630 LOCATE SLN+1,HS+1:PRINT DT$(BOT)
- 2640 LOCATE SLN+3,HS+1:PRINT DT$(TOP):COLOR 7,0:RETURN
- 2650 COLOR 6,0:LOCATE SLN+0,HS:PRINT "┌───┬───┐"
- 2660 LOCATE SLN+1,HS:PRINT "│ │ │"
- 2670 LOCATE SLN+2,HS:PRINT "└───┴───┘":COLOR 15,0
- 2680 LOCATE SLN+1,HS+1:PRINT DT$(RHT)
- 2690 LOCATE SLN+1,HS+5:PRINT DT$(LFT):COLOR 7,0:RETURN
- 2700 ONEROW=1
- 2710 LOCATE ,,0
- 2720 SLN=19
- 2730 HS=(80-(10*PLNO))\2+1
- 2740 IF HS<1 THEN HS=1
- 2750 FOR I=SLN TO 6+SLN-1
- 2760 LOCATE I,1:PRINT SPC(79);
- 2770 NEXT I
- 2780 FOR A=1 TO PLNO:COLOR 14,0
- 2790 LOCATE SLN,HS: PRINT "┌───┬───┐";
- 2800 LOCATE SLN+1,HS:PRINT "│ │ │";
- 2810 LOCATE SLN+2,HS:PRINT "└───┴───┘";
- 2820 HS=HS+10
- 2830 IF HS>80 THEN SLN=SLN+3:HS=1:ONEROW=0
- 2840 NEXT
- 2850 LOCATE 24,1,O:PRINT "Use Cursor Arrows To Choose And Position Domino Strike Enter Key When Ready";
- 2860 SLN=19
- 2870 HS=((80-(10*PLNO))\2)+2
- 2880 IF HS<1 THEN HS=2
- 2890 FOR A=1 TO PLNO:COLOR 15,0
- 2900 ON VAL(LEFT$(YOU$(A),1))+1 GOSUB 2970,2980,2990,3000,3010,3020,3030
- 2910 HS=HS+4
- 2920 ON VAL(RIGHT$(YOU$(A),1))+1 GOSUB 2970,2980,2990,3000,3010,3020,3030
- 2930 HS=HS+6
- 2940 IF HS>80 THEN SLN=SLN+3:HS=2
- 2950 NEXT
- 2960 COLOR 7,0:RETURN
- 2970 LOCATE SLN+1,HS:PRINT DT$(0):RETURN
- 2980 LOCATE SLN+1,HS:PRINT DT$(1):RETURN
- 2990 LOCATE SLN+1,HS:PRINT DT$(2):RETURN
- 3000 LOCATE SLN+1,HS:PRINT DT$(3):RETURN
- 3010 LOCATE SLN+1,HS:PRINT DT$(4):RETURN
- 3020 LOCATE SLN+1,HS:PRINT DT$(5):RETURN
- 3030 LOCATE SLN+1,HS:PRINT DT$(6):RETURN
- 3040 CLS:COLOR 6,0:GOSUB 3440
- 3050 LOCATE 1,1:PRINT STRING$(80,219)
- 3060 FOR A=2 TO 22:LOCATE A,1:PRINT "█":LOCATE A,80:PRINT "█":NEXT
- 3070 LOCATE 23,1:PRINT STRING$(80,219);
- 3080 LOCATE 3,33:COLOR 11,0:PRINT "D O M I N O E S
- 3090 COLOR 15,0:LOCATE 8,25:PRINT "Would You Like instructions? <Y/N>"
- 3100 GOSUB 3390:IF Z="N" THEN CLS:RETURN ELSE IF Z<>"Y" THEN 3100
- 3110 COLOR 3,0:LOCATE 4,19:PRINT "This is single spinner Dominoes, that is you
- 3120 LOCATE 5,19:PRINT "can only play in any direction off the first
- 3130 LOCATE 6,19:PRINT "spinner or double domino (1:1,2:2,3:3, etc).
- 3140 LOCATE 7,19:PRINT "The object of the game is to score points in
- 3150 LOCATE 8,19:PRINT "multiples of `5' by adding the total of all
- 3160 LOCATE 9,19:PRINT "open ends of the playing board. You can score
- 3170 LOCATE 10,19:PRINT "points only if the game board total is five
- 3180 LOCATE 11,19:PRINT "or a multiple of five. You may start each new
- 3190 LOCATE 12,19:PRINT "hand by playing the first domino. If the
- 3200 LOCATE 13,19:PRINT "total of both ends equals five or ten, you
- 3210 LOCATE 14,19:PRINT "score that number of points. From that point
- 3220 LOCATE 15,19:PRINT "on, you and the computer build onto the ends
- 3230 LOCATE 16,19:PRINT "trying to score points. If no domino end
- 3240 LOCATE 17,19:PRINT "in your hand matches an open end on the board,
- 3250 LOCATE 18,19:PRINT "the computer will draw from the boneyard. If
- 3260 LOCATE 19,19:PRINT "the boneyard is empty, the other player may
- 3270 LOCATE 20,19:PRINT "play again. Use the Cursor Arrows and Enter
- 3280 LOCATE 21,19:PRINT "Key to select and play your dominoes.
- 3290 LOCATE 25,25:COLOR 15,0:PRINT "Strike Any Key To Continue";
- 3300 Z=INKEY$:IF Z="" THEN 3300 ELSE CLS:RETURN
- 3310 KEY(10) OFF:XLIN=CSRLIN:XPOS=POS(0):LOCATE 25,1:PRINT SPC(79);
- 3320 LOCATE 25,21:PRINT "Do You Wish To Leave This Game? <Y/N>";
- 3330 Z=INKEY$:IF Z="" THEN 3330
- 3340 IF Z="y" OR Z="Y" THEN 3910
- 3350 IF Z<>"n" AND Z<>"N" THEN 3330
- 3360 LOCATE 25,1:PRINT SPC(79);:LOCATE 25,24:COLOR 0,7
- 3370 PRINT " Strike <F10> To Leave This Game ";:COLOR 7,0:LOCATE XLIN,XPOS,0
- 3380 KEY(10) ON:RETURN
- 3390 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 3390
- 3400 Z=INKEY$:IF Z="" THEN 3400
- 3410 IF Z<"a" OR Z>"z" THEN 3430
- 3420 Z=CHR$(ASC(Z)-32)
- 3430 RETURN
- 3440 '
- 3450 RETURN
- 3460 CLS
- 3470 LOCATE 6,30:COLOR 0,7:PRINT " A ";:COLOR 3,0:PRINT" Play To 100 Points"
- 3480 LOCATE 8,30:COLOR 0,7:PRINT " B ";:COLOR 3,0:PRINT" Play To 250 Points"
- 3490 LOCATE 10,30:COLOR 0,7:PRINT " C ";:COLOR 3,0:PRINT" Play To 500 Points"
- 3500 COLOR 3,0:LOCATE 4,25:PRINT"Please Choose A Game <A> <B> or <C>"
- 3510 Z=INKEY$:IF Z="" THEN 3510
- 3520 IF Z="A" OR Z="a" THEN GAME=100:GOTO 3550
- 3530 IF Z="B" OR Z="b" THEN GAME=250:GOTO 3550
- 3540 IF Z="C" OR Z="c" THEN GAME=500:GOTO 3550 ELSE 3510
- 3550 CLS:RETURN
- 3560 NOPLAY=NOPLAY+1
- 3570 LOCATE 4,1:COLOR 15,0
- 3580 PRINT "The Bone Yard Is Empty":IF PL1 THEN 3600
- 3590 PRINT "And I Have No Play":PRINT "I Lose My Turn":GOTO 3610
- 3600 PRINT "Sorry, You Have No Play":PRINT "So You Lose Your Turn":GOTO 3610
- 3610 IF NOPLAY=2 THEN 3620 ELSE FOR AI=1 TO 3500:NEXT:RETURN
- 3620 FOR A=1 TO 3000:NEXT:TOT=0:IF PLNO THEN IF CONO THEN 3630 ELSE 3670
- 3630 FOR A=1 TO CONO
- 3640 TOT=TOT+VAL(LEFT$(MY$(A),1))+VAL(RIGHT$(MY$(A),1))
- 3650 NEXT:REMA=TOT MOD 5:TOT=TOT\5:TOT=TOT*5:IF REMA>2 THEN TOT=TOT+5
- 3660 YSCR=YSCR+TOT:IF PLNO THEN 3670 ELSE 3710
- 3670 TOT=0:FOR A=1 TO PLNO
- 3680 TOT=TOT+VAL(LEFT$(YOU$(A),1))+VAL(RIGHT$(YOU$(A),1))
- 3690 NEXT:REMA=TOT MOD 5:TOT=TOT\5:TOT=TOT*5:IF REMA>2 THEN TOT=TOT+5
- 3700 MYSCR=MYSCR+TOT
- 3710 CLS:LOCATE 4,29:PRINT "Your Total Score Is"YSCR
- 3720 LOCATE 5,30:PRINT "My Total Score Is"MYSCR:IF MYSCR>=GAME AND MYSCR=YSCR THEN 3800
- 3730 IF YSCR>=GAME THEN IF YSCR>MYSCR THEN 3780 ELSE 3790
- 3740 IF MYSCR>=GAME THEN IF YSCR<MYSCR THEN 3790 ELSE 3780
- 3750 LOCATE 7,28:PRINT "One Moment Please, While
- 3760 LOCATE 8,28:PRINT "I Reshuffle The BoneYard
- 3770 EMPT=0:C=0:B=-1:GOSUB 2180:FOR A=1 TO 7000:NEXT:CLS:GOTO 50
- 3780 LOCATE 6,36:PRINT "You Win":GOTO 3810
- 3790 LOCATE 6,37:PRINT "I Win":GOTO 3810
- 3800 LOCATE 6,31:PRINT "The Game Is A Tie"
- 3810 LOCATE 10,23:PRINT "Would You Like To Play Again? <Y/N>"
- 3820 GOSUB 3390:IF Z="Y" THEN RUN ELSE IF Z="N" THEN 3910 ELSE 3820
- 3830 COLOR 4,0:LOCATE 1,66:PRINT "Dominoes Played":COLOR 3,0
- 3840 FOR A=0 TO PLAYED-1
- 3850 IF A<17 THEN LOCATE A+2,71:PRINT PLD$(A);
- 3860 IF A>16 THEN LOCATE A-14,76:PRINT PLD$(A);
- 3870 NEXT
- 3880 LOCATE 2,1:PRINT"Your Score Is"YSCR;:COLOR 7,0
- 3890 COLOR 2,0:LOCATE 1,1:PRINT"My Score Is"MYSCR;
- 3900 RETURN
- 3910 CLEAR:ON ERROR GOTO 3920:RUN"MENU2.002"
- 3920 CLEAR:ON ERROR GOTO 3930:RUN"MENU1.001"
- 3930 RUN"MENU3.003"