10 REM Roul6 20 REM by Graham Kendall 30 : 40 GOSUB 130 :REM Init_1 Routine 50 WHILE NEWGAME% = 0 60 GOSUB 180 :REM Init_2 Routine 70 GOSUB 720 :REM Control Routine 80 GOSUB 860 :REM Stats Routine 90 GOSUB 7000 :REM Ask Question Routine 100 WEND 110 END 120 : 130 REM Init_1 Procedure 140 DIM TABLE$(36) 150 FOR I%=0 TO 36:READ TABLE$(I%):NEXT I% 160 RETURN 170 : 180 REM Init_2 Procedure 190 HOUSELIMIT% = 31:NOOFSPINS% = 0 200 BET%=1:BIGBET%=0:BETTOTAL%=0 210 SEQ%=1:BIGSEQ%=0:BANK%=0 220 PREVSPIN$="NULL" 230 GOSUB 280 :REM Number of Spins Routine 240 GOSUB 380 :REM Which Colour Routine 250 GOSUB 520 :REM Get Option Routine 260 RETURN 270 : 280 REM Number of Spins Routine 290 WHILE (NOOFSPINS% < 1) OR (NOOFSPINS% > 5000) 300 CLS:GOSUB 6510 :REM Print Heading Routine 310 TEXT$ = "How many Spins would you like the wheel to make (1 - 5000)" 320 DOWN% = 10 330 GOSUB 5010 :REM Centre Text Routine 340 INPUT NOOFSPINS% 350 WEND 360 RETURN 370 : 380 REM Which Colour Routine 390 COL$ = "" 400 WHILE INSTR(" RrBb",COL$) <2 410 CLS:GOSUB 6510 :REM Print Heading Routine 420 TEXT$ = "Would you like to bet on Red or Black (R or B)":DOWN% = 10 430 GOSUB 5000 :REM Centre Text Routine 440 INPUT COL$ 450 IF COL$ = "r" THEN COL$ = "R" 460 IF COL$ = "b" THEN COL$ = "B" 470 IF COL$ = "R" THEN OPCOL$ = "Blacks" ELSE OPCOL$ = "Reds" 480 IF COL$ = "R" THEN OPCOL1$ = "B" ELSE OPCOL1$ = "R" 490 WEND 500 RETURN 510 : 520 REM Option Routine 530 OPT$ = "" 540 WHILE INSTR(" DdHhRr",OPT$) <2 550 CLS:GOSUB 6500 :REM Print Heading Routine 560 TEXT$ = "Which option would you like?":DOWN% = 5 570 GOSUB 5000 :REM Centre Text Routine 580 ACROSS% = 5 :REM Used for rest of output in this routine 590 TEXT$ = "D = Keep doubling your stake until you win":DOWN% = 9 600 GOSUB 5500 :REM Print Text Routine 610 TEXT$ = "H = When House Limit is reached keep betting at that level until you win":DOWN% = 11 620 GOSUB 5500 :REM Print Text Routine 630 TEXT$ = "R = Revert to one pound bet when House Limit reached":DOWN% = 13 640 GOSUB 5500 :REM Print Text Routine 650 INPUT OPT$ 660 WEND 670 IF OPT$ = "d" THEN OPT$ = "D" 680 IF OPT$ = "h" THEN OPT$ = "H" 690 IF OPT$ = "r" THEN OPT$ = "R" 700 RETURN 710 : 720 REM Control Routine 730 FOR SPINCNT%=1 TO NOOFSPINS% 740 IF SPINCNT% = INT(SPINCNT%/50)*50 THEN TEXT$ = "Up to Spin " + STR$(SPINCNT%):DOWN% = 20:GOSUB 5000 :REM Centre Text Routine 750 GOSUB 7500 :REM Random Number Routine 760 IF NUM% = 0 THEN TABLE$(0) = OPCOL1$ 770 IF M% <> 1 THEN PREVSPIN$ = CURRSPIN$ 780 CURRSPIN$ = TABLE$(NUM%) 790 IF PREVSPIN$ = CURRSPIN$ THEN SEQ% = SEQ% + 1 ELSE SEQ% = 1 800 IF CURRSPIN$ = COL$ THEN SEQ% = 1 810 IF SEQ% > BIGSEQ% THEN BIGSEQ% = SEQ% 820 IF TABLE$(NUM%) = COL$ THEN GOSUB 1040 ELSE GOSUB 1090 :REM Win or Lose Routine 830 NEXT SPINCNT% 840 RETURN 850 : 860 REM Stats Routine 870 CLS:GOSUB 6500 :REM Print Heading Routine 880 TEXT$ = "Results":DOWN% = 4 890 GOSUB 5000 :REM Centre Text Routine 900 TEXT$ = "=======":DOWN% = 5 910 GOSUB 5000 :REM Centre Text Routine 920 ACROSS% = 3 :REM Used for all output in this routine 930 TEXT$ = "The total amount placed on the table was" + STR$(BETTOTAL%) + " pounds":DOWN% = 9 940 GOSUB 5500 :REM Print Text Routine 950 TEXT$ = "At one point you were staking" + STR$(BIGBET%) + " pounds":DOWN% = 11 960 GOSUB 5500 :REM Print Text Routine 970 TEXT$ = "This was due to a sequence of" + STR$(BIGSEQ%) + " " + OPCOL$ + " that ran against you":DOWN% = 13 980 GOSUB 5500 :REM Print Text Routine 990 TEXT$ = "At the end of" + STR$(NOOFSPINS%) + " spins you have a balance of " + STR$(BANK%) + " pounds":DOWN% = 15 1000 GOSUB 5500 :REM Print Text Routine 1010 GOSUB 6000 :REM Press Space Routine 1020 RETURN 1030 : 1040 REM Win Routine 1050 BANK% = BANK% + BET%:BET% = 1 1060 BETTOTAL% = BETTOTAL% + BET% 1070 RETURN 1080 : 1090 REM Lose Routine 1100 BANK% = BANK% - BET% 1110 BET% = BET% * 2 1120 IF OPT$="H" AND BET% > HOUSELIMIT% THEN BET% = HOUSELIMIT% 1130 IF OPT$="R" AND BET% > HOUSELIMIT% THEN BET% = 1 1140 BETTOTAL% = BETTOTAL% + BET% 1150 IF BET% > BIGBET% THEN BIGBET% = BET% 1160 RETURN 1170 : 5000 REM Print Centred Text Routine 5010 PRINT CHR$(11) 5020 FOR I% = 1 TO DOWN% -1:PRINT CHR$(10);:NEXT 5030 ACROSS% = (79-LEN(TEXT$))/2 5040 PRINT TAB(ACROSS%);TEXT$ 5050 RETURN 5060 : 5500 REM Print Text on Screen Routine 5510 PRINT CHR$(11) 5520 FOR I% = 1 TO DOWN% -1:PRINT CHR$(10);:NEXT 5530 PRINT TAB(ACROSS%);TEXT$ 5540 RETURN 5550 : 6000 REM Press Space Routine 6010 TEXT$ = "Press Space to Continue" 6020 DOWN% = 22:GOSUB 5000 : REM Centre Text Routine 6030 WHILE INKEY$ <> " " 6040 WEND 6050 RETURN 6060 : 6500 REM Print Heading Routine 6510 TEXT$ = "Roulette Program 6" 6520 DOWN% = 2:GOSUB 5000 : REM Centre Text Routine 6530 RETURN 6540 : 7000 REM Ask Question Routine 7010 A% = 0 7020 WHILE A% = 0:CLS:GOSUB 6500 :REM Print Heading Routine 7030 TEXT$ = "Do you want to play again?" 7040 DOWN% = 10:GOSUB 5000 :REM Centre Text Routine 7050 A$ = "" 7060 WHILE INSTR(" YyNn",A$) <2 7070 A$=INKEY$ 7080 WEND 7090 A%=INSTR("YyNn",A$) 7100 WEND 7110 IF A%=3 OR A%=4 THEN NEWGAME% = -1 7120 RETURN 7130 : 7500 REM Random Number Routine 7510 RANDOMIZE TIMER 7520 NUM% = INT(RND*(36+1)) 7530 RETURN 7540 : 7550 DATA X, R, B, R, B, R, B, R, B, R, B, B, R, B, R, B, R, B, R, R, B, R, B, R, B, R, B, R, B, B, R, B, R, B, R, B, R