1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        ROULET:   ROULETTE
4  REM
5  REM        36650 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  REM     THIS PROGRAM WAS WRITTEN BY GLEN COPELAND
20  REM
30  REM     ROULETTE: SIMULATION SPINNING OF A ROULETTE WHEEL
40  REM
50  REM     DATE COMPLETED: 2/26/73
60  REM *****************************************************************
70  DIM A$[10],F$[10],N$[10],Z$[10],A[30]
75  DIM H$[10]
80  LET S=-1
90  PRINT "WELCOME TO THE OAKLAND JR. HIGH GAMBLING CASINO."
100  PRINT "TODAY WE ARE GOING TO PAY A VISIT TO THE ROULETTE WHEEL"'10
110  PRINT "DO YOU WANT INSTRUCTIONS";
120  INPUT A$
130  PRINT 
140  IF A$="YES" THEN 180
150  IF A$="NO" THEN 1220
160  PRINT "ANSWER 'YES' OR 'NO'"
170  GOTO 110
180  PRINT "THIS PROGRAM PLAYS ROULETTE. IN A GAME OF ROULETTE YOU SPIN"
190  PRINT "A ROULETTE WHEEL, WHICH HAS NUMBERS (1-36) SCATTERED THROUGHT"
200  PRINT "THE WHEEL AND THE COLORS RED, BLACK, AND GREEN. (THERE ARE 2"
210  PRINT "EXTRA NUMBERS ON A ROULETTE WHEEL WHICH ARE 0 AND 00. THESE 2"
220  PRINT "NUMBERS ARE THE ONLY 2 THAT HAVE GREEN IN THE SLOT ABOVE THEM)"
230  PRINT "WHILE THE WHEEL IS SPINNING, A METAL BALL IS ROLLING IN THE OPPOSITE"
240  PRINT "DIRECTION (ON THE OUTSIDE PART OF THE WHEEL) UNTIL IT IS ROLLING"
250  PRINT "TOO SLOWLY TO STAY UP SO, IT FALLS IN ONE OF THE SLOTS ABOVE THE"
260  PRINT "NUMBERS."
270  PRINT "THE COMPUTER WILL SPIN THE WHEEL 10 TIMES AND THEN ASK"
280  PRINT "IF YOU WANT TO SPIN IT 10 MORE TIMES"
290  PRINT "IF YOU WANT TO QUIT EARLY TYPE IN 0 OR A NEGATIVE NUMBER"
300  PRINT "WHEN ASKED FOR THE AMOUNT YOU WANT TO BET."
310  PRINT "BE CAREFUL!! IF YOU RUN OUT OF MONEY YOU LOOSE(HA!HA!)"
320  PRINT "AND I WILL QUIT"
330  PRINT "HERE IS THE BETTING TABLE"
340  PRINT "THE LETTERS 'RD','BL','R', AND 'B' INDICATE IF THE NUMBER"
350  PRINT "IS RED OR BLACK"
360  PRINT TAB(26)"*******************"
370  PRINT TAB(26)"*        *        *"
380  PRINT TAB(26)"*    0   *   00   *"
390  PRINT TAB(26)"*        *        *"
400  PRINT TAB(20)"*******************************"
410  PRINT TAB(20)"*     *     *     *     *     *"
420  PRINT TAB(20)"*  1  * 1RD * 2BL * 3RD * 19  *"
430  PRINT TAB(20)"*     *     *     *     *     *"
440  PRINT TAB(20)"* TO  ******************* TO  *"
450  PRINT TAB(20)"*     *     *     *     *     *"
460  PRINT TAB(20)"* 18  * 4BL * 5RD * 6BL * 36  *"
470  PRINT TAB(20)"*     *     *     *     *     *"
480  PRINT TAB(20)"*******************************"
490  PRINT TAB(20)"*     *     *     *     *     *"
500  PRINT TAB(20)"*  1  * 7RD * 8BL * 9RD *  1  *"
510  PRINT TAB(20)"*     *     *     *     *     *"
520  PRINT TAB(20)"* TO  ******************* TO  *"
530  PRINT TAB(20)"*     *     *     *     *     *"
540  PRINT TAB(20)"* 12  * 10B * 11B * 12R * 18  *"
550  PRINT TAB(20)"*     *     *     *     *     *"
560  PRINT TAB(14)"*******************************************"
570  PRINT TAB(14)"*     *     *     *     *     *     *     *"
580  PRINT TAB(14)"*     *     * 13B * 14R * 15B *     *     *"
590  PRINT TAB(14)"*     *     *     *     *     *     *     *"
600  PRINT TAB(14)"*     *     *******************     *     *"
610  PRINT TAB(14)"*     *     *     *     *     *     *     *"
620  PRINT TAB(14)"*  B  * 13  * 16R * 17B * 18R * 13  *     *"
630  PRINT TAB(14)"*  L  *     *     *     *     *     *  R  *"
640  PRINT TAB(14)"*  A  * TO  ******************* TO  *  E  *"
650  PRINT TAB(14)"*  C  *     *     *     *     *     *  D  *"
660  PRINT TAB(14)"*  K  * 24  * 19R * 20B * 21R * 24  *     *"
670  PRINT TAB(14)"*     *     *     *     *     *     *     *"
680  PRINT TAB(14)"*     *     *******************     *     *"
690  PRINT TAB(14)"*     *     *     *     *     *     *     *"
700  PRINT TAB(14)"*     *     * 22B * 23R * 24B *     *     *"
710  PRINT TAB(14)"*     *     *     *     *     *     *     *"
720  PRINT TAB(14)"*******************************************"
730  PRINT TAB(20)"*     *     *     *     *     *"
740  PRINT TAB(20)"* 25  * 25R * 26B * 27R * 25  *"
750  PRINT TAB(20)"*     *     *     *     *     *"
760  PRINT TAB(20)"* TO  ******************* TO  *"
770  PRINT TAB(20)"*     *     *     *     *     *"
780  PRINT TAB(20)"* 36  * 28B * 29B * 30R * 36  *"
790  PRINT TAB(20)"*     *     *     *     *     *"
800  PRINT TAB(20)"*******************************"
810  PRINT TAB(20)"*     *     *     *     *     *"
820  PRINT TAB(20)"*  E  * 31B * 32R * 33B *     *"
830  PRINT TAB(20)"*  V  *     *     *     *  O  *"
840  PRINT TAB(20)"*  E  *******************  D  *"
850  PRINT TAB(20)"*  N  *     *     *     *  D  *"
860  PRINT TAB(20)"*     * 34R * 35B * 36R *     *"
870  PRINT TAB(20)"*     *     *     *     *     *"
880  PRINT TAB(20)"*******************************"
890  PRINT TAB(26)"*     *     *     *"
900  PRINT TAB(26)"* COL.* COL.* COL.*"
910  PRINT TAB(26)"*     *     *     *"
920  PRINT TAB(26)"* #1  * #2  * #3  *"
930  PRINT TAB(26)"*     *     *     *"
940  PRINT TAB(26)"*******************"
950  PRINT '10'10'10
960  PRINT "YOU CAN BET 1 OUT OF 12 WAYS. THE CHOICES ARE:"
970  PRINT "(1)  YOU CAN BET ON 1 NUMBER"
980  PRINT "(2)  YOU CAN BET ON ANY COLOR"
990  PRINT "(3)  YOU CAN BET ON AN ODD OR EVEN NUMBER"
1000  PRINT "(4)  YOU CAN BET ON HIGHS OR LOWS (EXPLAINED LATER)"
1010  PRINT "(5)  YOU CAN BET ON 2 NUMBERS (AT THE SAME TIME)"
1020  PRINT "(6)  YOU CAN BET ON 3 NUMBERS (TOUCHING)"
1030  PRINT "(7)  YOU CAN BET ON 4 NUMBERS (IN A SQUARE)"
1040  PRINT "(8)  YOU CAN BET ON 5 NUMBERS (TRANSVERSE LINE ACROSS)"
1050  PRINT "(9)  YOU CAN BET ON 6 NUMBERS (2 ROWS ACROSS)"
1060  PRINT "(10) YOU CAN BET ON 24 NUMBERS (TOUCHING)"
1070  PRINT "(11) YOU CAN BET ON COLUMN #1,#2, OR #3 (SEE TABLE ABOVE)"
1080  PRINT "(12) YOU CAN BET ON THE NUMBER TURNING UP BETWEEN"
1090  PRINT "1-12,1-18,13-24,19-36, OR 25-36 INCLUSIVE"
1100  PRINT 
1110  PRINT "IF YOU BET ON HIGHS THE BALL MUST LAND IN A SLOT THAT HAS A"
1120  PRINT "NUMBER GREATER THAN 18. IF YOU BET ON LOWS THE BALL MUST"
1130  PRINT "LAND ON 18 OR SMALLER"
1140  PRINT '10"NOTE: IF YOU BET ON ODDS, EVENS, HIGHS, OR LOWS THE NUMBERS"
1150  PRINT "0 AND 00 DONT COUNT (IF THE BALL LANDS ON 1 OF THEM YOU LOOSE)"
1160  PRINT '10"ALSO,WHEN BETTING ON MORE THAN 1 NUMBER,IF YOU"
1170  PRINT "WANT 00 TYPE IN A -1 AS 1 OF YOUR NUMBERS YOU ARE BETTING ON"
1180  PRINT '10"WHEN ASKED FOR MORE THAN 1 NUMBER, TYPE IN THE NUMBERS"
1190  PRINT "SEPERATED BY COMMAS"
1200  PRINT '10"REMEMBER: THE MORE NUMBERS YOU BET ON"
1210  PRINT "AT THE SAME TIME, THE LOWER THE ODDS"
1220  PRINT 
1230  PRINT "************************************************************************"
1240  PRINT 
1250  PRINT "HOW MUCH MONEY DO YOU HAVE WITH YOU TODAY";
1260  INPUT T
1270  T1=T
1280  PRINT 
1290  S=S+1
1300  IF S=0 THEN 1320
1310  IF S/10=INT(S/10) THEN 2300
1320  PRINT '10"HOW MUCH MONEY DO YOU WANT TO BET THIS TIME";
1330  INPUT B
1340  IF B <= 0 THEN 2370
1350  IF B>T THEN 1370
1360  GOTO 1390
1370  PRINT "THINK AGAIN! YOU ONLY HAVE"T"DOLLARS"
1380  GOTO 1320
1390  PRINT 
1400  GOSUB 1570
1410  PRINT '10"I WILL NOW SPIN THE WHEEL"'10
1420  A$="00"
1430  X=INT(RND(0)*40)
1440  IF X<1 OR X>38 THEN 1430
1450  FOR Y=1 TO X
1460  READ S1
1470  NEXT Y
1480  RESTORE 
1490  IF S1=-1 THEN 1510
1500  GOTO 1550
1510  PRINT "THE NUMBER IS "A$" THE COLOR IS ";
1520  PRINT "GREEN"'10
1530  PRINT 
1540  GOTO Z OF 1980,2070,1990,1990,2530,2610,2720,2850,2980,3110,1990,1990
1550  PRINT "THE NUMBER IS"S1"THE COLOR IS ";
1560  GOTO 2140
1570  PRINT "WHAT METHOD OF BETTING DO YOU PREFER";
1580  INPUT Z
1590  IF Z<1 OR Z>12 THEN 1620
1600  GOSUB Z OF 1640,1710,1790,1860,2470,2550,2630,2760,2890,3020,3150,3320
1610  RETURN 
1620  PRINT "TYPE IN THE NUMBER OF THE METHOD YOU PREFER (1-12)"
1630  GOTO 1580
1640  PRINT "WHAT NUMBER DO YOU WANT TO PLACE YOUR BET ON";
1650  PRINT "(IF YOU WANT 00 TYPE IN A -1)"
1660  INPUT N
1670  IF N<-1 OR N>36 THEN 1690
1680  RETURN 
1690  PRINT "TYPE IN YOUR NUMBER (-1 TO 36) "
1700  GOTO 1640
1710  PRINT "WHAT COLOR DO YOU WANT";
1720  INPUT Z$
1730  IF Z$="RED" THEN 1760
1740  IF Z$="GREEN" THEN 1760
1750  IF Z$#"BLACK" THEN 1770
1760  RETURN 
1770  PRINT "YOU HAVE A CHOICE OF 'RED' OR 'BLACK' OR 'GREEN'"
1780  GOTO 1710
1790  PRINT "DO YOU WANT 'ODDS' OR 'EVENS'";
1800  INPUT N$
1810  IF N$="ODDS" THEN 1830
1820  IF N$#"EVENS" THEN 1840
1830  RETURN 
1840  PRINT "TYPE IN 'ODDS' OR 'EVENS'"
1850  GOTO 1790
1860  PRINT "DO YOU WANT HIGHS OR LOWS";
1870  INPUT H$
1880  IF H$="HIGHS" THEN 1920
1890  IF H$="LOWS" THEN 1920
1900  PRINT "TYPE IN 'HIGHS' OR 'LOWS'"
1910  GOTO 1860
1920  RETURN 
1930  IF H$="HIGHS" THEN 1960
1940  IF S1>18 THEN 1990
1950  GOTO 3600
1960  IF S1 <= 18 THEN 1990
1970  GOTO 3600
1980  IF S1=N THEN 3600
1990  PRINT "YOU LOOSE(HA!HA!)YOU JUST LOST"B"DOLLARS"
2000  T=T-B
2010  GOTO 2040
2020  PRINT "YOU NOW HAVE "T"DOLLARS"
2030  GOTO 1290
2040  PRINT "YOU HAVE "T"DOLLARS LEFT"
2050  IF T <= 0 THEN 2260
2060  GOTO 1290
2070  IF Z$="GREEN" THEN 3600
2080  GOTO 1990
2090  IF N$="ODDS" THEN 2120
2100  IF S1/2=INT(S1/2) THEN 3600
2110  GOTO 1990
2120  IF S1/2#INT(S1/2) THEN 3600
2130  GOTO 1990
2140  IF S1=0 THEN 1520
2150  IF S1=1 OR S1=3 OR S1=5 OR S1=7 OR S1=9 OR S1=12 OR S1=14 THEN 2200
2160  IF S1=16 OR S1=19 OR S1=18 OR S1=21 OR S1=23 OR S1=25 OR S1=27 THEN 2200
2170  IF S1=30 OR S1=32 OR S1=34 OR S1=36 THEN 2200
2180  PRINT "BLACK"'10
2190  GOTO Z OF 1980,2240,2090,1930,2530,2610,2720,2850,2980,3110,3220,3440
2200  PRINT "RED"'10
2210  GOTO Z OF 1980,2220,2090,1930,2530,2610,2720,2850,2980,3110,3220,3440
2220  IF Z$="RED" THEN 3600
2230  GOTO 1990
2240  IF Z$="BLACK" THEN 3600
2250  GOTO 1990
2260  PRINT "YOU JUST RAN OUT OF MONEY SO I AM GOING TO QUIT"
2270  DATA 11,1,7,8,2,23,32,26,27,20,10,14,3,35,31,22,5,-1
2280  DATA 17,34,21,12,36,18,24,19,4,29,15,9,28,16,30,33,6,13,25,0
2290  STOP 
2300  PRINT 
2310  PRINT '10"DO YOU WANT TO SPIN THE WHEEL 10 MORE TIMES";
2320  INPUT A$
2330  IF A$="YES" THEN 1320
2340  IF A$="NO" THEN 2370
2350  PRINT "TYPE IN A 'YES' OR A 'NO'"
2360  GOTO 2310
2370  PRINT 
2380  PRINT "AFTER COMING WITH"T1"DOLLARS AND SPINNING THE WHEEL"S
2390  PRINT "TIMES YOU LEAVE WITH"T"DOLLARS"
2400  PRINT 
2410  PRINT "************************************************************************"
2420  PRINT TAB(25)"COME BACK SOON"
2430  PRINT "************************************************************************"
2440  PRINT TAB(23)"HOPE YOU HAD FUN!!"'7'7'7'7'7'7'7'7'7'7
2450  PRINT "************************************************************************"
2460  STOP 
2470  PRINT "WHAT 2 NUMBERS DO YOU WANT"
2480  INPUT A,C
2490  IF (A<-1 OR A>36) OR (C<-1 OR C>36) THEN 2510
2500  RETURN 
2510  PRINT "TYPE IN YOUR 2 NUMBERS (-1 TO 36)"
2520  GOTO 2470
2530  IF S1=A OR S1=C THEN 3600
2540  GOTO 1990
2550  PRINT "WHAT 3 NUMBERS DO YOU WANT TO BET ON"
2560  INPUT D,E,F
2570  IF (D<-1 OR D>36) OR (E<-1 OR E>36) OR (F<-1 OR F>36) THEN 2590
2580  RETURN 
2590  PRINT "USE NUMBERS BETWEEN -1 AND 36 INCLUSIVE"
2600  GOTO 2550
2610  IF D=S1 OR E=S1 OR F=S1 THEN 3600
2620  GOTO 1990
2630  PRINT "WHAT 4 NUMBERS DO YOU WANT TO BET ON"
2640  MAT  INPUT A[4]
2650  FOR Z9=1 TO 4
2660  IF A[Z9]<-1 OR A[Z9]>36 THEN 2690
2670  NEXT Z9
2680  GOTO 2710
2690  PRINT "TYPE IN YOUR 4 NUMBERS (-1 TO 36 INCLUSIVE)"
2700  GOTO 2630
2710  RETURN 
2720  FOR X9=1 TO 4
2730  IF S1=A[X9] THEN 3600
2740  NEXT X9
2750  GOTO 1990
2760  PRINT "WHAT 5 NUMBERS DO YOU WANT TO BET ON"
2770  MAT  INPUT A[5]
2780  FOR Z9=1 TO 5
2790  IF A[Z9]<-1 OR A[Z9]>36 THEN 2820
2800  NEXT Z9
2810  GOTO 2840
2820  PRINT "YOUR LIMITS FOR NUMBERS TO USE ARE -1 TO 36 (INCLUSIVE)"
2830  GOTO 2760
2840  RETURN 
2850  FOR X9=1 TO 5
2860  IF S1=A[X9] THEN 3600
2870  NEXT X9
2880  GOTO 1990
2890  PRINT "WHAT 6 NUMBERS DO YOU WANT TO BET ON"
2900  MAT  INPUT A[6]
2910  FOR Z9=1 TO 6
2920  IF A[Z9]<-1 OR A[Z9]>36 THEN 2950
2930  NEXT Z9
2940  GOTO 2970
2950  PRINT "TYPE IN NUMBERS BETWEEN -1 AND 36 INCLUSIVE"
2960  GOTO 2890
2970  RETURN 
2980  FOR X9=1 TO 6
2990  IF S1=A[X9] THEN 3600
3000  NEXT X9
3010  GOTO 1990
3020  PRINT "TYPE IN THE 24 NUMBERS YOU WANT TO BET ON"
3030  MAT  INPUT A[24]
3040  FOR Z9=1 TO 24
3050  IF A[Z9]<-1 OR A[Z9]>36 THEN 3080
3060  NEXT Z9
3070  GOTO 3100
3080  PRINT "USE NUMBERS BETWEEN -1 AND 36 INCLUSIVE"
3090  GOTO 3020
3100  RETURN 
3110  FOR X9=1 TO 24
3120  IF A[X9]=S1 THEN 3600
3130  NEXT X9
3140  GOTO 1990
3150  PRINT "WHAT 2 COLUMNS DO YOU WANT (IF YOU WANT JUST 1 COLUMN TYPE IN THE "
3160  PRINT "NUMBER OF THE 1 COLUMN YOU WANT TWICE, EXAMPLE: 1,1)"
3170  INPUT A3,B3
3180  IF (A3<1 OR A3>3) OR (B3<1 OR B3>3) THEN 3200
3190  RETURN 
3200  PRINT " YOU HAVE A CHOICE OF COLUMN #1,#2,#3 (REFER TO PICTURE ABOVE)"
3210  GOTO 3150
3220  C3=A3
3230  D3=B3
3240  FOR Z5=1 TO 3
3250  FOR Z6=Z5 TO 36 STEP 3
3260  IF A3=Z5 AND S1=Z6 THEN 3600
3270  NEXT Z6
3280  NEXT Z5
3290  IF A3=B3 THEN 1990
3300  A3=B3
3310  GOTO 3240
3320  PRINT "YOUR CHOICES FOR NUMBERS TO BET ON ARE: A NUMBER BETWEEN 1 AND 12,"
3330  PRINT "1-18,13-24,19-36, OR 25-36"
3340  PRINT "WHAT NUMBERS DO YOU WANT TO BET ON";
3350  INPUT F$
3360  IF F$="1-12" THEN 3430
3370  IF F$="1-18" THEN 3430
3380  IF F$="13-24" THEN 3430
3390  IF F$="19-36" THEN 3430
3400  IF F$="25-36" THEN 3430
3410  PRINT "TYPE IN '1-12','1-18','13-24','19-36','25-36'"
3420  GOTO 3340
3430  RETURN 
3440  IF F$="1-12" THEN 3500
3450  IF F$="1-18" THEN 3520
3460  IF F$="13-24" THEN 3560
3470  IF F$="19-36" THEN 3580
3480  IF S1 >= 25 THEN 3600
3490  GOTO 1990
3500  IF S1 >= 1 AND S1 <= 12 THEN 3600
3510  GOTO 1990
3520  IF S1 >= 1 AND S1 <= 18 THEN 3540
3530  GOTO 1990
3540  Z=13
3550  GOTO 3600
3560  IF S1 >= 13 AND S1 <= 24 THEN 3600
3570  GOTO 1990
3580  IF S1 >= 19 THEN 3540
3590  GOTO 1990
3600  PRINT "YOU WIN!"'7'7'7'7'7'7"!"'7'7'7'7'7'7"!"'7'7'7'7'7'7'7"!"'7'7'7'7'7'7'7'7"!"'7'7'7'7'7'7'7'7'7'7"!"
3610  GOSUB Z OF 3630,3650,3660,3660,3680,3700,3720,3740,3760,3780,3800,3820,3660
3620  GOTO 2020
3630  T=T+(35*B)
3640  RETURN 
3650  IF Z$="GREEN" THEN 3680
3660  T=T+B
3670  RETURN 
3680  T=T+(17*B)
3690  RETURN 
3700  T=T+(11*B)
3710  RETURN 
3720  T=T+(8*B)
3730  RETURN 
3740  T=T+(6*B)
3750  RETURN 
3760  T=T+(5*B)
3770  RETURN 
3780  T=T+(B/2)
3790  RETURN 
3800  IF C3=D3 THEN 3820
3810  GOTO 3780
3820  T=T+(2*B)
3830  RETURN 
3840  END 
