Example #1
0
        static void doWork()
        {
            string headerText = "Press 'Space' to generate a spin or 'Escape' to exit\n";

            Console.WriteLine(headerText);
            Random rand       = new Random();
            int    randSelect = rand.Next(0, 37);

            RouletteWheel   rwInst    = new RouletteWheel();
            RouletteElement selection = rwInst.rouletteWheel[randSelect];

            ConsoleKeyInfo option = new ConsoleKeyInfo();
            bool           quit   = false;

            while (!quit)
            {
                option = Console.ReadKey();
                Console.Clear();
                Console.WriteLine(headerText);
                switch (option.Key)
                {
                case ConsoleKey.Spacebar:
                    selection  = rwInst.rouletteWheel[randSelect];
                    randSelect = rand.Next(0, 38);
                    rwInst.WinningBets(selection);
                    break;

                case ConsoleKey.Escape:
                    quit = true;
                    Console.WriteLine("GoodBye");
                    break;
                }
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Tip: Multiple values must be separated by a single space\n");
            Bet           myBet      = new Bet();
            RouletteWheel myRoulette = new RouletteWheel();

            myRoulette.DropBall(myBet);
        }
Example #3
0
        static void Main(string[] args)
        {
            RouletteWheel rouletteWheel = new RouletteWheel();

            rouletteWheel.PrintBetTable();
            (string number, string color)ball = rouletteWheel.SpinWheel();

            Console.WriteLine($"Ball Landed on\t: {ball}");
            Console.WriteLine($"Winning bets!");
            DisplatResults(ball);
        }
Example #4
0
        static void Main(string[] args)
        {
            RouletteWheel roulette = new RouletteWheel(new Random(2));

            for (int i = 0; i < 20; i++)
            {
                int    slot  = roulette.RandomSlot();
                Color  color = RouletteWheel.SlotColor(slot);
                string text  = RouletteWheel.SlotText(slot);
                Console.WriteLine("{0} {1}", text, color);
            }
        }
Example #5
0
        public static RouletteWheel[] ConstructWheel()
        {
            RouletteWheel[] gameWheel = new RouletteWheel[38];
            gameWheel[0]  = new RouletteWheel(0, "green");
            gameWheel[1]  = new RouletteWheel(1, "red");
            gameWheel[2]  = new RouletteWheel(2, "black");
            gameWheel[3]  = new RouletteWheel(3, "red");
            gameWheel[4]  = new RouletteWheel(4, "black");
            gameWheel[5]  = new RouletteWheel(5, "red");
            gameWheel[6]  = new RouletteWheel(6, "black");
            gameWheel[7]  = new RouletteWheel(7, "red");
            gameWheel[8]  = new RouletteWheel(8, "black");
            gameWheel[9]  = new RouletteWheel(9, "red");
            gameWheel[10] = new RouletteWheel(10, "black");
            gameWheel[11] = new RouletteWheel(11, "black");
            gameWheel[12] = new RouletteWheel(12, "red");
            gameWheel[13] = new RouletteWheel(13, "black");
            gameWheel[14] = new RouletteWheel(14, "red");
            gameWheel[15] = new RouletteWheel(15, "black");
            gameWheel[16] = new RouletteWheel(16, "red");
            gameWheel[17] = new RouletteWheel(17, "black");
            gameWheel[18] = new RouletteWheel(18, "red");
            gameWheel[19] = new RouletteWheel(19, "red");
            gameWheel[20] = new RouletteWheel(20, "black");
            gameWheel[21] = new RouletteWheel(21, "red");
            gameWheel[22] = new RouletteWheel(22, "black");
            gameWheel[23] = new RouletteWheel(23, "red");
            gameWheel[24] = new RouletteWheel(24, "black");
            gameWheel[25] = new RouletteWheel(25, "red");
            gameWheel[26] = new RouletteWheel(26, "black");
            gameWheel[27] = new RouletteWheel(27, "red");
            gameWheel[28] = new RouletteWheel(28, "black");
            gameWheel[29] = new RouletteWheel(29, "black");
            gameWheel[30] = new RouletteWheel(30, "red");
            gameWheel[31] = new RouletteWheel(31, "black");
            gameWheel[32] = new RouletteWheel(32, "red");
            gameWheel[33] = new RouletteWheel(33, "black");
            gameWheel[34] = new RouletteWheel(34, "red");
            gameWheel[35] = new RouletteWheel(35, "black");
            gameWheel[36] = new RouletteWheel(36, "red");
            gameWheel[37] = new RouletteWheel(00, "green");

            return(gameWheel);
        }
Example #6
0
        static void Main(string[] args)
        {
            RouletteWheel rw = new RouletteWheel();

            List <IBet> bets = new List <IBet>();

            int val = 0;

            while (val != -1)
            {
                Console.WriteLine("Please select a menu option below or -1 to exit: ");
                Console.WriteLine(" 0) Roll Wheel");
                Console.WriteLine(" 1) Number Bet");
                Console.WriteLine(" 2) Even or Odd Bet");
                Console.WriteLine(" 3) Color Bet");
                Console.WriteLine(" 4) Lows & Highs Bet");
                Console.WriteLine(" 5) Dozens Bet");
                Console.WriteLine(" 6) Columns Bet");
                Console.WriteLine(" 7) Street Bet");
                Console.WriteLine(" 8) 6 Numbers Bet");
                Console.WriteLine(" 9) Split Bet");
                Console.WriteLine("10) Corner Bet");
                val = int.Parse(Console.ReadLine());
                switch (val)
                {
                case -1:
                    break;

                case 0:
                    Number winningNumber = rw.RollWheel();
                    Console.WriteLine("The ball landed on: " + winningNumber);
                    foreach (IBet bet in bets)
                    {
                        if (bet.DidWin(winningNumber) == true)
                        {
                            Console.WriteLine("Winner! " + bet);
                        }
                    }
                    bets.Clear();
                    break;

                case 1:
                    Console.WriteLine("Please enter the value to bet that number:");
                    bets.Add(new NumberBet(Console.ReadLine()));
                    break;

                case 2:
                    Console.WriteLine("Please type odd or even to place your bet:");
                    bets.Add(new OddOrEvenBet(Console.ReadLine()));
                    break;

                case 3:
                    Console.WriteLine("Please enter the color to place the bet:");
                    bets.Add(new ColorBet(Console.ReadLine().ToLower()));
                    break;

                case 4:
                    Console.WriteLine("Please pick type low or high to place the bet:");
                    bets.Add(new LowsHighBet(Console.ReadLine().ToLower()));
                    break;

                case 5:
                    Console.WriteLine("Please pick the row: (1 = (1-12), 2 = (13-24), 3 = (25-36))");
                    string methodFeeder = Console.ReadLine();
                    int    input        = int.Parse(methodFeeder);
                    if (input > 3)
                    {
                        Console.WriteLine("Please enter an appropriate choice");
                        methodFeeder = Console.ReadLine();
                    }
                    bets.Add(new DozensBet(methodFeeder));
                    break;

                case 6:
                    Console.WriteLine("Please pick the column from the left to right");
                    bets.Add(new ColumnBet(Console.ReadLine()));
                    break;

                case 7:
                    Console.WriteLine("Please pick the street by spelling out the nth street row");
                    bets.Add(new StreetBet(Console.ReadLine()));
                    break;

                case 8:
                    Console.WriteLine("Please pick the 6 numbers bet by providing the starting number value");
                    bets.Add(new DoubleRowsBet(Console.ReadLine()));
                    break;

                case 9:
                    Console.WriteLine("Please pick the lowest number of the split");
                    bets.Add(new SplitBet(Console.ReadLine()));
                    break;

                case 10:
                    Console.WriteLine("Please enter the numbers of the corner bet separated by commas and no spaces");
                    bets.Add(new CornerBet(Console.ReadLine()));
                    break;
                }
            }
        }
Example #7
0
        public PlayGame()
        {
            WriteText.StartGameText();
            QuitGame(!Menu.YesOrNo(Console.ReadLine()));
            Console.Clear();

            RouletteWheel[] gameWheel = RouletteWheel.ConstructWheel();
            RouletteWheel   binResult;
            ConsoleSpinner  spinner = new ConsoleSpinner();

            spinner.Delay = 300;
            Stopwatch s    = new Stopwatch();
            int       time = 7;
            int       userBetSelection;
            int       intChoice;
            string    stringChoice;
            int       moneyBet;
            bool      userDecision = true;


            WriteText.EnterAmountOfMoney();
            Player user = new Player(Validation.InRangeCashAmount(UserInput.GetNumber()));

            Console.Clear();

            // Loop will keep running as long as the user keeps sayin yes to new bets
            while (userDecision)
            {
                // I will be getting the spin result from the start in order for my bet methods to work properly
                // When the wheel spins in code, it doesn't matter to the user
                // I'll display wheel spinning after bets are placed
                // to make the user think the wheel spun after bets are placed
                binResult = RouletteWheel.SpinWheel(gameWheel);
                List <int> ListOfBetResults = new List <int>();
                // once user tpyes no at the end of the loop it will then exit the loop
                while (userDecision)
                {
                    Console.Clear();

                    GameBoard.DrawBoard();
                    WriteText.TypesOfBetsText();
                    WriteText.GetBetChoice();
                    userBetSelection = UserInput.GetNumber();


                    // Once a user picks a number the switch will pick the correct bet
                    // Each case will draw a board and output how to bet
                    // The bet is placed, then determines if its a win or lose then adds the money to a list to be added later
                    switch (userBetSelection)
                    {
                    case 1:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.NumbersChoice();
                        WriteText.EnterChoice();
                        intChoice = Validation.NumbersChoiceValidation(UserInput.GetNumber());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.Number(intChoice, binResult.BinNumber)));
                        break;

                    case 2:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.EvensOddsChoice();
                        WriteText.EnterChoice();
                        stringChoice = Validation.EvenOddValidation(UserInput.GetString());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.EvensOdds(stringChoice, binResult.BinNumber)));
                        break;

                    case 3:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.RedsBlacksChoice();
                        WriteText.EnterChoice();
                        stringChoice = Validation.RedBlackValidation(UserInput.GetString());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.RedsBlacks(stringChoice, binResult.BinColor)));
                        break;

                    case 4:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.LowsHighsChoice();
                        WriteText.EnterChoice();
                        stringChoice = Validation.LowHighValidation(UserInput.GetString());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.LowsHighs(stringChoice, binResult.BinNumber)));
                        break;

                    case 5:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.DozensChoice();
                        WriteText.EnterChoice();
                        stringChoice = Validation.DozensValidation(UserInput.GetString());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.Dozens(stringChoice, binResult.BinNumber)));
                        break;

                    case 6:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.ColumnsChoice();
                        WriteText.EnterChoice();
                        stringChoice = Validation.DozensValidation(UserInput.GetString());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.Columns(stringChoice, binResult.BinNumber)));
                        break;

                    case 7:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.StreetChoice();
                        WriteText.EnterChoice();
                        intChoice = Validation.StreetValidation(UserInput.GetNumber());
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.Street(intChoice, binResult.BinNumber)));
                        break;

                    case 8:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.SixNumbersChoice();
                        WriteText.EnterChoice();
                        intChoice = UserInput.GetNumber();
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.SixNumbers(intChoice, binResult.BinNumber)));
                        break;

                    case 9:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.SplitChoice();
                        WriteText.EnterChoice();
                        intChoice = UserInput.GetNumber();
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.Split(intChoice, binResult.BinNumber)));
                        break;

                    case 10:
                        Console.Clear();
                        GameBoard.DrawBoard();
                        WriteText.Corners();
                        WriteText.EnterChoice();
                        intChoice = UserInput.GetNumber();
                        WriteText.EnterBetAmount();
                        moneyBet = Validation.InRangeCashAmount(UserInput.GetNumber());
                        ListOfBetResults.Add(user.PlaceMoneyBet(moneyBet, Bet.Corner(intChoice, binResult.BinNumber)));
                        break;
                    }
                    Console.Clear();

                    WriteText.AskIfMoreBets();
                    userDecision = Menu.YesOrNo(UserInput.GetString());

                    Console.Clear();

                    s.Start();
                    Console.Write("Wheel Spinning");
                    while (s.Elapsed <= TimeSpan.FromSeconds(time))
                    {
                        spinner.Turn(displayMsg: "Wheel spinning ", sequenceCode: 4);
                    }
                    s.Stop();
                }

                Console.Clear();

                int addWinningLosses = 0;
                // This loop will add up all the winning and losing bets
                foreach (var betMoney in ListOfBetResults)
                {
                    addWinningLosses += betMoney;
                }

                if (addWinningLosses > 0)
                {
                    WriteText.WonBet();
                    Console.WriteLine(addWinningLosses);
                }

                if (addWinningLosses < 0)
                {
                    WriteText.LostBet();
                    Console.WriteLine(addWinningLosses);
                }

                if (addWinningLosses.Equals(0))
                {
                    WriteText.BrokeEven();
                    Console.WriteLine(addWinningLosses);
                }

                WriteText.NewCashAmount();
                Console.WriteLine(user.AfterBetCashAmount(addWinningLosses));

                addWinningLosses = 0;
                WriteText.KeepPlaying();
                userDecision = Menu.YesOrNo(UserInput.GetString());
            }
        }
Example #8
0
        //The PlayRoulette method is the meat and potatoes of the Roulette application, if you will.
        //Here we instantiate the RouletteWheel class, generate the random coordinates that represent
        //The result of the spin, and we take the players bet and pass it off to the result checking methods
        public static void PlayRoulette(int chips, int playerSelection, int playerBet)
        {
            RouletteWheel cadesWheel = new RouletteWheel();

            string zeroResult = "";

            int[] coordinates = cadesWheel.GetCoords();

            int xCoord     = coordinates[0];
            int spinResult = cadesWheel.SpinWheel(coordinates);

            if (spinResult == 0)
            {
                zeroResult = cadesWheel.CheckZero(spinResult, coordinates);
            }
            else
            {
                zeroResult = null;
            }

            string color = cadesWheel.CheckColor(xCoord, spinResult);
            bool   win;

            //Console.WriteLine(format + $"The winning number is {spinResult}");
            //**Used for testing purposes! If uncommented you can see the result of
            //the spin before you place a bet! **
            switch (playerSelection)
            {
            case 1:
                win = WinLose.NumberResult(zeroResult, spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 35);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 2:
                win = WinLose.EvenOddResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 1);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 3:
                win = WinLose.ColorResult(color, spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 1);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 4:
                win = WinLose.LowHighResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 1);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 5:
                win = WinLose.DozensResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 2);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 6:
                win = WinLose.ColumnResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 2);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 7:
                win = WinLose.SixesResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 5);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 8:
                win = WinLose.CornersResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 8);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 9:
                win = WinLose.StreetResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 11);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;

            case 10:
                win = WinLose.SplitResult(spinResult);
                if (win == true)
                {
                    chips = CalculatePayouts.Win(chips, playerBet, 17);
                }
                else
                {
                    chips = CalculatePayouts.Lose(chips, playerBet);
                }
                break;
            }
            //At the end of the PlayRoulette I pass control off to the SpinAgain method, which gives the user a choice to either
            //Place another bet and spin the wheel again, or to gracefully exit the program

            SpinAgain(chips);
        }
Example #9
0
        public static void playRoulette()
        {
            Console.WriteLine("Welcome to Roulette. Please place your bet.");
            Console.WriteLine("Please choose an option:\n");
            Console.WriteLine("1:Spin the wheel\n2:Bet a number\n3:Bet Red or Black\n4:Bet Evens/Odds\n5:Bet Lows/Highs\n6:Bet Dozens\n7:Bet Columns\n8:Bet Streets\n9:Bet Double Rows (6 numbers)\n10:Bet Split\n11:Bet Corners\n12: Quit Playing");

            int playerChoice = 0;

            while (playerChoice < 1 || playerChoice > 12)
            {
                try
                {
                    playerChoice = int.Parse(Console.ReadLine());
                    switch (playerChoice)
                    {
                    case 1: //<== Is equivalent to using if  playerchoice == 1 do this.
                        RouletteWheel rw = new RouletteWheel();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 2:
                        NumberBet nb = new NumberBet();
                        Console.WriteLine();

                        playRoulette();
                        break;

                    case 3:
                        RedOrBlackBet rb = new RedOrBlackBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 4:
                        EvenOrOddBet eob = new EvenOrOddBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 5:
                        LowOrHighBet lhb = new LowOrHighBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 6:
                        DozensBet db = new DozensBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 7:
                        ColumnBet cb = new ColumnBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 8:
                        StreetBet sb = new StreetBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 9:
                        DoubleStreet ds = new DoubleStreet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 10:
                        SplitBet splb = new SplitBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 11:
                        CornerBet cnrb = new CornerBet();
                        Console.WriteLine();
                        playRoulette();
                        break;

                    case 12:
                        break;
                    }
                    if (playerChoice < 1 || playerChoice > 12)
                    {
                        Console.WriteLine("Please enter a valid number between 1 and 12.");
                    }
                }
                catch (FormatException)
                {
                    Console.WriteLine("Please enter a valid number between 1 and 12.");
                }
            }
        }