-
Notifications
You must be signed in to change notification settings - Fork 0
/
ROULETTE.BAS
249 lines (249 loc) · 7.11 KB
/
ROULETTE.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
1 RANDOMIZE
5 PRINT CHR$(26):WIDTH 80
10 PRINT TAB(32);"ROULETTE":PRINT
20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
30 PRINT:PRINT:PRINT
40 PRINT "ENTER THE CURRENT DATE (AS IN 'JANUARY 23, 1979') -";
50 INPUT D$,E$
1000 REM-ROULETTE
1010 REM-DAVID JOSLIN
1015 PRINT:PRINT
1020 PRINT "WELCOME TO THE ROULETTE TABLE"
1030 PRINT
1040 PRINT "DO YOU WANT INSTRUCTIONS";
1050 INPUT Y$
1060 IF LEFT$(Y$,1)="N" THEN 1550
1070 LINE INPUT "MAKE SURE THE PRINTER IS ON. ENTER 'RETURN WHEN YOU ARE READY.";ANS$
1072 PRINT:PRINT:PRINT "--- Printing ---":PRINT:PRINT
1080 LPRINT "THIS IS THE BETTING LAYOUT":LPRINT:LPRINT:LPRINT
1090 LPRINT " (*=RED)"
1100 LPRINT
1110 LPRINT " 1* 2 3*"
1120 LPRINT " 4 5* 6 "
1130 LPRINT " 7* 8 9*"
1140 LPRINT "10 11 12*"
1150 LPRINT "---------------"
1160 LPRINT "13 14* 15 "
1170 LPRINT "16* 17 18*"
1180 LPRINT "19* 20 21*"
1190 LPRINT "22 23* 24 "
1200 LPRINT "---------------"
1210 LPRINT "25* 26 27*"
1220 LPRINT "28 29 30*"
1230 LPRINT "31 32* 33 "
1240 LPRINT "34* 35 36*"
1250 LPRINT "---------------"
1260 LPRINT " 00 0 "
1270 LPRINT:LPRINT:LPRINT
1280 LPRINT "TYPES OF BETS"
1285 LPRINT "-------------"
1290 LPRINT
1300 LPRINT "THE NUMBERS 1 TO 36 SIGNIFY A STRAIGHT BET"
1310 LPRINT "ON THAT NUMBER."
1320 LPRINT "THESE PAY OFF 35:1"
1330 LPRINT
1340 LPRINT "THE 2:1 BETS ARE:"
1350 LPRINT " 37) 1-12 40) FIRST COLUMN"
1360 LPRINT " 38) 13-24 41) SECOND COLUMN"
1370 LPRINT " 39) 25-36 42) THIRD COLUMN"
1380 LPRINT
1390 LPRINT "THE EVEN MONEY BETS ARE:"
1400 LPRINT " 43) 1-18 46) ODD"
1410 LPRINT " 44) 19-36 47) RED"
1420 LPRINT " 45) EVEN 48) BLACK"
1430 LPRINT
1440 LPRINT " 49)0 AND 50)00 PAY OFF 35:1"
1450 LPRINT " NOTE: 0 AND 00 DO NOT COUNT UNDER ANY"
1460 LPRINT " BETS EXCEPT THEIR OWN."
1470 LPRINT CHR$(12)
1475 LINE INPUT "ENTER 'RETURN' TO CONTINUE.";RESP$:PRINT CHR$(26)
1480 PRINT "WHEN I ASK FOR EACH BET, TYPE THE NUMBER"
1490 PRINT "AND THE AMOUNT, SEPARATED BY A COMMA."
1495 PRINT
1500 PRINT "FOR EXAMPLE: TO BET $500 ON BLACK, TYPE 48,500"
1510 PRINT "WHEN I ASK FOR A BET."
1520 PRINT
1530 PRINT "THE MINIMUM BET IS $5, THE MAXIMUM IS $500."
1540 PRINT
1550 REM-PROGRAM BEGINS HERE
1560 REM-TYPE OF BET(NUMBER) ODDS
1570 REM
1580 DIM B(100),C(100),T(100),X(38)
1590 DIM A(50)
1600 FOR I=1 TO 38: X(I)=0: NEXT I: REM MAT X=ZER
1610 P=1000
1620 D=100000!
1630 PRINT: PRINT "HOW MANY BETS";
1640 INPUT Y
1645 PRINT
1650 IF Y<1 OR Y<>INT(Y) THEN 1630
1660 FOR I=1 TO 50: A(I)=0: NEXT I: REM MAT A=ZER
1670 FOR C=1 TO Y
1680 PRINT "BET NUMBER";C;CHR$(8);
1690 INPUT X,Z
1700 B(C)=Z
1710 T(C)=X
1720 IF X<1 OR X>50 OR X<>INT(X) THEN 1680
1730 IF Z<1 OR Z<>INT(Z) THEN 1680
1740 IF Z<5 OR Z>500 THEN 1680
1750 IF A(X)=0 THEN 1780
1760 PRINT "YOU MADE THAT BET ONCE ALREADY."
1770 GOTO 1680
1780 A(X)=1
1790 NEXT C
1800 PRINT:PRINT "SPINNING........"
1810 PRINT
1820 PRINT
1830 S=INT(RND(1)*100)
1840 IF S=0 OR S>38 THEN 1830
1850 X(S)=X(S)+1
1860 IF S<37 THEN 1920
1870 IF S=37 THEN 1900
1880 PRINT CHR$(22);" 00 ";CHR$(22)
1890 GOTO 2020
1900 PRINT CHR$(22);" 0 ";CHR$(22)
1910 GOTO 2020
1920 RESTORE
1930 FOR I1=1 TO 18
1940 READ R
1950 IF R=S THEN 2000
1960 NEXT I1
1970 A$="BLACK"
1980 PRINT CHR$(22);" ";S;" ";A$;" ";CHR$(22)
1990 GOTO 2020
2000 A$="RED"
2010 GOTO 1980
2020 PRINT:PRINT
2030 FOR C=1 TO Y
2040 IF T(C)<37 THEN 2710
2050 ON T(C)-36 GOTO 2090,2190,2220,2250,2300,2350,2400,2470,2500
2060 ON T(C)-45 GOTO 2530,2560,2630
2070 GOTO 2710
2080 FOR XX=1 TO 2000:NEXT:RUN"MENU"
2090 REM 1-12(37) 2:1
2100 IF S <= 12 THEN 2150
2110 PRINT "YOU LOSE";B(C);"DOLLARS ON BET";C;CHR$(8);"."
2120 D=D+B(C)
2130 P=P-B(C)
2140 GOTO 2180
2150 PRINT "YOU WIN";B(C)*2;"DOLLARS ON BET"C;CHR$(8);"."
2160 D=D-B(C)*2
2170 P=P+B(C)*2
2180 GOTO 2810
2190 REM 13-24(38) 2:1
2200 IF S>12 AND S<25 THEN 2150
2210 GOTO 2110
2220 REM 25-36(39) 2:1
2230 IF S>24 AND S<37 THEN 2150
2240 GOTO 2110
2250 REM FIRST COLUMN(40) 2:1
2260 FOR I=1 TO 34 STEP 3
2270 IF S=I THEN 2150
2280 NEXT I
2290 GOTO 2110
2300 REM SECOND COLUMN(41) 2:1
2310 FOR I=2 TO 35 STEP 3
2320 IF S=I THEN 2150
2330 NEXT I
2340 GOTO 2110
2350 REM THIRD COLUMN(42) 2:1
2360 FOR I=3 TO 36 STEP 3
2370 IF S=I THEN 2150
2380 NEXT I
2390 GOTO 2110
2400 REM 1-18(43) 1:1
2410 IF S<19 THEN 2430
2420 GOTO 2110
2430 PRINT "YOU WIN";B(C);"DOLLARS ON BET";C;CHR$(8);"."
2440 D=D-B(C)
2450 P=P+B(C)
2460 GOTO 2810
2470 REM 19-36(44) 1:1
2480 IF S<37 AND S>18 THEN 2430
2490 GOTO 2110
2500 REM EVEN(45) 1:1
2510 IF S/2=INT(S/2) AND S<37 THEN 2430
2520 GOTO 2110
2530 REM ODD(46) 1:1
2540 IF S/2<>INT(S/2) AND S<37 THEN 2430
2550 GOTO 2110
2560 REM RED(47) 1:1
2570 RESTORE
2580 FOR I=1 TO 18
2590 READ R
2600 IF S=R THEN 2430
2610 NEXT I
2620 GOTO 2110
2630 REM BLACK(48) 1:1
2640 RESTORE
2650 FOR I=1 TO 18
2660 READ R
2670 IF S=R THEN 2110
2680 NEXT I
2690 IF S>36 THEN 2110
2700 GOTO 2430
2710 REM--1TO36,0,00(1-36,49,50)35:1
2720 IF T(C)<49 THEN 2760
2730 IF T(C)=49 AND S=37 THEN 2780
2740 IF T(C)=50 AND S=38 THEN 2780
2750 GOTO 2110
2760 IF T(C)=S THEN 2780
2770 GOTO 2110
2780 PRINT "YOU WIN";B(C)*35;"DOLLARS ON BET";C;CHR$(8);"."
2790 D=D-B(C)*35
2800 P=P+B(C)*35
2810 NEXT C
2820 PRINT
2830 PRINT "TOTALS:":PRINT "------":PRINT
2840 PRINT "ME --";TAB(10);:PRINT USING "$$##,###";D:PRINT "YOU --";TAB(10);:PRINT USING "$$##,###";P
2845 PRINT:PRINT
2850 IF P>0 THEN 2880
2860 PRINT "OOPS! YOU JUST SPENT YOUR LAST DOLLAR!"
2870 GOTO 3190
2880 IF D>0 THEN 2920
2890 PRINT "YOU BROKE THE HOUSE!"
2900 P=101000!
2910 GOTO 2960
2920 PRINT:PRINT "AGAIN";
2930 INPUT Y$
2940 IF LEFT$(Y$,1)="Y" THEN 1630
2950 DATA 1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36
2960 IF P<1 THEN 3190
2970 PRINT "TO WHOM SHALL I MAKE THE CHECK";
2980 INPUT B$
2990 PRINT
3000 FOR I=1 TO 62: PRINT "-";: NEXT I: REM PRINT 62 DASHES
3010 PRINT TAB(50)"CHECK NO. ";INT(RND(1)*100)
3020 PRINT
3030 GOSUB 3230
3040 PRINT TAB(40);M$
3050 PRINT
3060 PRINT
3070 PRINT "PAY TO THE ORDER OF-----";B$;"-----$ ";
3080 PRINT P
3090 PRINT
3100 PRINT
3110 PRINT TAB(10),"THE MEMORY BANK OF NEW YORK"
3120 PRINT
3130 PRINT TAB(40),"THE COMPUTER"
3140 PRINT TAB(40)"----------X-----"
3150 PRINT
3160 FOR I=1 TO 62: PRINT "-";: NEXT I
3170 PRINT "COME BACK SOON!"
3180 GOTO 3210
3190 PRINT "THANKS FOR YOUR MONEY."
3200 PRINT "I'LL USE IT TO BUY A SOLID GOLD ROULETTE WHEEL"
3210 PRINT
3220 GOTO 3420
3230 REM
3240 REM THIS ROUTINE RETURNS THE CURRENT DATE IN M$
3250 REM IF YOU HAVE SYSTEM FUNCTIONS TO HANDLE THIS
3260 REM THEY CAN BE USED HERE. HOWEVER IN THIS
3270 REM PROGRAM, WE JUST INPUT THE DATE AT THE START
3280 REM THE GAME
3290 REM
3300 REM THE DATE IS RETURNED IN VARIABLE M$
3310 M$=D$+", "+E$
3320 RETURN
3420 FOR XX=1 TO 3000:NEXT:RUN "MENU"