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] 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" 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)" 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)"* * * * * *" 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 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 "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 "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 "WHEN ASKED FOR MORE THAN 1 NUMBER, TYPE IN THE NUMBERS" 1190 PRINT "SEPERATED BY COMMAS" 1200 PRINT "REMEMBER: THE MORE NUMBERS YOU BET ON" 1210 PRINT "AT THE SAME TIME, THE LOWER THE ODDS" 1220 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 "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 "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" 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" 2190 GOTO Z OF 1980,2240,2090,1930,2530,2610,2720,2850,2980,3110,3220,3440 2200 PRINT "RED" 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 "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 2420 PRINT TAB(25)"COME BACK SOON" 2440 PRINT TAB(23)"HOPE YOU HAD FUN!!" 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'" 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!!!" 3610 GOSUB Z OF 3630,3650,3660,3660,3680,3700,3720,3740,3760,3780,3800,3820,366 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