10 REM" Countdown 20 REM" John Davis -'97. 30 *K.10 40 MODE7 50 PROCting 60 DIMA%(6):DIMB%(6):DIMC%(6):DIMD%(6) 70 DIMP$(5):DIMQ$(5):DIMS$(6) 80 S$(1)="+":S$(2)="-":S$(3)="*":S$(4)="p":S$(5)="m":S$(6)="t" 90 F%=5 100 L$=""+CHR$157+" * C O U N T D O W N *" 110 VDU23,1,0;0;0;0; 120 PRINTL$ 130 PRINT'TAB(12)""CHR$157"Options "CHR$156 140 PRINT'"Press:Ifor Info." 150 PRINTTAB(7)"Eto Enter numbers." 160 PRINTTAB(7)"Rfor Random numbers." 170 PRINTTAB(7)"ESCto quit." 180 PRINT'CHR$145;STRING$(39,","); 190 ONERRORVDU23,1,1;0;0;0;:PRINT:END 200 G$=GET$ 210 IFG$="I"ELSE240 220 *K.10CH."C/DOWN"|M 230 *RUN CD/INFO 240 ONERRORVDU26:CLS:GOTO110 250 IFG$="E"PROCinput:CLS:GOTO310 260 IFG$="R"CLS:GOTO280 270 GOTO190 280 IFRND(1)<.1A%(1)=10ELSEA%(1)=25*RND(4) 290 FORN%=2TO6:A%(N%)=RND(10):NEXT 300 T%=99+RND(900) 310 FORN%=1TO6:B%(N%)=A%(N%):NEXT 320 PROCscreen 330 TIME=0:Z%=0:V%=500 340 REM"** 350 REPEAT 360 FORY%=1TOF% 370 Z%=Z%+1 380 IFRND(1)<.2R%=4ELSER%=4+RND(2) 390 FORN%=1TOR%-(1ANDR%=6) 400 W%=7-N%:X%=RND(W%) 410 C%(N%)=B%(X%) 420 B%(X%)=B%(W%) 430 B%(W%)=C%(N%) 440 NEXT 450 IFR%=6C%(6)=B%(1) 460 IFC%(1)MODC%(2)=0ANDC%(2)>1P$(1)="d"ELSEP$(1)=S$(RND(6)) 470 FORN%=2TOR%-1 480 P$(N%)=S$(RND(6)) 490 NEXT 500 K%=1:D%(1)=C%(1) 510 FORN%=1TOR%-1 520 IFASC(P$(N%))<97GOTO580 530 IFP$(N%)="p"D%(K%)=D%(K%)+C%(N%+1) 540 IFP$(N%)="m"D%(K%)=D%(K%)-C%(N%+1) 550 IFP$(N%)="t"D%(K%)=D%(K%)*C%(N%+1) 560 IFP$(N%)="d"D%(K%)=D%(K%)/C%(N%+1) 570 GOTO610 580 D%(K%+1)=C%(N%+1) 590 Q$(K%)=P$(N%) 600 K%=K%+1 610 NEXT 620 J%=D%(1) 630 IFK%>1ELSE690 640 FORN%=1TOK%-1 650 IFQ$(N%)="+"J%=J%+D%(N%+1) 660 IFQ$(N%)="-"J%=J%-D%(N%+1) 670 IFQ$(N%)="*"J%=J%*D%(N%+1) 680 NEXT 690 PROCclosest 700 NEXT 710 PROCdisp 720 IFINKEY$(0)="P"PROCpause 730 UNTIL0 740 "** 750 DEFPROCnumstr 760 E$="" 770 FORN%=1TOR%-1 780 E$=E$+STR$(C%(N%))+P$(N%) 790 NEXT 800 E$=E$+STR$(C%(R%)) 810 ENDPROC 820 "** 830 DEFPROCdisp 840 PROCnumstr 850 PRINT""E$ 860 PRINTCHR$(131-2*SGN(J%));ABS(J%);"";TAB(7)"No.";Z%' 870 VDU26 880 TM%=TIME/100 890 PRINTTAB(20,21);TM%DIV60;"min ";TM%MOD60;"sec " 900 VDU28,0,23,16,2 910 PRINTTAB(0,21); 920 ENDPROC 930 "** 940 DEFPROCinput 950 CLS:PRINTL$:PRINT 960 PRINTTAB(10)""CHR$(157)"Enter Numbers "CHR$(156) 970 PRINT'" First enter the six numbers, in any order, and then the target number." 980 VDU23,1,1;0;0;0; 990 PRINT 1000 FORN%=1TO6 1010 PRINT'"Number ";N%;"?" 1020 NEXT 1030 PRINT'"Target?" 1040 PRINTTAB(0,22)CHR$(145);STRING$(39,","); 1050 PRINT'"PressESCto cancel."; 1060 FORN%=1TO6 1070 PRINTTAB(11,N%*2+6); 1080 INPUT""A%(N%) 1090 NEXT 1100 PRINTTAB(9,N%*2+6); 1110 INPUT""T% 1120 PRINTTAB(0,24)"Are these all correct?(Y/N)"; 1130 G$=GET$ 1140 IF G$="N" THEN950 1150 IF G$<>"Y" THEN1130 1160 VDU23,1,0;0;0;0; 1170 ENDPROC 1180 "** 1190 DEFPROCscreen 1200 PRINTL$ 1210 PRINTTAB(17,2)""CHR$157 1220 FORN%=3TO21 1230 PRINTTAB(17,N%)CHR$148CHR$255 1240 PRINTTAB(38,N%)CHR$148CHR$255; 1250 NEXT 1260 PRINTTAB(17,22)""CHR$157 1270 PRINTTAB(0,24)""CHR$157"ESC for Options P/P:Pause/Go"; 1280 PRINTTAB(19,3)"Numbers:" 1290 PRINTTAB(19,4)""; 1300 FORN%=1TO6:PRINT;A%(N%);" ";:NEXT 1310 PRINTTAB(19,5)"Target:" 1320 PRINTTAB(19,6)"";T% 1330 PRINTTAB(20,7)",,,,,,,,,,,,,,,,,," 1340 PRINTTAB(19,8)"Closest so far:" 1350 PRINTTAB(19,10)"Value:" 1360 PRINTTAB(19,12)"Attempt:" 1370 PRINTTAB(19,14)"Time:" 1380 PRINTTAB(20,16)",,,,,,,,,,,,,,,,,," 1390 PRINTTAB(19,17)"Display Frequency:" 1400 PRINTTAB(19,18)"Every:";F% 1410 PRINTTAB(20,19)",,,,,,,,,,,,,,,,,," 1420 PRINTTAB(19,20)"Running time:" 1430 PRINTTAB(19,21)"" 1440 VDU28,0,23,16,2 1450 PRINTTAB(0,21); 1460 ENDPROC 1470 "** 1480 DEFPROCclosest 1490 U%=ABS(T%-ABS(J%)) 1500 IFU%<=V%ELSEENDPROC 1510 PROCnumstr 1520 V%=U%:TM%=TIME/100 1530 IFV%<11VDU7 1540 VDU26 1550 PRINTTAB(19,9)SPC17 1560 PRINTTAB(19,9)""E$ 1570 PRINTTAB(19,11)CHR$(131-2*SGN(J%));ABS(J%);" " 1580 IFJ%<0PRINTTAB(26,10)"(negative)"ELSEPRINTTAB(26,10)" " 1590 PRINTTAB(19,13)"";Z% 1600 PRINTTAB(19,15)"";TM%DIV60;"min ";TM%MOD60;"sec " 1610 IFABS(J%)=T%PROChowzat 1620 VDU28,0,23,16,2 1630 PRINTTAB(0,21); 1640 ENDPROC 1650 "** 1660 DEFPROChowzat 1670 VDU7:TT%=TIME 1680 PRINTTAB(2,23)"C to Continue"SPC18; 1690 PRINTTAB(19,24)""; 1700 PRINTTAB(19,8)"Solution: " 1710 FORN=1TO20 1720 PRINTTAB(26,11)"Howzat!?" 1730 FORD=1TO300:NEXT 1740 PRINTTAB(26,11)"Howzat!?" 1750 FORD=1TO400:NEXT 1760 NEXT 1770 G$=GET$ 1780 IFG$="C"ELSE1770 1790 PRINTTAB(25,11)SPC11 1800 PRINTTAB(0,23)SPC16; 1810 IFF%>99PRINTTAB(17,23)"*Running..."; 1820 PRINTTAB(19,24)""; 1830 TIME=TT% 1840 ENDPROC 1850 "** 1860 DEFPROCting 1870 ENVELOPE1,1,0,0,0,0,0,0,127,-4,-2,-1,126,90 1880 *FX212,0 1890 *FX213,170 1900 ENDPROC 1910 "** 1920 DEFPROCpause 1930 TT%=TIME 1940 VDU26 1950 PRINTTAB(0,23)"Pause" 1960 PRINTTAB(17,23)""CHR$157"F for new frequency"; 1970 G$=GET$ 1980 IFG$="F"ELSE2060 1990 PRINTTAB(20,23)SPC19; 2000 VDU23,1,1;0;0;0; 2010 INPUTTAB(20,23)"Frequency? "F% 2020 PRINTTAB(17,23)SPC22; 2030 IFF%<1F%=5 2040 PRINTTAB(27,18);F%;" " 2050 GOTO2070 2060 IFG$="P"ELSE1970 2070 PRINTTAB(0,23)SPC39; 2080 IFF%>99PRINTTAB(17,23)"*Running..."; 2090 VDU28,0,23,16,2 2100 VDU23,1,0;0;0;0; 2110 PRINTTAB(0,21); 2120 TIME=TT% 2130 ENDPROC