From 969912d2f0910e16602b95e762dab4e430a2fa37 Mon Sep 17 00:00:00 2001 From: Nick Lockett Date: Thu, 3 Mar 2016 15:58:24 -0500 Subject: [PATCH 1/4] roulette task 1 complete --- .classpath | 6 ++++++ src/roulette/Factory.java | 29 +++++++++++++++++++++++++++++ src/roulette/Game.java | 15 +++++---------- 3 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 .classpath create mode 100644 src/roulette/Factory.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fb50116 --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/roulette/Factory.java b/src/roulette/Factory.java new file mode 100644 index 0000000..8576452 --- /dev/null +++ b/src/roulette/Factory.java @@ -0,0 +1,29 @@ +package roulette; + +import java.util.Arrays; +import java.util.List; + +public class Factory { + private List betTypes; + + public Factory () { + betTypes = Arrays.asList(new RedBlack("Red or Black", 1), + new OddEven("Odd or Even", 1), + new ThreeConsecutive("Three in a Row", 11)); + } + + public Bet getBet (int index){ + return betTypes.get(index); + } + + public void print(){ + for (int i = 0; i < betTypes.size(); i++) { + System.out.println(String.format("%d) %s", (i + 1),betTypes.get(i).getDescription())); + } + } + + public int getLenth(){ + return betTypes.size(); + } + +} diff --git a/src/roulette/Game.java b/src/roulette/Game.java index 977c80a..2833df3 100755 --- a/src/roulette/Game.java +++ b/src/roulette/Game.java @@ -12,11 +12,7 @@ public class Game { // name of the game private static final String DEFAULT_NAME = "Roulette"; // 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 Factory betOptions; private Wheel myWheel; /** @@ -24,6 +20,7 @@ public class Game { */ public Game () { myWheel = new Wheel(); + betOptions = new Factory(); } /** @@ -66,10 +63,8 @@ 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].getDescription())); - } - int response = ConsoleReader.promptRange("Please make a choice", 1, myPossibleBets.length); - return myPossibleBets[response - 1]; + betOptions.print(); + int response = ConsoleReader.promptRange("Please make a choice", 1, betOptions.getLenth()); + return betOptions.getBet(response - 1); } } From 6ae4042a46cd83bc672141902e16d6ad42524e6e Mon Sep 17 00:00:00 2001 From: Nick Lockett Date: Thu, 3 Mar 2016 16:19:06 -0500 Subject: [PATCH 2/4] roulette lab tast 2' --- src/roulette/Factory.java | 30 +++++++++++++++++++++++------- src/roulette/Parameters.java | 27 +++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 src/roulette/Parameters.java diff --git a/src/roulette/Factory.java b/src/roulette/Factory.java index 8576452..3cba7cb 100644 --- a/src/roulette/Factory.java +++ b/src/roulette/Factory.java @@ -1,24 +1,40 @@ package roulette; +import java.lang.reflect.Constructor; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class Factory { - private List betTypes; - + private Map betTypes; + public Factory () { - betTypes = Arrays.asList(new RedBlack("Red or Black", 1), - new OddEven("Odd or Even", 1), - new ThreeConsecutive("Three in a Row", 11)); +// betTypes = Arrays.asList(new RedBlack("Red or Black", 1), +// new OddEven("Odd or Even", 1), +// new ThreeConsecutive("Three in a Row", 11)); + betTypes = new HashMap<>(); + betTypes.put(0, new Parameters("RedBlack", "Red or Black", 1)); + betTypes.put(1, new Parameters("OddEven", "Odd or Even", 1)); + betTypes.put(2, new Parameters("ThreeConsecutive", "Three in a Row", 11)); } public Bet getBet (int index){ - return betTypes.get(index); + try { + Class bet = Class.forName(betTypes.get(index).getGameName()); + Constructor c = bet.getConstructor(String.class, Integer.TYPE); + return (Bet) c.newInstance(betTypes.get(index).getDescription(), betTypes.get(index).getOdds()); + } catch (ReflectiveOperationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } public void print(){ for (int i = 0; i < betTypes.size(); i++) { - System.out.println(String.format("%d) %s", (i + 1),betTypes.get(i).getDescription())); + System.out.println(String.format("%d) %s", (i + 1), getBet(i).getDescription())); } } diff --git a/src/roulette/Parameters.java b/src/roulette/Parameters.java new file mode 100644 index 0000000..c687ce5 --- /dev/null +++ b/src/roulette/Parameters.java @@ -0,0 +1,27 @@ +package roulette; + +public class Parameters { + + private String description; + private String gameName; + private int odds; + + public Parameters (String gameName, String description, int odds) { + this.description = description; + this.gameName = gameName; + this.odds = odds; + } + + public String getDescription() { + return description; + } + + public int getOdds() { + return odds; + } + + public String getGameName() { + return gameName; + } + +} From afc70a92a6c0ae0ac80f17c7bc0a1368813c9552 Mon Sep 17 00:00:00 2001 From: Nick Lockett Date: Thu, 3 Mar 2016 16:23:12 -0500 Subject: [PATCH 3/4] fixed task 2 --- src/roulette/Factory.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/roulette/Factory.java b/src/roulette/Factory.java index 3cba7cb..3d3acd6 100644 --- a/src/roulette/Factory.java +++ b/src/roulette/Factory.java @@ -14,9 +14,9 @@ public Factory () { // new OddEven("Odd or Even", 1), // new ThreeConsecutive("Three in a Row", 11)); betTypes = new HashMap<>(); - betTypes.put(0, new Parameters("RedBlack", "Red or Black", 1)); - betTypes.put(1, new Parameters("OddEven", "Odd or Even", 1)); - betTypes.put(2, new Parameters("ThreeConsecutive", "Three in a Row", 11)); + betTypes.put(0, new Parameters("roulette.RedBlack", "Red or Black", 1)); + betTypes.put(1, new Parameters("roulette.OddEven", "Odd or Even", 1)); + betTypes.put(2, new Parameters("roulette.ThreeConsecutive", "Three in a Row", 11)); } public Bet getBet (int index){ From cf0101349037ada93be7716fb471c95ac43e7f64 Mon Sep 17 00:00:00 2001 From: Nick Lockett Date: Thu, 3 Mar 2016 16:32:10 -0500 Subject: [PATCH 4/4] roulette task 3 complete' --- src/roulette/Factory.java | 20 ++++++++++++++------ src/roulette/bets.properties | 3 +++ 2 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 src/roulette/bets.properties diff --git a/src/roulette/Factory.java b/src/roulette/Factory.java index 3d3acd6..2ac23a8 100644 --- a/src/roulette/Factory.java +++ b/src/roulette/Factory.java @@ -5,18 +5,26 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.ResourceBundle; public class Factory { + private static final String PATH = "roulette.bets"; private Map betTypes; + private ResourceBundle myBundle; public Factory () { -// betTypes = Arrays.asList(new RedBlack("Red or Black", 1), -// new OddEven("Odd or Even", 1), -// new ThreeConsecutive("Three in a Row", 11)); + myBundle = ResourceBundle.getBundle(PATH); betTypes = new HashMap<>(); - betTypes.put(0, new Parameters("roulette.RedBlack", "Red or Black", 1)); - betTypes.put(1, new Parameters("roulette.OddEven", "Odd or Even", 1)); - betTypes.put(2, new Parameters("roulette.ThreeConsecutive", "Three in a Row", 11)); + + int counter = 0; + for(String key: myBundle.keySet()) { + String className = "roulette." + key; + String DescriptionAndInt = myBundle.getString(key); + String [] arguments = DescriptionAndInt.split(","); + betTypes.put(counter, new Parameters(className, arguments[0], Integer.parseInt(arguments[1]))); + counter++; + } + } public Bet getBet (int index){ diff --git a/src/roulette/bets.properties b/src/roulette/bets.properties new file mode 100644 index 0000000..fdef635 --- /dev/null +++ b/src/roulette/bets.properties @@ -0,0 +1,3 @@ +RedBlack= Red or Black,1 +ThreeConsecutive = Three in a row,11 +OddEven= Odd or Even,1 \ No newline at end of file