diff --git a/src/roulette/BetFactory.java b/src/roulette/BetFactory.java new file mode 100644 index 0000000..9171e16 --- /dev/null +++ b/src/roulette/BetFactory.java @@ -0,0 +1,36 @@ +package roulette; + +import java.lang.reflect.Constructor; +import java.util.Arrays; +import java.util.List; + +import roulette.bets.OddEven; +import roulette.bets.RedBlack; +import roulette.bets.ThreeConsecutive; + +public class BetFactory { + List betOptions = new ArrayList(Arrays.asList({"RedBlack", "OddEven", "RedBlack"})); + + public Bet createBet(int input){ + Class betClass = Class.forName(betOptions.get(input)); + Constructor betConstructor = betClass.getConstructor(String.class, Integer.class); + Bet bet = (Bet) betConstructor.newInstance(betOptions.get(input), input); + } + + /*public Bet createBet(int input){ + switch(input){ + case 1: + return new RedBlack("Red or Black", 1); + case 2: + return new OddEven("Odd or Even", 1); + case 3: + return new ThreeConsecutive("Three in a Row", 11); + + default: + return new RedBlack("default", 1); + }*/ + //} + +} + + diff --git a/src/roulette/Game.java b/src/roulette/Game.java index 63c6ed6..505e5bf 100755 --- a/src/roulette/Game.java +++ b/src/roulette/Game.java @@ -14,12 +14,9 @@ public class Game { // name of the game private static final String DEFAULT_NAME = "Roulette"; + private BetFactory myFactory = new BetFactory(); // add new bet subclasses here - private Bet[] myPossibleBets = { - new RedBlack("Red or Black", 1), - new OddEven("Odd or Even", 1), - new ThreeConsecutive("Three in a Row", 11), - }; + private Wheel myWheel; /** @@ -69,10 +66,10 @@ public void play (Gambler player) { */ 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])); + for (int k = 0; k < 3; k++) { + System.out.println(String.format("%d) %s", (k + 1), myFactory.createBet(k))); } - int response = ConsoleReader.promptRange("Please make a choice", 1, myPossibleBets.length); - return myPossibleBets[response - 1]; + int response = ConsoleReader.promptRange("Please make a choice", 1, 3); + return myFactory.createBet(response); } }