diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fb50116 --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/README.md b/README.md index c408ba0..b759acb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # example_roulette Program to refactor that plays a game of roulette + +Fixed by Patrick Terry and Sivaneshwaran Loganathan diff --git a/src/roulette/Bet.java b/src/roulette/Bet.java index 66888a3..a5ead00 100755 --- a/src/roulette/Bet.java +++ b/src/roulette/Bet.java @@ -34,4 +34,14 @@ public int getOdds () { public String getDescription () { return myDescription; } + + protected String placeBet() { + return null; + } + protected boolean betIsMade(Wheel w, String betChoice){ + return false; + } + + + } diff --git a/src/roulette/Game.java b/src/roulette/Game.java index 0e60ba9..c659c56 100755 --- a/src/roulette/Game.java +++ b/src/roulette/Game.java @@ -13,9 +13,9 @@ public class Game { private static final String DEFAULT_NAME = "Roulette"; // bets player can make private Bet[] myPossibleBets = { - new Bet("Red or Black", 1), - new Bet("Odd or Even", 1), - new Bet("Three in a Row", 11) + new RbBet("Red or Black", 1), + new OEBet("Odd or Even", 1), + new NumberBet("Three in a Row", 11) }; private Wheel myWheel; @@ -44,19 +44,20 @@ public String getName () { public void play (Gambler player) { int amount = ConsoleReader.promptRange("How much do you want to bet", 0, player.getBankroll()); - int whichBet = promptForBet(); - String betChoice = placeBet(whichBet); + Bet b = promptForBet(); + String betChoice = b.placeBet(); System.out.print("Spinning ..."); myWheel.spin(); System.out.println(String.format("Dropped into %s %d", myWheel.getColor(), myWheel.getNumber())); - if (betIsMade(whichBet, betChoice)) { + if (b.betIsMade(myWheel, betChoice)) { System.out.println("*** Congratulations :) You win ***"); - amount *= myPossibleBets[whichBet].getOdds(); + amount *= b.getOdds(); } else { System.out.println("*** Sorry :( You lose ***"); - amount *= -1; + amount /= -1; + } player.updateBankroll(amount); } @@ -64,55 +65,14 @@ public void play (Gambler player) { /** * Prompt the user to make a bet from a menu of choices. */ - private int promptForBet () { + private Bet promptForBet () { System.out.println("You can make one of the following types of bets:"); for (int k = 0; k < myPossibleBets.length; k++) { System.out.println(String.format("%d) %s", (k + 1), myPossibleBets[k].getDescription())); } - return ConsoleReader.promptRange("Please make a choice", 1, myPossibleBets.length) - 1; + return myPossibleBets[ConsoleReader.promptRange("Please make a choice", 1, myPossibleBets.length) - 1]; } - /** - * Place the given bet by prompting user for specific information need to complete that bet. - * - * @param whichBet specific bet chosen by the user - */ - private String placeBet (int whichBet) { - String result = ""; - if (whichBet == 0) { - result = ConsoleReader.promptOneOf("Please bet", Wheel.BLACK, Wheel.RED); - } - else if (whichBet == 1) { - result = ConsoleReader.promptOneOf("Please bet", "even", "odd"); - } - else if (whichBet == 2) { - result = "" + ConsoleReader.promptRange("Enter first of three consecutive numbers", - 1, Wheel.NUM_SPOTS - 3); - } - System.out.println(); - return result; - } - /** - * Checks if the given bet is won or lost given user's choice and result of spinning the wheel. - * - * @param whichBet specific bet chosen by the user - * @param betChoice specific value user chose to try to win the bet - */ - private boolean betIsMade (int whichBet, String betChoice) { - if (whichBet == 0) { - return myWheel.getColor().equals(betChoice); - } - else if (whichBet == 1) { - return (myWheel.getNumber() % 2 == 0 && betChoice.equals("even")) || - (myWheel.getNumber() % 2 == 1 && betChoice.equals("odd")); - } - else if (whichBet == 2) { - int start = Integer.parseInt(betChoice); - return (start <= myWheel.getNumber() && myWheel.getNumber() < start + 3); - } - else { - return false; - } - } + } diff --git a/src/roulette/NumberBet.java b/src/roulette/NumberBet.java new file mode 100644 index 0000000..adfa77d --- /dev/null +++ b/src/roulette/NumberBet.java @@ -0,0 +1,29 @@ +package roulette; + +import util.ConsoleReader; + +public class NumberBet extends Bet { + + public NumberBet(String description, int odds) { + super(description, odds); + // TODO Auto-generated constructor stub + } + + protected String placeBet() { + // TODO Auto-generated method stub + String result = "" + + ConsoleReader.promptRange( + "Enter first of three consecutive numbers", 1, + Wheel.NUM_SPOTS - 3); + System.out.println(); + return result; + } + + @Override + protected boolean betIsMade(Wheel w, String betChoice) { + // TODO Auto-generated method stub + int start = Integer.parseInt(betChoice); + return (start <= w.getNumber() && w.getNumber() < start + 3); + + } +} diff --git a/src/roulette/OEBet.java b/src/roulette/OEBet.java new file mode 100644 index 0000000..380f326 --- /dev/null +++ b/src/roulette/OEBet.java @@ -0,0 +1,27 @@ +package roulette; + +import util.ConsoleReader; + +public class OEBet extends Bet { + + public OEBet(String description, int odds) { + super(description, odds); + // TODO Auto-generated constructor stub + } + + @Override + protected String placeBet() { + // TODO Auto-generated method stub + String result = ConsoleReader.promptOneOf("Please bet", "even", "odd"); + System.out.println(); + return result; + } + + @Override + protected boolean betIsMade(Wheel w, String betChoice) { + // TODO Auto-generated method stub + return (w.getNumber() % 2 == 0 && betChoice.equals("even")) || + (w.getNumber() % 2 == 1 && betChoice.equals("odd")); + + } +} diff --git a/src/roulette/RbBet.java b/src/roulette/RbBet.java new file mode 100644 index 0000000..1560905 --- /dev/null +++ b/src/roulette/RbBet.java @@ -0,0 +1,29 @@ +package roulette; + +import util.ConsoleReader; + +public class RbBet extends Bet{ + + public RbBet(String description, int odds) { + super(description, odds); + // TODO Auto-generated constructor stub + } + + @Override + protected String placeBet() { + // TODO Auto-generated method stub + String result = ConsoleReader.promptOneOf("Please bet", Wheel.BLACK, Wheel.RED); + System.out.println(); + return result; + } + + @Override + protected boolean betIsMade(Wheel w, String betChoice) { + // TODO Auto-generated method stub + + return w.getColor().equals(betChoice); + + } + + +}