For this assignment, you will utilize an existing class and implement a new class for simulating a game of roulette. Using these classes and a third provided class, you will perform repeated simulations of your roulette game and study the effectiveness of various betting strategies. In doing so, you will experience the power of software models in studying the behavior of real-world systems.
The RouletteWheel class models an American-style roulette wheel, with slots numbered 1 through 36 and two additional slots, numbered 0 and 00. This class has a method for generating a random spin, and another method for determining the color of a number on the wheel.
RouletteWheel
class, you are to implement a class named
RouletteGame
that enables the user to play a game of roulette, placing bets either
on a particular number or on a color. A
RouletteGame javadoc file is provided for
you to define the methods of this class and their precise behavior. Implement this class so that
it meets the specifications in the javadoc file. Be sure to test your implementation carefully.
RouletteGame
class behaves as specified, download
the RouletteTester class and add it to
your BlueJ project. This class contains a method for performing repeated roulette game
simulations, ending each game when the player either doubles her initial bankroll or goes broke.
The repeatGames
method takes three parameters: the initial bankroll, the amount for
each bet, and a string specifying whether bets should be placed on a number or a color. The method
then simulates a large number of games (currently 100,000) and returns the percentage of those games
that were wins (i.e., the player doubled her bankroll).
Use this class to simulate repeated games and answer the following questions. Be sure to explain how you obtained your answers, listing actual simulation results that you obtained.
Modify the repeatGames
method so that it simulates the Martingale betting strategy.
That is, each game should begin with the bet amount specified by the parameter. After a loss, the bet
amount should double. After a win, he should go back to the original bet amount.
Experiment with your modified method to answer the following questions. Again, be sure to explain how you
obtained your answers, listing actual simulation results that you obtained.
RouletteGame.java
and modified RouletteTester.java
files via the Digital Dropbox, along with your answers to the questions.