Java Practice Assignment – High Stakes Roulette

rouletteKeeping on the gambling theme, I’ve decided to create another assignment centered around the game of Roulette.

Before we jump into the details of the assignment, I’d like to share my solution for the Texas Holdem Poker assignment.

Click Here to Download the solution

This was a very complex assignment and it even took about 4 hours of video to explain the solution in its entirety. This video is available for members of Java Video Tutorials (Video #22 and #23), so if you’re interested in seeing them feel free to signup for a membership.

High Stakes Roulette – Rules

Now let’s get on with the next Java practice assignment! If you’re not familiar with the game of roulette, it’s fairly simple to understand. Basically it’s a game of selecting a random number between 1 and 36; this is done by spinning a roulette wheel while a ball bounces around before finally landing on one number. The numbers 1 through 36 have alternating colors (black and red), and this allows for certain betting to occur.

Before each spin of the roulette wheel, you are allowed to bet on a wide variety of things, but for this assignment you only need to concern yourself with the fact that you can bet on either black or red.

If you bet on red, and the roulette ball lands on red, then you win twice the amount that you bet (eg. if you bet $10 on red, and the ball lands on red, you will win $20)! If you bet on red, and the ball lands on black, then you lose your entire bet.

Note: There are also two “green” numbers (0 and 00), if the ball lands on one of these two numbers, then you will lose your bet regardless on which color (red or black) you had bet on.

The Requirements

Okay, now that you understand the pertinent aspects of roulette let’s talk about what this assignment will involve.

I’m interested in cheating the system and guaranteeing that I’ll win money at roulette. Here’s how I think it can be done:

If you consistently bet on one color (either red or black), you’ll eventually win right? The trick will be to keep doubling your bet until you actually win. So I want to know how much money you need to have in order to guarantee that you’ll be able to win $10 for each “cycle” of continuous betting.

Here’s an example of what I mean:

  1. Choose a color to bet on and STICK with it for the entire “cycle” of betting
  2. Place your bet of $10 and spin the wheel
  3. If you lose, bet twice the amount of your last bet
  4. Repeat step 3 until you win then go to step 5
  5. If you win, record the amount you needed to bet in order to win

So in the end, what I’m interested in knowing is the MAXIMUM amount of money needed to guarantee that out of 10,000 spins of the roulette wheel, I’ll win my $10 every time.

What you’ll need to implement

In a word: everything!

I think if you’ve come this far in your Java programming journey, you should be able to create this assignment from scratch. I won’t leave you completely high and dry though, here are the basic aspects you’ll need to implement:

  • Roulette Wheel (for spinning)
  • Roulette Number (represents a number with a color)
  • Random Number Generator (used to generate a random number from 1 to 38; includes values for 0 and 00)
  • You may want to implement an Enum to represent the Colors (up to you)
  • Test class or Runnable class

Remember: the point of the assignment is to determine how much money you’ll need to have in your pocket to guarantee that you’ll always win $10 at the game of roulette by consistently betting on the same color until you win.

Now, if you are struggling to learn Java, then I will have to point you in the direction of Java Video Tutorials. I launched this service back in November 2012, and since then I have helped tons of new students learn Java. The feedback I have received from these students has been overwhelmingly positive and I’m so excited to be providing such a valuable platform for learning Java programming. What’s incredible is I’ve heard the same story over and over again:

“I have tried to learn Java a bunch of times before and never got anywhere… until I signed up to Java Video Tutorials. I’ve learned so much more than I ever have before and I’m so excited!”

Seriously! So if you are in the same boat, sign up and try it out, you’ve got nothing to lose 🙂