// This program simulates a simplified version of European Roulette. // // Notice the use of Random objects, the tallying of the number of // spins, and the tracking of the maximum bank. import java.util.*; public class Roulette { public static void main(String[] args) { Scanner console = new Scanner(System.in); Random rand = new Random(); int bank = 100; int max = bank; int numSpins = 0; int bet = getBet(console, bank); while (bet != 0 && bank > 0) { bank = spinWheel(console, rand, bet, bank); numSpins++; if (bank > max) { max = bank; } System.out.println(); bet = getBet(console, bank); } System.out.println(); printStats(bank, max, numSpins); } public static int getBet(Scanner console, int bank) { System.out.println("Current bank: $" + bank); System.out.print("Bet how much (0 to quit)? $"); int bet = console.nextInt(); return Math.min(bet, bank); } public static int spinWheel(Scanner console, Random rand, int bet, int bank) { System.out.print("High or low? "); String pick = console.next(); int spin = rand.nextInt(37); System.out.println("Spin: " + spin); if ((pick.equalsIgnoreCase("high") && spin > 18) || (pick.equalsIgnoreCase("low") && spin <= 18 && spin != 0)) { System.out.println("You win!"); bank += bet; } else { System.out.println("You lose. :-("); bank -= bet; } return bank; } public static void printStats(int bank, int max, int spins) { System.out.println("You spun " + spins + " time(s)."); System.out.println("Final bank: $" + bank); System.out.println("Maximum bank: $" + max); } }