10 : 20 : 30 : 40 *|" ˆSTOP! STOP! ARE YOU LISTING THIS TO CHEAT? SHAME ON YOU!!!!! 50 : 60 : 70 : 80 *|" †ON A BBC+ JULY 1993 90 *|"†…PROGRAM AND IDEA BY …RUSHDEN ROY …(A 'L PLATE' PROGRAMMER) … FOR‚ ‚8-BIT SOFTWARE‚DISC MAGAZINE 100 ON ERROR PROCerr:END 110 MODE7:CLS:VDU23,1,0;0;0;0;:PRINT 120 ENVELOPE1,1,0,0,0,0,0,0,-126,-2,0,-1,126,80 130 PROCROY:PRINT' 140 PROCdh("Can you........",134) 150 PROCdh(" crack the shopkeepers code?",134):PRINT 160 PROCdh(" Anagrams.",134) 170 PROCdh(" ( With a difference.)",134) 180 PROCspacebar 190 CLS 200 PRINT 210 PROCdh(" THE SHOPKEEPERS CODE.",131) 220 prt$="_____________________":PROCprint(3,131) 230 prt$="Some shopkeepers use a code word on":PROCprint(4,134) 240 prt$="their price tickets to help them":PROCprint(5,134) 250 prt$="remember the wholesale price (what":PROCprint(6,134) 260 prt$="they paid for the item) or perhaps":PROCprint(7,134) 270 prt$="say, in a antique shop, the haggling":PROCprint(8,134) 280 prt$="price (the lowest price they are ":PROCprint(9,134) 290 prt$="prepared to go down to). If you take ":PROCprint(10,134) 300 prt$="a note of the letters and the price":PROCprint(11,134) 310 prt$="of several tickets you can sometimes":PROCprint(12,134) 320 prt$="find out the shopkeepers secret code.":PROCprint(13,134) 330 prt$="With this game/puzzle you will see":PROCprint(14,133) 340 prt$="some 'price tickets' with letters":PROCprint(15,133) 350 prt$="and your aim is to find the code word.":PROCprint(16,133) 360 prt$="Twenty different (shown at random)":PROCprint(17,132) 370 prt$="words with max. points is your target.":PROCprint(18,132) 380 prt$="There will be extra clues that cost ten":PROCprint(19,130) 390 prt$="points each. One will be a crossword ":PROCprint(20,130) 400 prt$="puzzle type or a simple maths clue.":PROCprint(21,130) 410 PROCspacebar 420 PRINT 430 PROCdh(" A few tips to help.",131) 440 prt$="_____________________":PROCprint(3,131) 450 prt$="The more different letters there are":PROCprint(4,130) 460 prt$="(max.ten) the easier it will be.":PROCprint(5,130) 470 prt$="Concentrate on the pounds first.":PROCprint(7,130) 480 prt$="It is better if the pound digits are":PROCprint(9,130) 490 prt$="low as it helps you to work out the":PROCprint(10,130) 500 prt$="first part of the ten letter word.":PROCprint(11,130) 510 prt$="Remember the code letters will be":PROCprint(13,130) 520 prt$="'lower' than the price.":PROCprint(14,130) 530 prt$="Good old paper and pencil will help.":PROCprint(16,130) 540 prt$="If after the last clue you still have":PROCprint(18,130) 550 prt$="not guessed the word then skip it":PROCprint(19,130) 560 prt$="and go on to another one. You may have":PROCprint(20,130) 570 prt$="a better show of letters next time.":PROCprint(21,130) 580 PROCspacebar 590 CLEAR 600 DIMN$(10) 610 CLS:VDU23,1,1;0;0;0; 620 PROCsetitup 630 PROCansw1("2, You have spotted another ticket") 640 PROCansw2("3, .....and another ticket") 650 PROCansw3(percLes,"% mark up.") 660 PROCansw4 670 END 680 DEFPROCprint(line%,color%) 690 PRINT TAB(((40-LENprt$)/2),line%);CHR$color%;prt$:ENDPROC 700 DEFPROCspacebar 710 a$=""+CHR$129+CHR$157+CHR$131+"PRESS THE SPACE BAR "+CHR$156+CHR$13 720 PRINT TAB(8,23)a$ 730 *FX 15,1 740 *FX11,0 750 REPEAT UNTIL GET=32:CLS 760 ENDPROC 770 DEFPROCdh(text$,color%):PRINTCHR$color%;CHR$141+text$'CHR$color%;CHR$141+text$ 780 ENDPROC 790 DEFPROCROY 800 PRINT"“7`+47``57k`5 ```IDEA AND PROGRAM `````" 810 PRINT"’5b(55( 5m h%7`+4757`k 7k`57`k 7e757`k" 820 PRINT"‘uzp5upp5jpz 5( 5555js05 n15bs550!5u0`5" 830 PRINT"“ppppBYppppp upp5u5upp5uzp5upp5u7t5upp5" 840 PRINT'"‚ (This version)" 850 PRINT"‚ FOR 8-BIT SOFTWARE" 860 PRINT"‚ DISC MAGAZINE" 870 ENDPROC 880 ENVELOPE1,1,0,0,0,0,0,0,-126,-2,0,-1,126,80 890 DEF PROCsetitup 900 @%=&90A 910 rando%=RND(20) 920 IFrando%=1THEN PROCa 930 IFrando%=2THEN PROCb 940 IFrando%=3THEN PROCc 950 IFrando%=4THEN PROCd 960 IFrando%=5THEN PROCe 970 IFrando%=6THEN PROCf 980 IFrando%=7THEN PROCg 990 IFrando%=8THEN PROCh 1000 IFrando%=9THEN PROCi 1010 IFrando%=10THEN PROCj 1020 IFrando%=11THEN PROCk 1030 IFrando%=12THEN PROCl 1040 IFrando%=13THEN PROCm 1050 IFrando%=14THEN PROCn 1060 IFrando%=15THEN PROCo 1070 IFrando%=16THEN PROCp 1080 IFrando%=17THEN PROCq 1090 IFrando%=18THEN PROCr 1100 IFrando%=19THEN PROCs 1110 IFrando%=20THEN PROCt 1120 PRINT 1130 Q$=(N$(1)+N$(2)+N$(3)+N$(4)+N$(5)+N$(6)+N$(7)+N$(8)+N$(9)+N$(0)) 1140 perc=(4+RND(10))+100 1150 percLes=perc-100 1160 sc%=40 1170 PRINTTAB(0,0);CHR$129;CHR$157;CHR$134;" Price tickets with the code below.":PRINTTAB(2,1);CHR$147;STRING$(6,"p");SPC3;STRING$(6,"p");SPC3;STRING$(6,"p");SPC3;STRING$(6,"p") 1180 PROCrand(0,2):PROCrand(9,2):PROCrand(18,2):PROCrand(0,5):PROCrand(9,5):PROCrand(18,5) 1190 PRINTTAB(2,4);CHR$147;STRING$(6,"s")SPC3;STRING$(6,"s");SPC3;STRING$(6,"s");SPC3;STRING$(6,"s") 1200 PRINTTAB(2,7);CHR$147;"`````` `````` `````` `````` " 1210 PRINTTAB(0,8)CHR$134CHR$157CHR$132;"One clue free others cost 10 points";TAB(6,9);CHR$147"8,,,d <,,,d h ,,l,,$" 1220 PRINTTAB(0,10)CHR$134CHR$157CHR$132;"1, The pence unit is the last letter";TAB(6,11);CHR$147"5 j 5 j j j" 1230 ENDPROC 1240 DEF PROCansw1(S$) 1250 PROCask:PROCwrong1 1260 IF yes$="Y"OR yes$="y" THEN PRINTTAB(0,12)CHR$134CHR$157CHR$132;S$:PRINTTAB(6,13);CHR$147"9,,,f ,,, =,,,f j j SOFTWARE":PROCrand(27,2):PROCscore ELSE PROCansw1(S$) 1270 ENDPROC 1280 DEF PROCansw2(P$) 1290 PROCask:PROCwrong1 1300 IF yes$="Y"OR yes$="y" THEN PRINTTAB(0,14)CHR$134CHR$157CHR$132;P$:PRINTTAB(6,15);CHR$147"5 j 5 j j j VERSION":PROCrand(27,5):PROCscore ELSE PROCansw1(S$) 1310 ENDPROC 1320 DEF PROCansw3(percLes,C$) 1330 PROCask:PROCwrong1 1340 @%=&90A 1350 IF yes$="Y"OR yes$="y" THEN PRINTTAB(0,16)CHR$134CHR$157CHR$132;"4, There is a approx.";percLes;C$:PROCscore ELSE PROCansw3(percLes,"% mark up.") 1360 PRINTTAB(0,17)CHR$134CHR$157CHR$132;" That is the last clue!" 1370 PRINTTAB(6,18);CHR$147"),,,& -,,,& * *" 1380 rndcross=RND(3) 1390 IF rndcross=2 OR rndcross=3 THEN PROCcross 1400 ENDPROC 1410 DEF PROCcross 1420 IF rando%=8OR rando%=10THEN PRINT TAB(3,16)"4, Would this be to do with farming?" 1430 IF rando%=1THEN PRINT TAB(3,16)"4, This one bellows a lot! " 1440 IF rando%=5 OR rando%=18THEN PRINT TAB(3,16)"4, Not usually during the day. " 1450 IF rando%=20THEN PRINT TAB(3,16)"4, The complicated one with a X. " 1460 IF rando%= 2THEN PRINT TAB(3,16)"4, Is this cupboards or computers ?" 1470 IF rando%=14 OR rando%=15 OR rando%=11 THEN PRINT TAB(3,16)"4, Terra firma is part of it. " 1480 IF rando%=12 OR rando%=13 THEN PRINT TAB(3,16)"4, Would this be to do with money ? " 1490 IF rando%=6 OR rando%=7 OR rando%=19 THEN PRINT TAB(3,16)"4, Eight = I and nine = N. " 1500 PRINTTAB(0,17)CHR$134CHR$157CHR$132;" That is the last clue!" 1510 PRINTTAB(6,18);CHR$147"),,,& -,,,& * *" 1520 ENDPROC 1530 DEF PROCansw4 1540 PROCask:PROCwrong2 1550 IF yes$="Y"OR yes$="y" THEN GOTO590ELSE PROCansw4:ENDPROC 1560 DEF PROCask 1570 *FX20,0 1580 PRINTTAB(0,23)STRING$(39," ") 1590 PRINTTAB(0,21)STRING$(14," ") 1600 PRINTTAB(0,19)CHR$129CHR$157CHR$131;" Type in the ten letter code word" 1610 @%=&90A:PRINTTAB(0,20)CHR$129CHR$157CHR$131;" then press RETURN."CHR$134;" (Score=";sc%;")" 1620 PRINT 1630 Z$=FNgetstr(10,"??????????") 1640 PRINTTAB(21,22)STRING$(14," ") 1650 PRINTTAB(23,22);Z$ 1660 IF Z$=Q$ THEN PROCgotit 1670 ENDPROC 1680 DEF PROCwrong1 1690 SOUND1,1,180,1:FOR T=1 TO 400:NEXT:SOUND1,1,180,1 1700 IF Z$<>Q$ THEN PRINTTAB(0,23);CHR$130;"Wrong, do you want a clue? Press Y/N";:yes$=GET$ 1710 ENDPROC 1720 DEF PROCwrong2 1730 SOUND1,1,180,1:FOR T=1 TO 400:NEXT:SOUND2,1,179,1:FOR T=1 TO 400:NEXT:SOUND1,1,180,1 1740 VDU23,1,0;0;0;0; 1750 IF Z$<>Q$ THEN PRINTTAB(0,23);CHR$130;"Wrong, want a"CHR$136"new code word?"CHR$137"Press Y/N":yes$=GET$ 1760 VDU23,1,1;0;0;0; 1770 ENDPROC 1780 DEF PROCrand(x,y) 1790 @%=&20209 1800 r1=RND(9):r2=RND(9) 1810 PRINTTAB(x,y)CHR$132;CHR$157;CHR$134;"`";(r2+(r1*10))*perc/1000;" " 1820 PRINTTAB(x,y+1)CHR$132;CHR$157;CHR$129;" "N$(r1);"."N$(r2);N$(0)" ":ENDPROC 1830 DEF PROCscore 1840 @%=&90A :sc%=sc%-10:ENDPROC 1850 DEF FNgetstr(len,word$) 1860 LOCAL R%,D%,D$ 1870 PRINTCHR$133" (";word$; 1880 PRINT SPC(len-LENword$); 1890 PRINT")";STRING$(len+1,CHR$8); 1900 D%=0:REPEAT:R%=GET 1910 IF R%<>127 THEN GOTO1940 1920 IF D% <>0 THEN VDU127:D%=D%-1:D$=LEFT$(D$,D%):ELSE SOUND1,1,180,1 1930 GOTO 1970 1940 IF R%=13 THEN 1970 1950 IF D%=0 THEN PRINT SPClen;STRING$(len,CHR$8); 1960 IF D%<>len THEN D%=D%+1:D$=D$+CHR$R%:VDU R%:ELSE SOUND1,1,180,1 1970 UNTIL R%=13 1980 IF D%=0 THEN =word$:ELSE =D$ 1990 DEF PROCfan 2000 FOR P%=2 TO 6 STEP2 2010 SOUND1,-15,60,P%:SOUND1,-15,75,P%:SOUND1,-15,85,P%:NEXT:ENDPROC 2020 DEF PROCgotit:PRINTTAB(0,19);CHR$129;CHR$157;CHR$134;CHR$136;"GOT IT!"CHR$137;"Well done, ";sc%;" points scored" 2030 VDU23,1,0;0;0;0; 2040 PRINTTAB(0,20);CHR$129;CHR$157;CHR$134;" PRESS SPACE TO RUN AGAIN ":PROCfan:REPEAT UNTIL GET=32:CLS:GOTO 590:ENDPROC 2050 DEF PROCa:N$(2)=CHR$&4C:N$(3)=CHR$65:N$(4)=CHR$&43:N$(0)=CHR$72:N$(9)=CHR$&54:N$(8)=CHR$&49:N$(1)=CHR$&42:N$(7)=CHR$77:N$(6)=CHR$&53:N$(5)=CHR$&4B:ENDPROC 2060 DEF PROCb:N$(2)=CHR$&48:N$(3)=CHR$&49:N$(4)=CHR$&50:N$(0)=CHR$83:N$(9)=CHR$&44:N$(8)=CHR$82:N$(1)=CHR$&43:N$(7)=CHR$65:N$(6)=CHR$&4F:N$(5)=CHR$&42:ENDPROC 2070 DEF PROCc:N$(2)=CHR$69:N$(3)=CHR$84:N$(4)=CHR$65:N$(0)=CHR$83:N$(9)=CHR$75:N$(8)=CHR$82:N$(1)=CHR$77:N$(7)=CHR$79:N$(6)=CHR$87:N$(5)=CHR$76:ENDPROC 2080 DEF PROCd:N$(2)=CHR$73:N$(3)=CHR$83:N$(4)=CHR$72:N$(0)=CHR$82:N$(9)=CHR$69:N$(8)=CHR$71:N$(1)=CHR$70:N$(7)=CHR$78:N$(6)=CHR$79:N$(5)=CHR$77:ENDPROC 2090 DEF PROCe:N$(2)=CHR$73:N$(3)=CHR$71:N$(4)=CHR$72:N$(0)=CHR$83:N$(9)=CHR$66:N$(8)=CHR$85:N$(1)=CHR$78:N$(7)=CHR$76:N$(6)=CHR$67:N$(5)=CHR$84:ENDPROC 2100 DEF PROCf:N$(2)=CHR$&4C:N$(3)=CHR$65:N$(4)=CHR$&53:N$(0)=CHR$71:N$(9)=CHR$&4E:N$(8)=CHR$&49:N$(1)=CHR$&50:N$(7)=CHR$82:N$(6)=CHR$&45:N$(5)=CHR$&54:ENDPROC 2110 DEF PROCg:N$(2)=CHR$&41:N$(3)=CHR$68:N$(4)=CHR$&4C:N$(0)=CHR$71:N$(9)=CHR$&4E:N$(8)=CHR$&49:N$(1)=CHR$&50:N$(7)=CHR$75:N$(6)=CHR$&43:N$(5)=CHR$&4F:ENDPROC 2120 DEF PROCh:N$(2)=CHR$&49:N$(3)=CHR$84:N$(4)=CHR$&43:N$(0)=CHR$83:N$(9)=CHR$&4B:N$(8)=CHR$&52:N$(1)=CHR$&50:N$(7)=CHR$79:N$(6)=CHR$&46:N$(5)=CHR$&48:ENDPROC 2130 DEF PROCi:N$(2)=CHR$&49:N$(3)=CHR$&46:N$(4)=CHR$&45:N$(0)=CHR$&53:N$(9)=CHR$&44:N$(8)=CHR$&52:N$(1)=CHR$&4C:N$(7)=CHR$&41:N$(6)=CHR$&55:N$(5)=CHR$&47:ENDPROC 2140 DEF PROCj:N$(2)=CHR$&41:N$(3)=CHR$&52:N$(4)=CHR$&56:N$(0)=CHR$&47:N$(9)=CHR$&4E:N$(8)=CHR$&49:N$(1)=CHR$&48:N$(7)=CHR$&54:N$(6)=CHR$&53:N$(5)=CHR$&45:ENDPROC 2150 DEF PROCk:N$(2)=CHR$&41:N$(3)=CHR$&43:N$(4)=CHR$&4B:N$(0)=CHR$&44:N$(9)=CHR$&4E:N$(8)=CHR$&55:N$(1)=CHR$&42:N$(7)=CHR$&4F:N$(6)=CHR$&52:N$(5)=CHR$&47:ENDPROC 2160 DEF PROCl:N$(2)=CHR$&55:N$(3)=CHR$82:N$(4)=CHR$&43:N$(0)=CHR$71:N$(9)=CHR$&4E:N$(8)=CHR$&49:N$(1)=CHR$&50:N$(7)=CHR$83:N$(6)=CHR$&41:N$(5)=CHR$&48:ENDPROC 2170 DEF PROCm:N$(2)=CHR$&4F:N$(3)=CHR$85:N$(4)=CHR$&4E:N$(0)=CHR$82:N$(9)=CHR$&45:N$(8)=CHR$&56:N$(1)=CHR$&50:N$(7)=CHR$65:N$(6)=CHR$&53:N$(5)=CHR$&44:ENDPROC 2180 DEF PROCn:N$(2)=CHR$&41:N$(3)=CHR$&52:N$(4)=CHR$&54:N$(0)=CHR$&44:N$(9)=CHR$&4E:N$(8)=CHR$&55:N$(1)=CHR$&45:N$(7)=CHR$&4F:N$(6)=CHR$&42:N$(5)=CHR$&48:ENDPROC 2190 DEF PROCo:N$(2)=CHR$&4F:N$(3)=CHR$&54:N$(4)=CHR$&48:N$(0)=CHR$&44:N$(9)=CHR$&4E:N$(8)=CHR$&41:N$(1)=CHR$&4D:N$(7)=CHR$&4C:N$(6)=CHR$&52:N$(5)=CHR$&45:ENDPROC 2200 DEF PROCp:N$(2)=CHR$&54:N$(3)=CHR$&4F:N$(4)=CHR$&43:N$(0)=CHR$&44:N$(9)=CHR$&45:N$(8)=CHR$&4C:N$(1)=CHR$&53:N$(7)=CHR$&49:N$(6)=CHR$&50:N$(5)=CHR$&4B:ENDPROC 2210 DEF PROCq:N$(2)=CHR$&45:N$(3)=CHR$&44:N$(4)=CHR$&55:N$(0)=CHR$83:N$(9)=CHR$&4E:N$(8)=CHR$79:N$(1)=CHR$&52:N$(7)=CHR$73:N$(6)=CHR$&54:N$(5)=CHR$&43:ENDPROC 2220 DEF PROCr:N$(2)=CHR$&49:N$(3)=CHR$&47:N$(4)=CHR$72:N$(0)=CHR$83:N$(9)=CHR$&45:N$(8)=CHR$&52:N$(1)=CHR$&4E:N$(7)=CHR$65:N$(6)=CHR$&4D:N$(5)=CHR$&54:ENDPROC 2230 DEF PROCs:N$(2)=CHR$&41:N$(3)=CHR$82:N$(4)=CHR$&4C:N$(0)=CHR$83:N$(9)=CHR$&4E:N$(8)=CHR$73:N$(1)=CHR$&48:N$(7)=CHR$&55:N$(6)=CHR$&51:N$(5)=CHR$&45:ENDPROC 2240 DEF PROCt:N$(2)=CHR$79:N$(3)=CHR$&4D:N$(4)=CHR$80:N$(0)=CHR$89:N$(9)=CHR$&54:N$(8)=CHR$&49:N$(1)=CHR$&43:N$(7)=CHR$&58:N$(6)=CHR$&45:N$(5)=CHR$&4C:ENDPROC 2250 DEF PROCerr 2260 IFERR=17:CLS:PRINT TAB(19,12)"BYE" 2270 *FX 12,0 2280 VDU 23,1,1;0;0;0; 2290 IF ERR<> 17 THEN REPORT:PRINT" at line ";ERL 2300 ENDPROC