1  REM ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM       KENO:  $25,000 KENO GAME
4  REM
5  REM       36244  REV A  -  2/73
6  REM
7  REM ****  CONTRIBUTED PROGRAM  ***********************************
10  DIM D[15],F[20],N[15,15]
20  GOSUB 1370
30  LET T=G=Q=0
40  PRINT TAB(22);"***** $25,000.00 KENO *****"
50  PRINT 
60  PRINT "INSTRUCTIONS (1=YES, 0=NO) ";
70  INPUT A
80  IF A=0 THEN 110
90  IF A#1 THEN 70
100  GOSUB 2020
110  PRINT 
120  PRINT "TABLE OF TICKET PRICES/PAYOFFS ";
130  INPUT A
140  IF A=0 THEN 170
150  IF A#1 THEN 130
160  GOSUB 2750
170  PRINT 
180  PRINT "NUMBER OF LAST GAME PLAYED ";
190  INPUT A
200  IF A<0 OR INT(A)#A THEN 190
210  FOR X=1 TO 30*A
220  LET B=RND(0)
230  NEXT X
240  LET G=A
250  PRINT 
260  PRINT "SUPPRESS NUMBER PRINTOUT ";
270  INPUT A
280  IF A#0 AND A#1 THEN 270
290  LET B=A
300  PRINT 
310  PRINT "HOW MANY SPOTS ";
320  INPUT A
330  IF A#0 THEN 350
340  STOP 
350  PRINT 
360  IF A >= 1 AND A <= 15 AND INT(A)=A THEN 390
370  PRINT "NUMBER MUST BE AN INTEGER FROM 1 TO 15."
380  GOTO 300
390  IF A>1 THEN 420
400  PRINT "ENTER NUMBER ";
410  GOTO 430
420  PRINT "ENTER NUMBERS ";
430  FOR X=1 TO A
440  INPUT D[X]
450  NEXT X
460  FOR X=1 TO A
470  IF D[X] >= 1 AND D[X] <= 80 AND INT(D[X])=D[X] THEN 510
480  PRINT 
490  PRINT "EACH NUMBER MUST BE AN INTEGER FROM 1 TO 80."
500  GOTO 350
510  NEXT X
520  IF A=1 THEN 610
530  FOR X=1 TO A-1
540  FOR Y=X+1 TO A
550  IF D[X]#D[Y] THEN 590
560  PRINT 
570  PRINT "EACH NUMBER MUST BE UNIQUE."
580  GOTO 350
590  NEXT Y
600  NEXT X
610  PRINT 
620  PRINT "BET ";
630  INPUT E
640  IF E >= 0 THEN 680
650  PRINT 
660  PRINT "BET IS NOT A MULTIPLE OF BASIC TICKET RATE."
670  GOTO 610
680  IF E <= 25000 THEN 720
690  PRINT 
700  PRINT "BET LIMIT: $25,000.00"
710  GOTO 610
720  LET P=0
730  LET E=INT(100*E+.5)
740  IF A=9 THEN 770
750  IF INT(E/60)*60#E THEN 650
760  GOTO 790
770  IF INT(E/40)*40#E THEN 750
780  LET P=1
790  FOR X=1 TO 20
800  LET F[X]=INT(80*RND(0)+1)
810  NEXT X
820  FOR X=1 TO 19
830  FOR Y=X+1 TO 20
840  IF F[X]#F[Y] THEN 870
850  LET F[Y]=INT(80*RND(0)+1)
860  GOTO 820
870  NEXT Y
880  NEXT X
890  LET G=G+1
900  PRINT 
910  IF B=0 THEN 940
920  PRINT "GAME NO. ";G
930  GOTO 970
940  PRINT "*************************** GAME NO.   ";G;
950  PRINT "***************************"
960  PRINT 
970  LET L=0
980  FOR X=1 TO 20
990  FOR Y=1 TO A
1000  IF F[X]#D[Y] THEN 1050
1010  LET L=L+1
1020  IF B=1 THEN 1080
1030  PRINT "   *";F[X],
1040  GOTO 1080
1050  NEXT Y
1060  IF B=1 THEN 1080
1070  PRINT "    ";F[X],
1080  NEXT X
1090  IF B=1 THEN 1140
1100  PRINT 
1110  PRINT 
1120  PRINT "************************************";
1130  PRINT "************************************"
1140  IF L#0 THEN 1170
1150  LET Q=0
1160  GOTO 1200
1170  LET Q=(E/60)*INT(100*N[A,L]+.5)
1180  IF P#1 THEN 1200
1190  LET Q=(E/40)*INT(100*R[L]+.5)
1200  PRINT 
1210  IF Q#0 THEN 1240
1220  PRINT "NO PAYOFF"
1230  GOTO 1300
1240  IF Q <= 2.5E+06 THEN 1260
1250  LET Q=2.5E+06
1260  IF L=1 THEN 1290
1270  PRINT L;"SPOTS OUT OF";A;"PAYS $";Q/100
1280  GOTO 1300
1290  PRINT L;"SPOT OUT OF";A;"PAYS $";Q/100
1300  PRINT 
1310  LET T=T+(Q-E)
1320  IF T<0 THEN 1350
1330  PRINT "TOTAL WINNINGS: $";T/100
1340  GOTO 300
1350  PRINT "TOTAL LOSSES: $";ABS(T/100)
1360  GOTO 300
1370  FOR X=1 TO 15
1380  FOR Y=1 TO 15
1390  LET N[X,Y]=0
1400  NEXT Y
1410  NEXT X
1420  LET N[6,3]=.35
1430  LET N[5,3]=N[12,5]=.5
1440  LET N[3,2]=N[4,2]=N[7,4]=.6
1450  LET N[13,6]=N[15,6]=1
1460  LET N[10,5]=1.2
1470  LET N[1,1]=1.8
1490  LET N[6,4]=N[9,5]=N[14,6]=2
1500  LET N[4,3]=2.5
1510  LET N[12,6]=3
1520  LET N[5,4]=N[8,5]=N[14,7]=N[15,7]=5
1530  LET N[11,6]=6
1540  LET N[2,2]=7.5
1550  LET N[13,7]=10
1560  LET N[7,5]=N[10,6]=12
1570  LET N[15,8]=14
1580  LET N[12,7]=18
1590  LET N[14,8]=20
1600  LET N[3,3]=26
1610  LET N[9,6]=30
1620  LET N[8,6]=N[11,7]=N[13,8]=N[15,9]=50
1630  LET N[6,5]=60
1640  LET N[4,4]=70
1650  LET N[10,7]=90
1660  LET N[12,8]=130
1670  LET N[15,10]=150
1680  LET N[14,9]=160
1690  LET N[9,7]=175
1700  LET N[7,6]=245
1710  LET N[11,8]=250
1720  LET N[12,9]=375
1730  LET N[13,9]=450
1740  LET N[14,10]=500
1750  LET N[5,5]=535
1760  LET N[10,8]=660
1770  LET N[12,10]=900
1780  LET N[8,7]=1100
1790  LET N[11,9]=1200
1800  LET N[6,6]=1250
1810  LET N[14,11]=N[15,11]=1500
1820  LET N[10,9]=N[13,10]=2400
1830  LET N[9,8]=3000
1840  LET N[13,11]=4500
1850  LET N[12,11]=N[14,12]=N[15,12]=5000
1860  LET N[7,7]=5500
1870  LET N[11,10]=7500
1880  LET N[13,12]=10000
1890  LET N[10,10]=12000
1900  LET N[8,8]=N[9,9]=N[11,11]=12500
1910  LET N[14,13]=N[15,13]=15000
1920  LET N[15,14]=20000
1930  LET N[12,12]=N[13,13]=N[14,14]=N[15,15]=25000
1940  LET R[1]=R[2]=R[3]=0
1950  LET R[4]=.2
1960  LET R[5]=2
1970  LET R[6]=18
1980  LET R[7]=112
1990  LET R[8]=1100
2000  LET R[9]=7500
2010  RETURN 
2020  PRINT 
2030  PRINT TAB(27)"KENO INSTRUCTIONS"
2040  PRINT TAB(27)"-----------------"
2050  PRINT 
2060  PRINT "DURING EACH GAME OF KENO, TWENTY NUM";
2070  PRINT "BERS FROM 1 TO 80 ARE SELECTED AT"
2080  PRINT "RANDOM BY THE COMPUTER.  PRIOR TO EA";
2090  PRINT "CH GAME, THE PLAYER MAY CHOOSE FROM"
2100  PRINT "ONE TO FIFTEEN NUMBERS, OR 'SPOTS' H";
2110  PRINT "E THINKS WILL BE SELECTED DURING THE"
2120  PRINT "GAME.  THE PLAYER ENTERS, OR 'MARKS'";
2130  PRINT " THE DESIRED SPOTS AND PLACES A BET."
2140  PRINT "AT THE END OF EACH GAME, THE SPOTS M";
2150  PRINT "ARKED BY THE PLAYER ARE COMPARED"
2160  PRINT "WITH THE TWENTY NUMBERS SELECTED BY ";
2170  PRINT "THE COMPUTER AND THE PAYOFF IS"
2180  PRINT "COMPUTED ACCORDINGLY."
2190  PRINT 
2200  PRINT "HOW TO PLAY"
2210  PRINT "-----------"
2220  PRINT 
2230  PRINT "FOLLOWING ARE MESSAGES TYPED BY THE ";
2240  PRINT "PROGRAM WITH EXPLANATIONS OF THE"
2250  PRINT "RESPONSES EXPECTED."
2260  PRINT 
2270  PRINT TAB(3)"MESSAGE:   HOW MANY SPOTS ?"
2280  PRINT TAB(3)"RESPONSE:  ENTER A NUMBER FROM 1 ";
2290  PRINT "TO 15.  ENTER 0 TO TERMINATE GAME."
2300  PRINT 
2310  PRINT TAB(3)"MESSAGE:   ENTER NUMBERS ?"
2320  PRINT TAB(3)"RESPONSE:  ENTER EACH NUMBER (FRO";
2330  PRINT "M 1 TO 80) FOLLOWED BY PRESSING THE"
2340  PRINT TAB(15)"'RETURN' KEY."
2350  PRINT 
2360  PRINT TAB(3)"MESSAGE:   BET ?"
2370  PRINT TAB(3)"RESPONSE:  A BET MAY BE ANY MULTI";
2380  PRINT "PLE OF THE BASIC TICKET RATE.  THE"
2390  PRINT TAB(15)"BASIC RATE FOR ALL TI";
2400  PRINT "CKETS IS $ .60.  BETS FOR 9-SPOT"
2410  PRINT TAB(15)"TICKETS MAY BE MULTIP";
2420  PRINT "LES OF $ .60 OR $ .40.  A ZERO BET"
2430  PRINT TAB(15)"MAY BE ENTERED TO ";
2440  PRINT "OBSERVE A GAME WITHOUT FINANCIAL"
2450  PRINT TAB(15)"RISK."
2460  PRINT 
2470  PRINT "PROGRAM OPTIONS"
2480  PRINT "---------------"
2490  PRINT 
2510  PRINT " BEGINNING OF THE PROGRAM."
2520  PRINT 
2530  PRINT TAB(3)"MESSAGE:   TABLE OF TICKET PRICES";
2540  PRINT "/PAYOFFS ?"
2550  PRINT TAB(3)"RESPONSE:  ENTER 1 FOR YES OR 0 FOR NO."
2560  PRINT 
2570  PRINT TAB(3)"MESSAGE:   NUMBER OF LAST GAME PLAYED ?"
2580  PRINT TAB(3)"RESPONSE:  EACH GAME IS NUMBERED.";
2590  PRINT "  IF THE PROGRAM IS RESTARTED, ENTER"
2600  PRINT TAB(15)"THE NUMBER OF THE LAS";
2610  PRINT "T GAME PLAYED.  IF THIS IS THE FIRST"
2620  PRINT TAB(15)"TIME YOU HAVE USED TH";
2630  PRINT "E PROGRAM, ENTER 0."
2640  PRINT 
2650  PRINT TAB(3)"MESSAGE:   SUPPRESS NUMBER PRINTOUT ?"
2660  PRINT TAB(3)"RESPONSE:  THE TWENTY NUMBERS SEL";
2670  PRINT "ECTED BY THE COMPUTER FOR EACH GAME"
2680  PRINT TAB(15)"ARE NORMALLY PRINTED.";
2690  PRINT "  THIS PRINTOUT MAY BE SUPPRESSED TO"
2700  PRINT TAB(15)"MAKE THE GAMES GO FAS";
2710  PRINT "TER.  REPLY WITH 1 FOR YES OR 0 FOR "
2720  PRINT TAB(15)"NO."
2730  PRINT 
2740  RETURN 
2750  PRINT 
2760  PRINT TAB(23)"KENO TICKET PRICES/PAYOFFS"
2770  PRINT TAB(23)"--------------------------"
2780  PRINT 
2790  LET X=0
2800  GOSUB 3270
2810  PRINT "1"TAB(11)"1.80"TAB(19)"2"TAB(30)"7.50"TAB(38)"2"TAB(50);
2820  PRINT ".60"TAB(57)"2"TAB(69)".60"
2830  PRINT TAB(38)"3"TAB(48)"26.00"TAB(57)"3"TAB(68)"2.50"
2840  PRINT TAB(57)"4"TAB(67)"70.00"
2850  GOSUB 3270
2860  PRINT "3"TAB(12)".50"TAB(19)"3"TAB(31)".35"TAB(38)"4"TAB(50)".60";
2870  PRINT TAB(57)"5"TAB(68)"5.00"
2880  PRINT "4"TAB(11)"5.00"TAB(19)"4"TAB(30)"2.00"TAB(38)"5"TAB(48);
2890  PRINT "12.00"TAB(57)"6"TAB(67)"50.00"
2900  PRINT "5"TAB(9)"535.00"TAB(19)"5"TAB(29)"60.00"TAB(38);
2910  PRINT "6"TAB(47)"245.00"TAB(57)"7"TAB(64)"1,100.00"
2920  PRINT TAB(19)"6"TAB(26)"1,250.00"TAB(38)"7"TAB(45)"5,500.00";
2930  PRINT TAB(57)"8"TAB(63)"12,500.00"
2940  GOSUB 3270
2950  PRINT "4"TAB(12)".20"TAB(19)"5"TAB(30)"2.00"TAB(38)"5"TAB(49);
2960  PRINT "1.20"TAB(57)"6"TAB(68)"6.00"
2970  PRINT "5"TAB(11)"2.00"TAB(19)"6"TAB(29)"30.00"TAB(38);
2980  PRINT "6"TAB(48)"12.00"TAB(57)"7"TAB(67)"50.00"
2990  PRINT "6"TAB(10)"18.00"TAB(19)"7"TAB(28)"175.00"TAB(38)"7";
3000  PRINT TAB(48)"90.00"TAB(57)"8"TAB(66)"250.00"
3010  PRINT "7"TAB(9)"112.00"TAB(19)"8"TAB(26)"3,000.00"TAB(38)"8";
3020  PRINT TAB(47)"660.00"TAB(57)"9"TAB(64)"1,200.00"
3030  PRINT "8"TAB(7)"1,100.00"TAB(19)"9"TAB(25)"12,500.00"TAB(38);
3040  PRINT "9"TAB(45)"2,400.00"TAB(57)"10"TAB(64)"7,500.00"
3050  PRINT "9"TAB(7)"7,500.00"TAB(38)"10"TAB(44)"12,000.00";
3060  PRINT TAB(57)"11"TAB(63)"12,500.00"
3070  GOSUB 3270
3080  PRINT "5"TAB(12)".50"TAB(19)"6"TAB(30)"1.00"TAB(38)"6"TAB(49);
3090  PRINT "2.00"TAB(57)"6"TAB(68)"1.00"
3100  PRINT "6"TAB(11)"3.00"TAB(19)"7"TAB(29)"10.00"TAB(38)"7";
3110  PRINT TAB(49)"5.00"TAB(57)"7"TAB(68)"5.00"
3120  PRINT "7"TAB(10)"18.00"TAB(19)"8"TAB(29)"50.00"TAB(38)"8";
3130  PRINT TAB(48)"20.00"TAB(57)"8"TAB(67)"14.00"
3140  PRINT "8"TAB(9)"130.00"TAB(19)"9"TAB(28)"450.00"TAB(38)"9";
3150  PRINT TAB(47)"160.00"TAB(57)"9"TAB(67)"50.00"
3160  PRINT "9"TAB(9)"375.00"TAB(19)"10"TAB(26)"2,400.00"TAB(38);
3170  PRINT "10"TAB(47)"500.00"TAB(57)"10"TAB(66)"150.00"
3180  PRINT "10"TAB(9)"900.00"TAB(19)"11"TAB(26)"4,500.00"TAB(38);
3190  PRINT "11"TAB(45)"1,500.00"TAB(57)"11"TAB(64)"1,500.00"
3200  PRINT "11"TAB(7)"5,000.00"TAB(19)"12"TAB(25)"10,000.00";
3210  PRINT TAB(38)"12"TAB(45)"5,000.00"TAB(57)"12"TAB(64)"5,000.00"
3220  PRINT "12"TAB(6)"25,000.00"TAB(19)"13"TAB(25)"25,000.00";
3230  PRINT TAB(38)"13"TAB(44)"15,000.00"TAB(57)"13"TAB(63)"15,000.00"
3240  PRINT TAB(38)"14"TAB(44)"25,000.00"TAB(57)"14"TAB(63)"20,000.00"
3250  PRINT TAB(57)"15"TAB(63)"25,000.00"
3260  RETURN 
3270  FOR Y=1 TO 4
3280  PRINT 
3290  NEXT Y
3300  LET X=X+4
3310  IF X=12 THEN 3380
3320  PRINT "MARK";X-3;"SPOTS"TAB(19)"MARK";X-2;"SPOTS"TAB(38)"MARK";
3330  PRINT X-1;"SPOTS"TAB(57)"MARK";X;"SPOTS"
3340  PRINT "SPOTS  .60 PAYS"TAB(19)"SPOTS  .60 PAYS"TAB(38);
3350  PRINT "SPOTS  .60 PAYS"TAB(57)"SPOTS  .60 PAYS"
3360  PRINT 
3370  RETURN 
3380  PRINT "MARK";X-3;"SPOTS"TAB(19)"MARK";X-3;"SPOTS"TAB(38)"MARK";
3390  PRINT X-2;"SPOTS"TAB(57)"MARK";X-1;"SPOTS"
3400  PRINT "SPOTS  .40 PAYS"TAB(19)"SPOTS  .60 PAYS"TAB(38);
3410  PRINT "SPOTS  .60 PAYS"TAB(57)"SPOTS  .60 PAYS"
3420  PRINT 
3430  LET X=X-1
3440  RETURN 
3450  END 
