10 : 20 : 30 REM"… LOTTERY 40 REM"…Program by Rushden Roy …A 'L Plate' programmer … for public domain on a …Master128 NOVEMBER 94 50 : 60 MODE7 70 VDU23,1,0;0;0;0; 80 ON ERROR PROCerror:END 90 *FX12 100 PROCROY 110 PROCfp 120 PROCspa 125 A%=0:Z%=0:X%=0 130 PROCspg 140 PROCspa 150 *FX11,0 160 seed=RND(-TIME) 170 A%=A% 180 Z%=Z% 190 X%=X% 200 CLEAR 210 scoreA=0 220 tot%=0 230 ran1%=RND(9) 240 ran2%=RND(9):IF ran2%=ran1% GOTO240 250 ran3%=RND(9):IF ran3%=ran2%ORran3%=ran1% GOTO250 260 ran4%=RND(9):IF ran4%=ran3%ORran4%=ran2%ORran4%=ran1% GOTO260 270 PROClayout4 280 VDU23,1,1;0;0;0; 290 PROCinputA 300 PROCchA 310 PROCchB 320 PROCchC 330 VDU23,1,0;0;0;0; 340 PRINTTAB(0,23)CHR$(132)CHR$(157)CHR$(135)" Press SPACE to start the draw " 350 REPEAT UNTIL GET=32 360 PRINTTAB(0,23)STRING$(35," ") 370 PROCballs(0,ran1%,CHR$(131)) 380 PROCballs(7,ran2%,CHR$(133)) 390 PROCballs(14,ran3%,CHR$(129)) 400 PROCballs(21,ran4%,CHR$(130)) 410 PROCrandinorder 420 PRINTTAB(0,23)CHR$(132)CHR$(157)CHR$(135)" Press SPACE to check win or lose " 430 REPEAT UNTIL GET=32 440 PROCshowsc(scoreA,6,"A") 450 PROCshowsc(scoreB,8,"B") 460 PROCshowsc(scoreC,10,"C") 470 PROCgames 480 PRINTTAB(0,23)CHR$(132)CHR$(157)CHR$(135)"SPACE another go. Other key to QUIT" 490 *FX5,1 500 IF GET$<>" " CLS:PROCendprog ELSE GOTO130 510 DEF PROCinputA 520 PRINTTAB(ran1%+20,12-12)CHR$(132)CHR$(46) 530 PRINTTAB(5,18);CHR$(132);CHR$(130)"^" 540 REPEAT:INPUTTAB(3,19)"1st‚A‡No.";num1%:IF num1%<1OR num1%>9:PRINTTAB(11,19)" ":UNTIL num1%>=1 AND num1%<=9 550 PRINTTAB(5,num1%+6)CHR$(134);"/" 560 REPEAT:INPUTTAB(3,20)"2nd‚A‡No.";num2%:IF num2%<1OR num2%>9:PRINTTAB(11,20)" ":UNTIL num2%>=1 AND num2%<=9 570 PRINTTAB(5,num2%+6)CHR$(134);"/" 580 REPEAT:INPUTTAB(3,21)"3rd‚A‡No.";num3%:IF num3%<1OR num3%>9:PRINTTAB(11,21)" ":UNTIL num3%>=1 AND num3%<=9 590 PRINTTAB(5,num3%+6)CHR$(134);"/" 600 REPEAT:INPUTTAB(3,22)"4th‚A‡No.";num4%:IF num4%<1OR num4%>9:PRINTTAB(11,22)" ":UNTIL num4%>=1 AND num4%<=9 610 PRINTTAB(5,num4%+6)CHR$(134);"/" 620 PROCinputB 630 ENDPROC 640 DEF PROCinputB 650 PRINTTAB(ran1%+19,12-12)SPC(3) 660 PROCblankout(19) 670 PRINTTAB(11,18);CHR$(132);CHR$(130)"^" 680 REPEAT:INPUTTAB(9,19)"1st‚B‡No.";num5%:IF num5%<1OR num5%>9:PRINTTAB(16,19)" ":UNTIL num5%>=1 AND num5%<=9 690 PRINTTAB(11,num5%+6)CHR$(134);"/" 700 REPEAT:INPUTTAB(9,20)"2nd‚B‡No.";num6%:IF num6%<1OR num6%>9:PRINTTAB(16,20)" ":UNTIL num6%>=1 AND num6%<=9 710 PRINTTAB(11,num6%+6)CHR$(134);"/" 720 REPEAT:INPUTTAB(9,21)"3rd‚B‡No.";num7%:IF num7%<1OR num7%>9:PRINTTAB(16,21)" ":UNTIL num7%>=1 AND num7%<=9 730 PRINTTAB(11,num7%+6)CHR$(134);"/" 740 REPEAT:INPUTTAB(9,22)"4th‚B‡No.";num8%:IF num8%<1OR num8%>9:PRINTTAB(16,22)" ":UNTIL num8%>=1 AND num8%<=9 750 PRINTTAB(11,num8%+6)CHR$(134);"/" 760 PROCinputC 770 ENDPROC 780 DEF PROCinputC 790 PROCblankout(29) 800 PRINTTAB(17,18);CHR$(132);CHR$(130)"^" 810 REPEAT:INPUTTAB(15,19)"1st‚C‡No.";num9%:IF num9%<1OR num9%>9:PRINTTAB(23,19)" ":UNTIL num9%>=1 AND num9%<=9 820 PRINTTAB(17,num9%+6)CHR$(134);"/" 830 REPEAT:INPUTTAB(15,20)"2nd‚C‡No.";num10%:IF num10%<1OR num10%>9:PRINTTAB(23,20)" ":UNTIL num10%>=1 AND num10%<=9 840 PRINTTAB(17,num10%+6)CHR$(134);"/" 850 REPEAT:INPUTTAB(15,21)"3rd‚C‡No.";num11%:IF num11%<1OR num11%>9:PRINTTAB(23,21)" ":UNTIL num11%>=1 AND num11%<=9 860 PRINTTAB(17,num11%+6)CHR$(134);"/" 870 REPEAT:INPUTTAB(15,22)"4th‚C‡No.";num12%:IF num12%<1OR num12%>9:PRINTTAB(23,22)" ":UNTIL num12%>=1 AND num12%<=9 880 PRINTTAB(17,num12%+6)CHR$(134);"/" 890 PROCblankout(37) 900 ENDPROC 910 DEF PROCchA 920 IF ran1%=num1%ORran1%=num2%ORran1%=num3%ORran1%=num4%:scoreA=scoreA+1 ELSE scoreA=scoreA 930 IF ran2%=num1%ORran2%=num2%ORran2%=num3%ORran2%=num4%: scoreA=scoreA+1 ELSE scoreA=scoreA 940 IF ran3%=num1%ORran3%=num2%ORran3%=num3%ORran3%=num4%: scoreA=scoreA+1 ELSE scoreA=scoreA 950 IF ran4%=num1%ORran4%=num2%ORran4%=num3%ORran4%=num4%: scoreA=scoreA+1 ELSE scoreA=scoreA 960 ENDPROC 970 DEF PROCshowsc(sc,tab,abc$) 980 PRINTTAB(27,tab-1);CHR$(131);" ";abc$" Score" 990 IFsc=0 tot%=tot%+0:PRINTTAB(27,tab);CHR$(131);"0=0 points " 1000 IFsc=1 tot%=tot%+0:PRINTTAB(27,tab);CHR$(131);"1=0 points " 1010 IFsc=2 tot%=tot%+10:PRINTTAB(27,tab);CHR$(131)"2=10 points" 1020 IFsc=3 tot%=tot%+30:PRINTTAB(27,tab);CHR$(131)"3=30 points" 1030 IFsc=4 tot%=tot%+90:SOUND1,-14,30,10:PRINTTAB(26,tab);CHR$(131)CHR$(136)"4=90 points":PRINTTAB(26,11)CHR$(129)CHR$(136)" JACKPOT" 1040 PRINTTAB(27,4)CHR$(131)"YOUR SCORE" 1050 PRINTTAB(27,12)CHR$(131)" Win " 1060 PRINTTAB(28,13)CHR$(131);tot%;" points " 1070 PRINTTAB(27,15)CHR$(131)" Net win" 1080 PRINTTAB(27,16)CHR$(131);tot%-30;" points " 1090 grandtot%=tot%-30 1100 ENDPROC 1110 DEF PROCgames 1120 Z%=Z%+1 1130 PRINTTAB(29,18)CHR$(130)"PLAYED" 1140 IFZ%=1 PRINTTAB(30,19);Z%;" GAME" 1150 IFZ%>1 PRINTTAB(29,19);Z%;" GAMES" 1160 X%=grandtot% 1170 A%=A%+X% 1180 PRINTTAB(30,21);A%" pts." 1190 IFA%=0 PRINTTAB(29,22)CHR$(130)"EVENS" 1200 IFA%<0 PRINTTAB(24,22)CHR$(130)"YOUR'E LOSING!" 1210 IFA%>0 PRINTTAB(24,22)CHR$(130)"YOUR'E WINNING" 1220 A%=A% 1230 ENDPROC 1240 DEF PROCchB 1250 IF ran1%=num5%ORran1%=num6%ORran1%=num7%ORran1%=num8%:scoreB=scoreB+1 ELSE scoreB=scoreB 1260 IF ran2%=num5%ORran2%=num6%ORran2%=num7%ORran2%=num8%: scoreB=scoreB+1 ELSE scoreB=scoreB 1270 IF ran3%=num5%ORran3%=num6%ORran3%=num7%ORran3%=num8%: scoreB=scoreB+1 ELSE scoreB=scoreB 1280 IF ran4%=num5%ORran4%=num6%ORran4%=num7%ORran4%=num8%: scoreB=scoreB+1 ELSE scoreB=scoreB 1290 ENDPROC 1300 DEF PROCchC 1310 IF ran1%=num9%ORran1%=num10%ORran1%=num11%ORran1%=num12%:scoreC=scoreC+1 ELSE scoreC=scoreC 1320 IF ran2%=num9%ORran2%=num10%ORran2%=num11%ORran2%=num12%: scoreC=scoreC+1 ELSE scoreC=scoreC 1330 IF ran3%=num9%ORran3%=num10%ORran3%=num11%ORran3%=num12%: scoreC=scoreC+1 ELSE scoreC=scoreC 1340 IF ran4%=num9%ORran4%=num10%ORran4%=num11%ORran4%=num12%: scoreC=scoreC+1 ELSE scoreC=scoreC 1350 ENDPROC 1360 DEF PROClayout4 1370 CLS 1390 PRINTTAB(0,1)CHR$(132)CHR$(157)CHR$(135)" JACKPOT WINNER?...IT COULD BE YOU." 1400 PRINTTAB(0,2)CHR$(132)CHR$(157)CHR$(135)"Cost of PLAYSLIP 3 X 10 = 30 Points" 1410 PRINTTAB(0,3)CHR$(132)CHR$(157)CHR$(135)"To win, match 2=10, 3=30, 4=90 pts." 1420 PRINTTAB(2,4)CHR$(130)" BOARD BOARD BOARD" 1430 PRINTTAB(3,5)CHR$(151)STRING$(19,CHR$255) 1440 PRINTTAB(3,6)CHR$(151)CHR$(255)" "CHR$(130)"A "CHR$(151)CHR$(255)" "CHR$(130)"B "CHR$(151)CHR$(255)" "CHR$(130)"C "CHR$(151)CHR$(255) 1450 PRINTTAB(3,7)CHR$(151)CHR$(255)CHR$(129)" 1 "CHR$(151)CHR$(255)CHR$(129)" 1 "CHR$(151)CHR$(255)CHR$(129)" 1 "CHR$(151)CHR$(255) 1460 PRINTTAB(3,8)CHR$(151)CHR$(255)CHR$(129)" 2 "CHR$(151)CHR$(255)CHR$(129)" 2 "CHR$(151)CHR$(255)CHR$(129)" 2 "CHR$(151)CHR$(255) 1470 PRINTTAB(3,9)CHR$(151)CHR$(255)CHR$(129)" 3 "CHR$(151)CHR$(255)CHR$(129)" 3 "CHR$(151)CHR$(255)CHR$(129)" 3 "CHR$(151)CHR$(255) 1480 PRINTTAB(3,10)CHR$(151)CHR$(255)CHR$(129)" 4 "CHR$(151)CHR$(255)CHR$(129)" 4 "CHR$(151)CHR$(255)CHR$(129)" 4 "CHR$(151)CHR$(255) 1490 PRINTTAB(3,11)CHR$(151)CHR$(255)CHR$(129)" 5 "CHR$(151)CHR$(255)CHR$(129)" 5 "CHR$(151)CHR$(255)CHR$(129)" 5 "CHR$(151)CHR$(255) 1500 PRINTTAB(3,12)CHR$(151)CHR$(255)CHR$(129)" 6 "CHR$(151)CHR$(255)CHR$(129)" 6 "CHR$(151)CHR$(255)CHR$(129)" 6 "CHR$(151)CHR$(255) 1510 PRINTTAB(3,13)CHR$(151)CHR$(255)CHR$(129)" 7 "CHR$(151)CHR$(255)CHR$(129)" 7 "CHR$(151)CHR$(255)CHR$(129)" 7 "CHR$(151)CHR$(255) 1520 PRINTTAB(3,14)CHR$(151)CHR$(255)CHR$(129)" 8 "CHR$(151)CHR$(255)CHR$(129)" 8 "CHR$(151)CHR$(255)CHR$(129)" 8 "CHR$(151)CHR$(255) 1530 PRINTTAB(3,15)CHR$(151)CHR$(255)CHR$(129)" 9 "CHR$(151)CHR$(255)CHR$(129)" 9 "CHR$(151)CHR$(255)CHR$(129)" 9 "CHR$(151)CHR$(255) 1540 PRINTTAB(3,16)CHR$(151)CHR$(255)" "CHR$(151)CHR$(255)" "CHR$(151)CHR$(255)" "CHR$(151)CHR$(255) 1550 PRINTTAB(3,17)CHR$(151)STRING$(19,CHR$255) 1560 PRINTTAB(0,23)CHR$(132)CHR$(157)CHR$(135)" Type your chosen numbers (1to9)" 1570 ENDPROC 1580 DEF PROCblankout(x) 1590 PRINTTAB(0,18)SPC(x) 1600 PRINTTAB(0,19)SPC(x) 1610 PRINTTAB(0,20)SPC(x) 1620 PRINTTAB(0,21)SPC(x) 1630 PRINTTAB(0,22)SPC(x) 1640 ENDPROC 1650 DEF PROCrandinorder 1660 PRINTTAB(23,ran1%+6)CHR$(133)"<";ran1%;CHR$(135) 1670 PRINTTAB(23,ran2%+6)CHR$(133)"<";ran2%;CHR$(135) 1680 PRINTTAB(23,ran3%+6)CHR$(133)"<";ran3%;CHR$(135) 1690 PRINTTAB(23,ran4%+6)CHR$(133)"<";ran4%;CHR$(135) 1700 ENDPROC 1710 DEF PROCballs(x,r%,c$) 1720 FORa%=1TO9 1730 FORdelay=1TO200:NEXT 1740 PRINTTAB(x,19)c$" :";a%;":" 1750 PRINTTAB(x,20)c$":";a%;":";a%;":" 1760 PRINTTAB(x,21)c$" :";a%;":" 1770 NEXT 1780 PRINTTAB(x,19)c$" :";r%;":" 1790 PRINTTAB(x,20)c$":";r%;":";r%;":" 1800 PRINTTAB(x,21)c$" :";r%;":" 1810 FORdelay=1TO2000:NEXT 1820 ENDPROC 1830 DEF PROCspa 1840 a$=""+CHR$(132)+CHR$(157)+CHR$(135)+"Press SPACE to continue. "+CHR$(156)+CHR$(13):PRINTTAB(5,23)a$ 1850 *FX15,1 1860 REPEAT UNTIL GET=32 1870 ENDPROC 1880 DEFPROCROY 1890 PRINT"“7`+47``57k`5 ````` PROGRAM BY ````````" 1900 PRINT"’5b(55( 5m h%7`+4757`k 7k`57`k 7e757`k" 1910 PRINT"‘uzp5upp5jpz 5( 5555js05 n15bs550!5u0`5" 1920 PRINT"“ppppppppppp upp5u5upp5uzp5upp5u7t5upp5" 1930 PRINT 1940 PRINT"‚ FOR 8-BIT SOFTWARE" 1950 PRINT"‚** ******* **** ** Hedon **** HU12 ***" 1960 ENDPROC 1970 DEF PROCdh(C%,L%,D%,A$) 1980 IF D% A$=CHR$(141)+A$ 1990 X%=(40-LENA$)DIV 2-1 2000 FORY%=L%TOL%+D%:PRINTTAB(X%,Y%);CHR$(128+C%);A$:NEXT 2010 ENDPROC 2020 DEF PROCfp 2030 PROCdh(6,10,1,"LOTTERY.") 2040 PROCdh(6,12,1,"This one is free") 2050 PROCdh(6,14,1,"No money needed") 2060 PROCdh(6,16,1,"(No money won!)") 2070 ENDPROC 2080 DEF PROCspg 2090 CLS 2100 PROCdh(3,1,1,"INFORMATION ") 2110 PROCdh(3,3,1,"----------- ") 2120 PROCdh(6,5,1,"To play the LOTTERY select") 2130 PROCdh(6,7,1,"four numbers (1to9) for each board.") 2140 PROCdh(6,9,1,"You must mark all three boards.") 2150 PROCdh(6,11,1,"Each board cost ten points.") 2160 PROCdh(6,13,1,"Thirty points will be deducted for") 2170 PROCdh(6,15,1,"each draw. The draw will show four") 2180 PROCdh(6,17,1,"winning Nos. Then check your boards") 2190 PROCdh(6,19,1,"to see if you have won, lost or even.") 2200 ENDPROC 2210 DEFPROCerror 2220 REPORT:PRINT" at line ";ERL 2230 *FX12 2235 A%=0:Z%=0:X%=0 2240 VDU23,1,1;0;0;0; 2250 ENDPROC 2260 DEF PROCendprog 2270 VDU23,1,1;0;0;0; 2280 CLS:PRINTTAB(13,10)"BYE FROM ROY" 2290 IFA%<1PRINTTAB(12,11)"SORRY YOU LOST" 2300 IFA%>0PRINTTAB(9,11)"I'M GLAD THAT YOU WON" 2310 *FX12 2320 A%=0:Z%=0:X%=0 2330 END 2340 ENDPROC