10 REM 8-TEEN (c) LDL Software dec'94 20 ONERRORCLOSE#0:GOTO40 30 DIMd%(5,5),s%(4),h%(5),v%(5),hs$(10),hs%(10):PROCio(1) 40 MODE1:PROCini:PROCscrn 50 REPEAT 60 IFok%THENPROCdice 70 PROCkey:PROCmov 80 IFok%THENPROCfld:PROCpnt 90 IFb%=25ORk%=65THENPROCend 100 UNTILout:MODE7 110 *FX4,0 120 *FX229,0 130 END 140 : 150 DEFPROCdice:FORi%=1TO3:s%(i%)=s%(i%+1):NEXT:s%(4)=RND(6):COLOUR1:COLOUR130:FORi%=5TO3STEP-1:PROCplc(s%(i%-1),1,i%*5):NEXT:dc%=s%(1):COLOUR3:COLOUR128:VDU31,6,6,241:COLOUR3:COLOUR129:PROCplc(s%(1),1,5):ENDPROC 160 : 170 DEFPROCkey 180 *FX21,0 190 REPEAT:k%=(GETOR48)-48:IFk%=65THENPROCout 200 UNTIL(k%<6ANDk%>0)ORk%=65:ENDPROC 210 : 220 DEFPROCmov:IFk%=65 ENDPROC 230 ok%=0:FORve%=5TO1STEP-1:IFd%(k%,ve%)=0THENd%(k%,ve%)=dc%:ok%=1:ve%=1 240 NEXT:IFok%THENPROCplc(0,1,5):PROCplc(0,4,5) 250 ENDPROC 260 : 270 DEFPROCfld:FORi%=1TO5:h%(i%)=0:v%(i%)=0:NEXT:FORho%=1TO5:FORve%=1TO5:PROCplc(d%(ho%,ve%),ho%*5+5,ve%*5):h%(ve%)=h%(ve%)+d%(ho%,ve%):v%(ho%)=v%(ho%)+d%(ho%,ve%):NEXT,:PROCtot:ENDPROC 280 : 290 DEFPROCtot:COLOUR3:COLOUR129:PRINTTAB(1,1)LEFT$("H: ",7-LEN(STR$(hs%(1))))STR$(hs%(1)):COLOUR0:COLOUR131:FORho%=1TO5:VDU31,ho%*5+4,1:IFv%(ho%)<=18THENPRINT" "LEFT$("00",2-LEN(STR$(v%(ho%))))STR$(v%(ho%))" "ELSEPRINT" -- " 300 NEXT:COLOUR2:COLOUR129:PRINTTAB(34,1)LEFT$(" ",5-LEN(STR$(sc%)))STR$(sc%):COLOUR0:COLOUR131:FORve%=1TO5:VDU31,36,ve%*5+1:IFh%(ve%)<=18THENPRINT" "LEFT$("00",2-LEN(STR$(h%(ve%))))STR$(h%(ve%))" "ELSEPRINT" -- " 310 NEXT:COLOUR3:COLOUR129:ENDPROC 320 : 330 DEFPROCpnt 340 REPEAT:hp%=0:vp%=0:FORi%=1TO5 350 IFh%(i%)=18THENhp%=i% 360 IFv%(i%)=18THENvp%=i% 370 NEXT 380 IFhp%THENvp%=0:PROChor 390 IFvp%THENPROCver 400 IFhp%ORvp%THENPROCfld 410 UNTILvp%=0ANDhp%=0 420 PROCbon:IFb%=0THENPROCtot 430 ENDPROC 440 : 450 DEFPROChor:FORho%=1TO5:COLOUR1:COLOUR131:PROCplc(d%(ho%,hp%),ho%*5+5,hp%*5):FORi%=hp%TO1STEP-1:d%(ho%,i%)=d%(ho%,i%-1):NEXT,:PROCtim(100) 460 COLOUR0:COLOUR128:FORho%=1TO5:PROCplc(0,ho%*5+5,hp%*5):NEXT:COLOUR3:COLOUR129:sc%=sc%+(6-hp%)*5:ENDPROC 470 : 480 DEFPROCver:FORve%=1TO5:COLOUR1:COLOUR131:PROCplc(d%(vp%,ve%),vp%*5+5,ve%*5):d%(vp%,ve%)=0:NEXT:COLOUR3:COLOUR129:PROCtim(100):sc%=sc%+5:ENDPROC 490 : 500 DEFPROCbon:b%=0:FORho%=1TO5:FORve%=1TO5:IFd%(ho%,ve%)<>0THENb%=b%+1 510 NEXT,:IFb%ANDb%<25THENENDPROC 520 IFb%=25THENFORi%=1TO5:v%(i%)=20:h%(i%)=20:NEXT:PROCtot:COLOUR0:COLOUR130:FORi%=10TO12:PRINTTAB(10,i%);SPC(23);:NEXT:PRINTTAB(11,11);"GAME OVER - PRESS KEY";:REPEATUNTILGET:ENDPROC 530 COLOUR128:FORi%=1TO4:COLOUR2:PRINTTAB(16,11)"BONUS = 100":PROCtim(70):COLOUR0:PRINTTAB(16,11)"BONUS = 100":PROCtim(30):NEXT:sc%=sc%+100:ENDPROC 540 : 550 DEFPROCplc(v%,x%,y%):o%=240:IFv%=0THENCOLOUR0:COLOUR128:VDU31,x%,y%,32,32,32,31,x%,y%+1,32,32,32,31,x%,y%+2,32,32,32:COLOUR3:COLOUR129 560 IFv%=1THENVDU31,x%,y%,32,32,32,31,x%,y%+1,32,o%,32,31,x%,y%+2,32,32,32 570 IFv%=2THENVDU31,x%,y%,o%,32,32,31,x%,y%+1,32,32,32,31,x%,y%+2,32,32,o% 580 IFv%=3THENVDU31,x%,y%,o%,32,32,31,x%,y%+1,32,o%,32,31,x%,y%+2,32,32,o% 590 IFv%=4THENVDU31,x%,y%,o%,32,o%,31,x%,y%+1,32,32,32,31,x%,y%+2,o%,32,o% 600 IFv%=5THENVDU31,x%,y%,o%,32,o%,31,x%,y%+1,32,o%,32,31,x%,y%+2,o%,32,o% 610 IFv%=6THENVDU31,x%,y%,o%,32,o%,31,x%,y%+1,o%,32,o%,31,x%,y%+2,o%,32,o% 620 ENDPROC 630 : 640 DEFPROCtim(tm%):T%=TIME+tm%:REPEATUNTILTIME>=T%:ENDPROC 650 : 660 DEFPROCout:COLOUR2:FORi%=10TO12:PRINTTAB(10,i%)SPC(23):NEXT:PRINTTAB(14,11)"QUIT GAME Y/N ?":IFINSTR("YyJj",CHR$(GET))THENok%=0:ENDPROC 670 COLOUR0:COLOUR128:FORi%=10TO12:PRINTTAB(10,i%)SPC(23):NEXT:COLOUR3:COLOUR129:FORho%=1TO5:PROCplc(d%(ho%,2),ho%*5+5,10):NEXT:k%=0:ENDPROC 680 : 690 DEFPROCscrn 700 COLOUR3:COLOUR129:CLG:FORi%=1TO4:s%(i%)=RND(6):NEXT:FORi%=0TO2:PRINTTAB(0,i%);SPC(40);:NEXT:FORi%=9TO30:PRINTTAB(6,i%);" ";:NEXT:FORi%=3TO30:PRINTTAB(36,i%);" ";:NEXT:FORho%=1TO5:h%(ho%)=0:FORve%=1TO5:v%(ve%)=0:d%(ho%,ve%)=0 710 NEXT,:COLOUR0:COLOUR131:FORho%=1TO5:PRINTTAB(ho%*5+5,30)" ";STR$(ho%);" ";:NEXT:COLOUR0:COLOUR131:VDU31,1,10,224,225,226,31,1,11,227,228,229,31,1,12,32,230,32:COLOUR2:COLOUR129 720 FORve%=1TO5:PRINTTAB(37+ve%DIV5,ve%*5+3);STR$((6-ve%)*5);:NEXT:COLOUR3:ok%=1:sc%=0:b%=1:q%=0:PROCtot:out=0:ENDPROC 730 : 740 DEFPROCini 750 *FX4,2 760 *FX229,1 770 VDU23,224,0,0,0,0,0,0,1,3,23,225,0,0,24,60,126,255,255,255,23,226,0,0,0,0,0,0,128,192,23,227,7,15,31,63,0,0,0,0,23,228,255,255,255,255,126,126,126,126,23,229,224,240,248,252,0,0,0,0,23,230,126,126,126,126,126,126,0,0 780 VDU23,240,0,60,126,126,126,126,60,0,23,241,8,12,14,255,255,14,12,8:COLOUR3:COLOUR129:FORi%=1TO3:PRINTTAB(0,i%);SPC40;:NEXT:PRINTTAB(17,2)"8-TEEN":COLOUR2:COLOUR128:PRINTTAB(10,10)"A game to challenge!";TAB(15,15)"INFO Y/N?":COLOUR1 790 COLOUR131:VDU23,1,0;0;0;0;:T=RND(-TIME):FORi%=1TO3:PROCplc(6,i%*9,24):NEXT:IF INSTR("YyJj",GET$)=0 ENDPROC 800 CLS:COLOUR0:PRINTTAB(17,2)"8-TEEN":PRINT'''" Play the game with the upper dice"'" (the other three are on stock)"'" by pressing 1, 2, 3, 4 or 5 in order"'" to fill the rows or columns until you"'" reach a total of 18 points."'''" By"; 810 PRINT" filling a row (=18) you earn the"'" yellow scores printed at the right"'" hand of the screen."''" By filling a column (=18) you earn"'" a score of 5 points."'''" Whenever you clear the field, a BONUS of 100 pts. is added to"; 820 PRINT" your score."''''" MAKE EIGHTEEN WITH 3,4 OR 5 DICE!!":PRINT''TAB(8)"During the game: Q=QUIT":REPEATUNTILGET:ENDPROC 830 : 840 DEFPROCend 850 COLOUR2:COLOUR128:CLS:PRINTTAB(12,3)"HIGH SCORES ARE:":FORi%=1TO10:PRINTTAB(4,i%+7);hs$(i%);LEFT$(STRING$(25," "),25-LEN(hs$(i%)));LEFT$(" ",6-LEN(STR$(hs%(i%))));STR$(hs%(i%));:NEXT:IFsc%>hs%(10)THENPROCinv:GOTO850 860 IFq%THENPRINTTAB(4,20)"Do you want to save score Y/N ?":IFINSTR("YyJj",CHR$(GET))THENPROCio(0) 870 PRINTTAB(4,23)"Do you want to play again Y/N ?":IFINSTR("Nn",CHR$(GET))THENout=1:ENDPROC ELSEPROCscrn:ENDPROC 880 : 890 DEFPROCinv:PRINTTAB(4,20)"Enter your name for the TOP TEN":VDU31,4,22,241,32,23,1,1;0;0;0;:COLOUR0:COLOUR130:PRINTSPC(27):VDU31,7,22:min%=7:max%=min%+25:pl%=min%:n$="":REPEAT 900 i%=GET:IFi%=13OR(i%=127ANDpl%=min%)OR(i%<>127ANDpl%=max%)THEN920 910 VDU31,pl%,22,i%:pl%=pl%+1:n$=n$+CHR$(i%):IFi%=127THENpl%=pl%-2:n$=LEFT$(n$,pl%-min%) 920 UNTILi%=13:FORi%=1TO10:IFsc%>=hs%(i%)THENFORj%=10TOi%+1STEP-1:hs$(j%)=hs$(j%-1):hs%(j%)=hs%(j%-1):NEXT:hs$(i%)=n$:hs%(i%)=sc%:q%=1:sc%=0:i%=10 930 NEXT:VDU23,1,0;0;0;0;:ENDPROC 940 : 950 DEFPROCio(fl%):IFfl%THENFORi%=1TO10:hs$(i%)="JJ":hs%(i%)=110-i%*10:NEXT:f%=OPENIN"8TNDAT":FORi%=1TO10:INPUT#f%,hs$(i%),hs%(i%):NEXT:CLOSE#0:ENDPROC ELSEf%=OPENOUT"8TNDAT":FORi%=1TO10:PRINT#f%,hs$(i%),hs%(i%):NEXT:CLOSE#0:ENDPROC