From da0e438ad785d44919a9fc880f4c5cd01813ea11 Mon Sep 17 00:00:00 2001 From: Logen Kain Date: Thu, 18 Feb 2021 09:36:12 -0500 Subject: [PATCH] Get started with java 2 mid-project --- ...ock.CIS 217 Project 1 Winter 2021(4).docx# | 1 + Project/MyDiceGameTest.java | 81 +++++++++++++++ Project/MyDie.java | 17 ++++ Project/SixDie.java | 32 ++++++ .../CIS 217 Project 1 Winter 2021(4).docx | Bin 0 -> 42459 bytes Project/notes/notes.java | 95 ++++++++++++++++++ Project/notes/temp-notes.java | 95 ++++++++++++++++++ 7 files changed, 321 insertions(+) create mode 100644 Project/.~lock.CIS 217 Project 1 Winter 2021(4).docx# create mode 100644 Project/MyDiceGameTest.java create mode 100644 Project/MyDie.java create mode 100644 Project/SixDie.java create mode 100644 Project/notes/CIS 217 Project 1 Winter 2021(4).docx create mode 100644 Project/notes/notes.java create mode 100644 Project/notes/temp-notes.java diff --git a/Project/.~lock.CIS 217 Project 1 Winter 2021(4).docx# b/Project/.~lock.CIS 217 Project 1 Winter 2021(4).docx# new file mode 100644 index 0000000..2570aaf --- /dev/null +++ b/Project/.~lock.CIS 217 Project 1 Winter 2021(4).docx# @@ -0,0 +1 @@ +,logen,logen,18.02.2021 09:04,file:///home/logen/.config/libreoffice/4; \ No newline at end of file diff --git a/Project/MyDiceGameTest.java b/Project/MyDiceGameTest.java new file mode 100644 index 0000000..fd54aa3 --- /dev/null +++ b/Project/MyDiceGameTest.java @@ -0,0 +1,81 @@ +import static org.junit.Assert.*; +import org.junit.*; + +/******************************************* + * The test class for Chuck + * + * @author Resendiz + * @version February 2021 + ******************************************/ + +public class MyDiceGameTest { + + /****************************************************** + * Test initial values of the constructor + *****************************************************/ + @Test + public void testConstructor() { + GameManager game = new GameManager(6); + int credits = game.getDice().getCredits(); + + // confirm there is only one copy of Title 1 + Assert.assertEquals("Game should start with 10 credits", + credits, 10); + } + + /****************************************************** + * Test Large + *****************************************************/ + @Test + public void testLarge() { + // confirm large is rolled + GameManager game = new GameManager(6); + int credits = game.getDice().getCredits(); + game.getDice().testRoll(new int[]{6, 6, 5}); + game.getDice().checkLarge(); + Assert.assertEquals("Dice => (6,6,5): credits should stay the same", + game.getDice().getCredits(), credits); + + // confirm large is not rolled + GameManager game2 = new GameManager(6); + credits = game2.getDice().getCredits(); + game2.getDice().testRoll(new int[]{1, 2, 3}); + game2.getDice().checkLarge(); + Assert.assertEquals("Dice => (1,2,3): credits should decrease by one", + game2.getDice().getCredits(), credits - 1); + + // confirm large rolled with three of kind + GameManager game3 = new GameManager(6); + credits = game3.getDice().getCredits(); + game3.getDice().testRoll(new int[]{4, 4, 4}); + game3.getDice().checkLarge(); + game3.getDice().checkTriplets(); + Assert.assertEquals("Dice => (4,4,4): credits should increased by one", + game3.getDice().getCredits(), credits + 1); + + // confirm large is not rolled with three of kind + GameManager game4 = new GameManager(6); + credits = game4.getDice().getCredits(); + game4.getDice().testRoll(new int[]{3, 3, 3}); + game4.getDice().checkLarge(); + game4.getDice().checkTriplets(); + Assert.assertEquals("Dice => (3,3,3): credits should stay the same", + game4.getDice().getCredits(), credits); + + } + + /****************************************************** + * Test Triplets + *****************************************************/ + @Test + public void testTriplets() { + // confirm triplets is rolled + GameManager game = new GameManager(6); + int credits = game.getDice().getCredits(); + game.getDice().testRoll(new int[]{1, 1, 1}); + game.getDice().checkTriplets(); + Assert.assertEquals("Dice => (1,1,1): credits should stay the same", + game.getDice().getCredits(), credits); + + } +} \ No newline at end of file diff --git a/Project/MyDie.java b/Project/MyDie.java new file mode 100644 index 0000000..4c38be9 --- /dev/null +++ b/Project/MyDie.java @@ -0,0 +1,17 @@ +import java.util.Random; + +public abstract class MyDie { + protected int myValue; + protected Random rand; + + public MyDie(){ + myValue = -1; + } + + abstract public void roll (); + abstract public int getValue(); + abstract public void setSeed(int seed); + abstract public int compareTo(Object o); + + +} diff --git a/Project/SixDie.java b/Project/SixDie.java new file mode 100644 index 0000000..082ebf6 --- /dev/null +++ b/Project/SixDie.java @@ -0,0 +1,32 @@ +import java.util.*; + +public class SixDie extends MyDie implements Comparable { + + public SixDie() { + // set default values + myValue = (int) (Math.random()*6)+1; + rand = new Random(); + } + + public void roll () { + myValue = rand.nextInt(6) + 1; + } + + public int getValue() { + return myValue; + } + + + // set the random number generator seed for testing + public void setSeed(int seed) { + rand.setSeed(seed); + + } + + // allows dice to be compared if necessary + public int compareTo(Object o) { + SixDie d = (SixDie) o; + return getValue() - d.getValue(); + } + +} \ No newline at end of file diff --git a/Project/notes/CIS 217 Project 1 Winter 2021(4).docx b/Project/notes/CIS 217 Project 1 Winter 2021(4).docx new file mode 100644 index 0000000000000000000000000000000000000000..9b3a7b9a4dd12bd79120aa2d132a8f4ac9b954f3 GIT binary patch literal 42459 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 getDice() - return the + * arraylist of the MyDie objects. + * + * public void roll() -- call the die object method to generate a new random + * number for each die in the arraylist + * + * public int getTotal() -- return the total addition of the values in all + * of the dice + * + * public void checkTriplets() -- Check if all three are same + * +1 credit if true + * public void checkDoubles() -- check for two of a kind + * + * public void checkLarge() -- Check if the sum of all dice is 10 or more + * +1 credit if true + * + * public void updateCredits() - Calls on all bets and removes one credit + * per play. Only allowed if enough credits. + * + * public boolean enoughCredits() -- return true if player has enough + * credits to play this rounte;else false + * + * public void testRoll(int [] values) -- + * This method will roll the dice until the desired values entered + * as the array of 3 int values have been rolled. This makes the + * testing a lot easier because you can control what numbers are + * rolled + * If there are enough credits to play, this method has to do the + * following: + * Repeatedly roll each die in the array of dice until the desired + * value is obtained. + * + * For example, if the method is called like this: + * game.testRoll(new int [] {6,3,3}); + * + * The arrayList should have those value in each die in that order. + *******************GameManager************************** + * GameManager Class + * The GameManager will have to control and access the container class, + * DiceCup.java + * + * GameManager should have only one variable. It'll be an instance of + * DiceCup. + * Constructors + * Public GameManager ( int num ) - + * instantiate a DiceCup object + * The number determines SixDie or EightDie + * + * Accessor Methods + * public String toString() - return the representation of the Game + * public DiceCup getDice() - return the DiceCup Objects + * + * Main Method + * Create an instance of GameManager + * Take input from user to see if you want six or eight + * Take input in loop to roll or stop + * + * Provide a print statement with Credits before bet, total sum of dice + * and credits after bet +*/ + diff --git a/Project/notes/temp-notes.java b/Project/notes/temp-notes.java new file mode 100644 index 0000000..4789320 --- /dev/null +++ b/Project/notes/temp-notes.java @@ -0,0 +1,95 @@ +/* Make a dice game */ +/* + * played with three d6 or d8 + * bets placed on combinations that can apear on dice + * + * game begins with 10 credits + * rolls cost one credit + * + * Bets are placed on possible outcomes + * Payout increases number of credits by one if that outcome appears + * + * Large -- total value over 10 + * Three of a kind -- face value of all dice identical + * Two of a kind -- face value of two are identical + * So... I guess you need to get at least two in order to gain credits + * + * sixDie.java is premade and complete. Don't make changes. + * *****************DiceCup****************************** + * create class DiceCup + * + * Create appropriate private vars for the Following + * + * an ArrayList of three MyDie objects + * credit balance int + * + * Constructors + * public DiceCup () + * instantiate and populate the arraylist + * instantiate arraylist of three SixDie or EightDie objects + * use loop to assign them to the elements of the arraylist + * Initialize credit to 10 + * + * Accessor Methods + * public int getCredits() return current credit balance + * public ArrayList getDice() - return the + * arraylist of the MyDie objects. + * + * public void roll() -- call the die object method to generate a new random + * number for each die in the arraylist + * + * public int getTotal() -- return the total addition of the values in all + * of the dice + * + * public void checkTriplets() -- Check if all three are same + * +1 credit if true + * public void checkDoubles() -- check for two of a kind + * + * public void checkLarge() -- Check if the sum of all dice is 10 or more + * +1 credit if true + * + * public void updateCredits() - Calls on all bets and removes one credit + * per play. Only allowed if enough credits. + * + * public boolean enoughCredits() -- return true if player has enough + * credits to play this rounte;else false + * + * public void testRoll(int [] values) -- + * This method will roll the dice until the desired values entered + * as the array of 3 int values have been rolled. This makes the + * testing a lot easier because you can control what numbers are + * rolled + * If there are enough credits to play, this method has to do the + * following: + * Repeatedly roll each die in the array of dice until the desired + * value is obtained. + * + * For example, if the method is called like this: + * game.testRoll(new int [] {6,3,3}); + * + * The arrayList should have those value in each die in that order. + *******************GameManager************************** + * GameManager Class + * The GameManager will have to control and access the container class, + * DiceCup.java + * + * GameManager should have only one variable. It'll be an instance of + * DiceCup. + * Constructors + * Public GameManager ( int num ) - + * instantiate a DiceCup object + * The number determines SixDie or EightDie + * + * Accessor Methods + * public String toString() - return the representation of the Game + * public DiceCup getDice() - return the DiceCup Objects + * + * Main Method + * Create an instance of GameManager + * Take input from user to see if you want six or eight + * Take input in loop to roll or stop + * + * Provide a print statement with Credits before bet, total sum of dice + * and credits after bet +*/ +