diff --git a/Casino Project b/Casino Project new file mode 100644 index 00000000..51537e36 --- /dev/null +++ b/Casino Project @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/Casino Project Leon Review UML.xml b/Casino Project Leon Review UML.xml new file mode 100644 index 00000000..7d7d09b9 --- /dev/null +++ b/Casino Project Leon Review UML.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/User Stories b/User Stories new file mode 100644 index 00000000..440e7345 --- /dev/null +++ b/User Stories @@ -0,0 +1,62 @@ +Casino User Stories + + +As a player… + +Go Fish + +I want to receive 5 cards so I can play a hand. +I want to recognize matches so that I can put down my pairs +I want to ask other players for cards so I can match with my cards to make pairs +I want to check my hand for cards that others ask for to give them the matching requested card +I want to give matching cards to the player that requested the card +I want to pull a card from the deck to replenish my hand when I failed in my request +I want to pair and discard all my matches to win the game + +Black Jack + +I want to place a bet to mark myself as a player +I want to receive 2 cards in order to play the game +I want to add the numeric values of my cards to determine my points +I want to take a hit to get my value closer to 21 without going over +I want to stay if my cards are close to 21 so that I don’t go over +I want to immediately show my hand if I have an Ace and a 10,Q,J or K + + +Craps +I want to place a bet +I want to roll a “Snake Eyes”, 7 or 11 to win outright +I want to roll the dice to set my point +I want to roll the dice try to match the set point +I don’t want to roll a “Snake Eyes”, 7 or 11 after the point is set + + +As the computer... I want to + +Ask the user if they want to play a game +Ask the user what type of game they want to play (card, dice) +Ask the user what type of card game they want to play (black jack, go fish) +Get the number of players playing. +Get the player names. + +Go fish +Deal five cards to each player + +Black jack +Ask players to place bets +Deal to cards to each player. +Ask first player if they want to hit or stay. +Give card to player that wants to hit. +Move to next player if previous player wants to stay. +Count each player total. +Pay users that beat dealer hand but are under 21. +Collect bets from players that go over 21. +Collect bets from players that lose to the dealer. + + + + + + + + diff --git a/pom.xml b/pom.xml index c6ec0cc8..39b8f5c2 100644 --- a/pom.xml +++ b/pom.xml @@ -16,4 +16,17 @@ test + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 00000000..254fc3aa Binary files /dev/null and b/src/.DS_Store differ diff --git a/src/main/.DS_Store b/src/main/.DS_Store new file mode 100644 index 00000000..db523072 Binary files /dev/null and b/src/main/.DS_Store differ diff --git a/src/main/java/.DS_Store b/src/main/java/.DS_Store new file mode 100644 index 00000000..dffb47f0 Binary files /dev/null and b/src/main/java/.DS_Store differ diff --git a/src/main/java/io/.DS_Store b/src/main/java/io/.DS_Store new file mode 100644 index 00000000..91a4b95a Binary files /dev/null and b/src/main/java/io/.DS_Store differ diff --git a/src/main/java/io/zipcoder/.DS_Store b/src/main/java/io/zipcoder/.DS_Store new file mode 100644 index 00000000..a0bdc27c Binary files /dev/null and b/src/main/java/io/zipcoder/.DS_Store differ diff --git a/src/main/java/io/zipcoder/casino/Bank.java b/src/main/java/io/zipcoder/casino/Bank.java new file mode 100644 index 00000000..3ba17673 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Bank.java @@ -0,0 +1,4 @@ +package io.zipcoder.casino; + +public class Bank { +} diff --git a/src/main/java/io/zipcoder/casino/BlackJack.java b/src/main/java/io/zipcoder/casino/BlackJack.java new file mode 100644 index 00000000..03a5c9b2 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/BlackJack.java @@ -0,0 +1,63 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; + +public class BlackJack extends CardGames { + + static ArrayList blackjackPlayers = new ArrayList<>(); + private static Player activePlayer; + //This constant can be used in console/actual game-play if a player/dealer gets blackjack + private static final int BLACKJACK = 21; + private static Deck deck; + + public BlackJack() { + start(); + } + + public static void createOnePlayer(String name, Double money) { + BlackjackPlayer blackjackPlayer = new BlackjackPlayer(name, money); + blackjackPlayers.add(blackjackPlayer); + } + + static void start() { + + BlackjackPlayer dealer = new BlackjackPlayer("dealer", 500.0); + blackjackPlayers.add(dealer); + activePlayer = dealer; + deck = new Deck(); + deck.populate(); + deck.shuffle(); + giveCardToPlayer(); + } + + static void giveCardToPlayer() { + Card card = deck.dealOneRandomCard(); + activePlayer.addCardToHand(card); + } + + static void endTurn() { + for (BlackjackPlayer blackjackPlayer : blackjackPlayers) { + if (!activePlayer.equals(blackjackPlayer)) + activePlayer = blackjackPlayer; + } + } + + //Below methods used primarily in testing and will be useful in implementation of actual game-play via console + + static ArrayList getPlayers() { + return blackjackPlayers; + } + + BlackjackPlayer getPlayerAtIndex(int index) { + return blackjackPlayers.get(index); + } + + void setActivePlayer(BlackjackPlayer blackjackPlayer) { + activePlayer = blackjackPlayer; + } + + Player getActivePlayer() { + return activePlayer; + } + +} diff --git a/src/main/java/io/zipcoder/casino/BlackjackPlayer.java b/src/main/java/io/zipcoder/casino/BlackjackPlayer.java new file mode 100644 index 00000000..4c63b805 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/BlackjackPlayer.java @@ -0,0 +1,87 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; + +public class BlackjackPlayer extends Player implements Comparable, Gamble { + + private String name; + private Double money; + private static ArrayList cardsInHand; + + BlackjackPlayer(String name, Double money) { + this.name = name; + this.money = money; + cardsInHand = new ArrayList<>(); + + } + + static void hitStay(String userAnswer) { + if (userAnswer.equalsIgnoreCase("yes")) { + BlackJack.endTurn(); + } else if (userAnswer.equalsIgnoreCase("no")) { + BlackJack.giveCardToPlayer(); + } else { + System.out.println("This table is for serious players only, take your money and get out of here!"); + } + } + + //Stubbed this method out b/c may be needed in console/actual game-play integration... delete it if not... + public int compareTo(BlackjackPlayer p) { + + return 0; + } + + public String getName() { + return name; + } + + Double checkBalance() { + return money; + } + + public Double bet(Double bet) { + money -= bet; + return bet; + } + + public void addCardToHand(Card newCard) { + cardsInHand.add(newCard); + } + + + static int viewHand(BlackjackPlayer blackjackPlayer) { + Integer handString = null; + for (Card card : cardsInHand) { + handString = card.getCardsValue(); + } + return handString; + } + + int getHandValue() { + int total = 0; + int acesCount = 0; + + for (Card card : cardsInHand) { + if (card.getCardsValue() == 11) + acesCount++; + total += card.getCardsValue(); + } + + if (total > 21) { + while (acesCount > 0) { + total -= 10; + acesCount--; + } + } + return total; + } + + ArrayList getHandList() { + return cardsInHand; + } + + void addWinnings(Double winnings) { + money += winnings; + } + +} diff --git a/src/main/java/io/zipcoder/casino/Card.java b/src/main/java/io/zipcoder/casino/Card.java new file mode 100644 index 00000000..2348f94b --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Card.java @@ -0,0 +1,27 @@ +package io.zipcoder.casino; + +public class Card { + + private CardValue value; + private Suit suit; + + public Card(Suit suit, CardValue value) { + this.suit = suit; + this.value = value; + } + + public String getSuitSymbols() { + + return suit.getSuit(); + } + + public int getCardsValue() { + return value.getValue(); + } + + //while this method was not originally supposed to be required in this class it is because of the contracts + //we have entered due to our arrangement of abstract and interfaces... had to make this empty method to use my + //addCardsToHand and cardsInHand for Blackjack + public void add(Card newCard) { + } +} diff --git a/src/main/java/io/zipcoder/casino/CardGames.java b/src/main/java/io/zipcoder/casino/CardGames.java new file mode 100644 index 00000000..7fdd6d7d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/CardGames.java @@ -0,0 +1,55 @@ +package io.zipcoder.casino; + +public class CardGames extends Game { + + private int userInputInt; + private String userInputString; + + public void chooseGameType() { + do { + + System.out.println(" \n" + + " ,--. ,------. ,--. ,--. ,-----. ,--. ,----. ,---. \n" + + " / \\ | .---',--. ,--.`--',-' '-. ' .--./ ,--,--.,--.--. ,-| | ' .-./ ,--,--.,--,--,--. ,---. / O \\ ,--.--. ,---. ,--,--. \n" + + "| () | | `--, \\ `' / ,--.'-. .-' | | ' ,-. || .--'' .-. | | | .---.' ,-. || || .-. : | .-. || .--'| .-. :' ,-. | \n" + + " \\ /.--. | `---. / /. \\ | | | | ' '--'\\\\ '-' || | \\ `-' | ' '--' |\\ '-' || | | |\\ --. | | | || | \\ --.\\ '-' | \n" + + " `--' '--' `------''--' '--'`--' `--' `-----' `--`--'`--' `---' `------' `--`--'`--`--`--' `----' `--' `--'`--' `----' `--`--' \n" + + " ,--. ,----. ,------.,--. ,--. \n" + + "/ | ' .-./ ,---. | .---'`--' ,---. | ,---. \n" + + "`| | | | .---.| .-. | | `--, ,--.( .-' | .-. | \n" + + " | |.--. ' '--' |' '-' ' | |` | |.-' `)| | | | \n" + + " `--''--' `------' `---' `--' `--'`----' `--' `--' \n" + + " ,---. ,-----. ,--. ,--. ,--. ,--. \n" + + "'.-. \\ | |) /_ | | ,--,--. ,---.| |,-. | | ,--,--. ,---.| |,-. \n" + + " .-' .' | .-. \\| |' ,-. || .--'| /,--. | |' ,-. || .--'| / \n" + + "/ '-..--. | '--' /| |\\ '-' |\\ `--.| \\ \\| '-' /\\ '-' |\\ `--.| \\ \\ \n" + + "'-----''--' `------' `--' `--`--' `---'`--'`--'`-----' `--`--' `---'`--'`--' \n" + + " "); + + System.out.println("Thank you for choosing to play a card game."); + userInputInt = Console.getUserInputInteger("What type of card game would you like to play?" + + "\nPlease enter 1 for go fish and 2 for black jack."); + + switch (userInputInt) { + case 0: + break; + case 1: + GameInterface.playGoFish(); + break; + case 2: + GameInterface.playBlackjack(); + break; + default: + System.out.println("You entered an invalid response :-(\n"); + } + + userInputString = Console.getUserInputString("Would you like to leave the the card game area?" + + "\nPlease enter yes or no."); + } while (userInputString.equalsIgnoreCase("no")); + + Game game = new Game(); + game.chooseGameType(); + } + +} + diff --git a/src/main/java/io/zipcoder/casino/CardValue.java b/src/main/java/io/zipcoder/casino/CardValue.java new file mode 100644 index 00000000..ea6c6918 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/CardValue.java @@ -0,0 +1,21 @@ +package io.zipcoder.casino; + +enum CardValue { + + Ace(11), Two(2), Three(3), Four(4), Five(4), Six(6), Seven(7), Eight(8), Nine(9), Ten(10), Jack(10), Queen(10), King(10); + + private int CardsValue; + + CardValue(int cardNumber) { + this.CardsValue = cardNumber; + } + + + int getValue() { + return CardsValue; + } +} + + //I had to remove some stuff from this class and put it elsewhere for proper implementation and proper Blackjack + //behavior + diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 74dfdd8c..12cc637b 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -2,4 +2,47 @@ public class Casino { + + public static void main(String[] args) { + System.out.println(" \n" + + ",-------.,--. ,-----. ,--. ,-----. ,--. \n" + + "`--. / `--' ,---. ' .--./ ,---. ,-| | ,---. ' .--./ ,--,--. ,---. `--',--,--, ,---. \n" + + " / / ,--.| .-. | | | | .-. |' .-. || .-. : | | ' ,-. |( .-' ,--.| \\| .-. | \n" + + " / `--.| || '-' ' ' '--'\\' '-' '\\ `-' |\\ --. ' '--'\\\\ '-' |.-' `)| || || |' '-' ' \n" + + "`-------'`--'| |-' `-----' `---' `---' `----' `-----' `--`--'`----' `--'`--''--' `---' \n" + + " `--' "); + + String userYesOrNo; + + do { + System.out.println("Welcome to Zip Code Casino." + + "\nYou are going to have lots of fun while you are here."); + userYesOrNo = Console.getUserInputString("Would you like to play a casino game?" + + "\nPlease enter yes or no"); + + if (userYesOrNo.equalsIgnoreCase("yes")) { + Game game = new Game(); + game.chooseGameType(); + } else if (userYesOrNo.equalsIgnoreCase("no")) { + System.out.println("We currently only have games inside Zip Code Casino." + + "\nI'm sorry if there is nothing else to do."); + } + + userYesOrNo = Console.getUserInputString("Would you like to leave Zip Code Casino?"); + } while (!(userYesOrNo.equalsIgnoreCase("yes"))); + + System.out.println(" \n" + + " ,--------.,--. ,--. ,--. ,--. \n" + + " '--. .--'| ,---. ,--,--.,--,--, | |,-. \\ `.' /,---. ,--.,--. \n" + + " | | | .-. |' ,-. || \\| / '. /| .-. || || | \n" + + " | | | | | |\\ '-' || || || \\ \\ | | ' '-' '' '' ' \n" + + " `--' `--' `--' `--`--'`--''--'`--'`--' `--' `---' `----' \n" + + ",--. ,--. ,--. ,--.,--. ,------. \n" + + "| '--' | ,--,--.,--. ,--.,---. ,--,--. | ,'.| |`--' ,---. ,---. | .-. \\ ,--,--.,--. ,--. \n" + + "| .--. |' ,-. | \\ `' /| .-. : ' ,-. | | |' ' |,--.| .--'| .-. : | | \\ :' ,-. | \\ ' / \n" + + "| | | |\\ '-' | \\ / \\ --. \\ '-' | | | ` || |\\ `--.\\ --. | '--' /\\ '-' | \\ ' \n" + + "`--' `--' `--`--' `--' `----' `--`--' `--' `--'`--' `---' `----' `-------' `--`--'.-' / \n" + + " `---' "); + } } + diff --git a/src/main/java/io/zipcoder/casino/Console.java b/src/main/java/io/zipcoder/casino/Console.java new file mode 100644 index 00000000..f613da0a --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Console.java @@ -0,0 +1,58 @@ +package io.zipcoder.casino; + +import java.util.InputMismatchException; +import java.util.Scanner; + +public class Console { + public static String getUserInputString(String promptUser) { + do { + + try { + System.out.println(promptUser); + String userInput = new Scanner(System.in).nextLine(); + return userInput; + } catch (InputMismatchException ime) { + System.out.println("Invalid input, please try again."); + continue; + } + } + while (true); + } + + public static Double getUserInputDouble(String promptUser) { + do { + try { + return Double.parseDouble(getUserInputString(promptUser)); + } catch (NumberFormatException nfe) { + System.out.println("Invalid response please try again."); + continue; + } + } while (true); + + } + + public static Integer getUserInputInteger(String promptUser) { + do { + try { + return Integer.parseInt(getUserInputString(promptUser)); + } catch (NumberFormatException nfe) { + System.out.println("Invalid response please try again."); + continue; + } + } while (true); + + + } + +// public static double checkForNullPointer(Double toBeChecked){ +// do { +// try { +// return toBeChecked; +// } catch (NullPointerException npe){ +// toBeChecked = CurrencyConverter.getCurrencyRates(getUserInputInteger("Invalid response. Please try again.")); +// continue; +// } +// } +// while (true); +// } +} diff --git a/src/main/java/io/zipcoder/casino/Craps.java b/src/main/java/io/zipcoder/casino/Craps.java new file mode 100644 index 00000000..c3c4d064 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Craps.java @@ -0,0 +1,125 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; + +public class Craps extends DiceGames implements Dice { + +CrapsPlayer player; +double pot; + ArrayList crapsPlayers = new ArrayList<>(); + + public int getDiceRollTotal() { + return diceRollTotal; + } + + int diceRollTotal; + + public void createOnePlayer(String name) { + CrapsPlayer newCrapsPlayer = new CrapsPlayer(name); + crapsPlayers.add(newCrapsPlayer); + } + +// public void createOnePlayer(String name){ +// CrapsPlayer newCrapsPlayer = new CrapsPlayer(name); +// } + + public void crapPlayerMoney(){ + //add chips to player player.addChips() + CrapsPlayer crapsPlayerBet = new CrapsPlayer() ; + } + + public void playersFirstRoll(){ + + setDiceRollTotal(); + player.setPlayerPoint(getDiceRollTotal()); + } + + //playerBet(Double bet){ + // pot =return double player.bet(bet) + // } + + public Double addWinnings() { + Double moMoney = 25.00; + for (CrapsPlayer player : createOnePlayer()) { + moMoney = player.getCrapPlayerBet() * 2; + } + + return moMoney; + } + + public void loseBet() { + for (CrapsPlayer player : createOnePlayer()) { //for every player in ouyr craps player arraylist... do stuff + player.setCrapPlayerBet(0.00); + } + } + + public void setDiceRollTotal(){ + diceRollTotal = Dice.rollDice(2); + } + + + public static String gameMessage = " "; + public static int gameStatus = 0; + + + + + public String firstRoll(CrapsPlayer player) { + + switch (diceRollTotal) { + case 7: + case 11: + gameMessage = "You rolled a: " + diceRollTotal + "! You win!"; + gameStatus = 1; + addWinnings(); + break; + case 2: + case 3: + case 12: + gameMessage = "You rolled a: " + diceRollTotal + "! You lose!"; + gameStatus =2; + + loseBet(); + break; + default: + player.setPlayerPoint(diceRollTotal); + gameMessage = "Your point has be set to: " + diceRollTotal + ". Please roll again."; + gameStatus =3; + break; + } + return gameMessage; + + } + + public String nextRoll(CrapsPlayer player) { + + if (diceRollTotal == player.getPlayerPoint()) { + gameMessage = "You win!"; + addWinnings(); + + } else { + switch (diceRollTotal) { + case 7: + case 11: + gameMessage = "You lose!"; + loseBet(); + gameStatus =2; + break; + case 2: + gameMessage = "You win!"; + addWinnings(); + gameStatus =1; + break; + default: + gameMessage = "You rolled a: " + diceRollTotal + " you need to roll a " + player.getPlayerPoint() + " Please roll again."; + nextRoll(player); + gameStatus =3; + break; + } + + + } + return gameMessage; + + + }} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/casino/CrapsPlayer.java b/src/main/java/io/zipcoder/casino/CrapsPlayer.java new file mode 100644 index 00000000..9d8fb582 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/CrapsPlayer.java @@ -0,0 +1,103 @@ +package io.zipcoder.casino; + +public class CrapsPlayer extends Player implements Gamble, Dice { + + private String name; + private Double crapPlayerMoney, playerMoney, crapPlayerBet, playerBet; + + + public CrapsPlayer(String name) { + } + + public static void crapPlayerMoney(Double playerMoney){ + + } + + public void crapPlayerBet(){ + System.out.println(Console.getUserInputDouble("How much would you like to bet?")); + } + + + + public void setCrapPlayerMoney(Double playerMoney){ + this.crapPlayerMoney = playerMoney; + } + + public Double getCrapPlayerMoney(){ + return playerMoney; + } + + public void setCrapPlayerBet(Double playerBet){ + this.crapPlayerBet = playerBet; + } + + public Double getCrapPlayerBet(){ + return playerBet; + } + + public Double crapPlayerMoneyAvailable(){ + Double moneyAvailable = 0.0; + Double getCrapPlayerMoney /*Total money available*/ = getCrapPlayerMoney(); + Double getCrapPlayerBet = getCrapPlayerBet(); + moneyAvailable = getCrapPlayerMoney - getCrapPlayerBet; + return moneyAvailable; + } + + public Double getMoney() { + return money; + } + + public void setMoney(Double money) { + this.money = money; + } + + private Double money; + private Card cardsInHand; + private int playerPoint; + +// public Double getPlayerBet() { +// return playerBet; +// } +// +// public void setPlayerBet(Double playerBet) { +// this.bet = playerBet; +// } +// +// private Double playerBet; + + CrapsPlayer(String name, Double money) { + super(name, money); + } + + + //We won't be using this method of course, since Craps is a dice game, but I HAD to put this Override method here + //to fulfill a contract we entered with our arrangement of abstracts and interfaces... it's just one of those + //things we didn't anticipate when we were making the UML and now we are stuck with... + @Override + public void addCardToHand(Card newCard) { + cardsInHand.add(newCard); + } + + public void getBet(Double bet){ + this.bet = bet; + } + + + public Double bet(Double money) { + money = money - bet; + return money; + } +// public Double bet(Double money){ +// playerBet = money; +// return playerBet; +// } + + public int getPlayerPoint() { + return playerPoint; + } + + public void setPlayerPoint(int playerPoint) { + this.playerPoint = playerPoint; + } +} + diff --git a/src/main/java/io/zipcoder/casino/Deck.java b/src/main/java/io/zipcoder/casino/Deck.java new file mode 100644 index 00000000..e693ee8d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Deck.java @@ -0,0 +1,45 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; +import java.util.Collections; + +public class Deck { + +// ArrayDeque cards = new ArrayDeque<>(); + + private ArrayList cards = new ArrayList(); + + public void populate() { + cards = new ArrayList(); + + for (Suit suit : Suit.values()) { + for (CardValue cardValue : CardValue.values()) { + cards.add(new Card(suit, cardValue)); + } + } + } + + + public Card dealOneRandomCard() { + Card topCard = cards.get(0); + cards.remove(topCard); + return topCard; + } + + public void shuffle() { + Collections.shuffle(cards); + } + + public ArrayList getCards() { + return cards; + } + + public int getDeckSize() { + return cards.size(); + } + + public Card getCardByIndex(int index) { + return cards.get(index); + } + +} diff --git a/src/main/java/io/zipcoder/casino/Dice.java b/src/main/java/io/zipcoder/casino/Dice.java new file mode 100644 index 00000000..50b65f2e --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Dice.java @@ -0,0 +1,24 @@ +package io.zipcoder.casino; + +public interface Dice { + + static int rollDice(int diceNeeded){ + //Dice made to be dynamic to adapt to dice needed per game. + int diceTotal =0; + int die; + + for (int i = 0; i < diceNeeded; i++) { + die= (int)(Math.random()*6) + 1; + diceTotal += die; + + } + + return diceTotal; + } + +// public static void main(String[] args) { +// +// System.out.println(Dice.rollDice(2)); +// } + +} diff --git a/src/main/java/io/zipcoder/casino/DiceGames.java b/src/main/java/io/zipcoder/casino/DiceGames.java new file mode 100644 index 00000000..d87282ff --- /dev/null +++ b/src/main/java/io/zipcoder/casino/DiceGames.java @@ -0,0 +1,11 @@ +package io.zipcoder.casino; + +public class DiceGames extends Game { + void start() { + } + + public void chooseDiceGame() { + + } +} + diff --git a/src/main/java/io/zipcoder/casino/Gamble.java b/src/main/java/io/zipcoder/casino/Gamble.java new file mode 100644 index 00000000..9fc8d906 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Gamble.java @@ -0,0 +1,8 @@ +package io.zipcoder.casino; + +interface Gamble { + + //needed to add parameters to this method since my bet method in Blackjack uses it and needed these parameters + Double bet(Double bet); + +} diff --git a/src/main/java/io/zipcoder/casino/Game.java b/src/main/java/io/zipcoder/casino/Game.java new file mode 100644 index 00000000..34677c6f --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Game.java @@ -0,0 +1,55 @@ +package io.zipcoder.casino; + + +public class Game { + + private int userInputInt; + private String userInputString; + + public void chooseGameType() { + do { + + System.out.println("\n\nThank you for choosing to play a game here at Zip Code Casino." + + "\nWe take pride in knowing that our games are everything that you are looking for.\n\n" + + " \n" + + " ,--. ,------. ,--. ,--. ,----. ,---. \n" + + " / \\ | .---',--. ,--.`--',-' '-. ' .-./ ,--,--.,--,--,--. ,---. / O \\ ,--.--. ,---. ,--,--. \n" + + "| () | | `--, \\ `' / ,--.'-. .-' | | .---.' ,-. || || .-. : | .-. || .--'| .-. :' ,-. | \n" + + " \\ /.--. | `---. / /. \\ | | | | ' '--' |\\ '-' || | | |\\ --. | | | || | \\ --.\\ '-' | \n" + + " `--' '--' `------''--' '--'`--' `--' `------' `--`--'`--`--`--' `----' `--' `--'`--' `----' `--`--' \n" + + " ,--. ,-----. ,--. ,----. \n" + + "/ | ' .--./ ,--,--.,--.--. ,-| | ' .-./ ,--,--.,--,--,--. ,---. \n" + + "`| | | | ' ,-. || .--'' .-. | | | .---.' ,-. || || .-. : \n" + + " | |.--. ' '--'\\\\ '-' || | \\ `-' | ' '--' |\\ '-' || | | |\\ --. \n" + + " `--''--' `-----' `--`--'`--' `---' `------' `--`--'`--`--`--' `----' \n" + + " ,---. ,------. ,--. ,----. \n" + + "'.-. \\ | .-. \\ `--' ,---. ,---. ' .-./ ,--,--.,--,--,--. ,---. \n" + + " .-' .' | | \\ :,--.| .--'| .-. : | | .---.' ,-. || || .-. : \n" + + "/ '-..--. | '--' /| |\\ `--.\\ --. ' '--' |\\ '-' || | | |\\ --. \n" + + "'-----''--' `-------' `--' `---' `----' `------' `--`--'`--`--`--' `----' \n" + + " "); + + userInputInt = Console.getUserInputInteger("\nWhat type of game would you like to play?" + + "\nPlease enter 1 for card game or 2 for dice game"); + + switch (userInputInt) { + case 0: + break; + case 1: + CardGames cardGames = new CardGames(); + cardGames.chooseGameType(); + break; + case 2: + GameInterface gameInterface = new GameInterface(); + gameInterface.playCraps(); + break; + default: + System.out.println("You entered an invalid choose :-(\n"); + } + + userInputString = Console.getUserInputString("Would you like to leave the game area?\n" + + "Please enter yes or no."); + + } while (userInputString.equalsIgnoreCase("no")); + } +} diff --git a/src/main/java/io/zipcoder/casino/GameInterface.java b/src/main/java/io/zipcoder/casino/GameInterface.java new file mode 100644 index 00000000..9b71534c --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GameInterface.java @@ -0,0 +1,200 @@ +package io.zipcoder.casino; + +public class GameInterface { + + + public void playCraps() { + + + String playAgain; + + + do {Craps craps = new Craps(); + // CrapsPlayer player = new CrapsPlayer(); + System.out.println("Welcome to the craps table."); + + + + // int numberOfPlayer = Console.getUserInputInteger("Welcome to the craps table. How many people are playing?"); + //creates players + + // for(int i = 1; i <= numberOfPlayer; i++){ + craps.createOnePlayer(Console.getUserInputString("Player name:")); + //} + + //get players bets +// for(int b = 0; b <= numberOfPlayer; b++){ +// System.out.println(craps.crapsPlayers.get(b).getName()); +// Double playerBet = craps.crapsPlayers.get(b).bet(Console.getUserInputDouble(" please place bet")); +// System.out.println(craps.crapsPlayers.get(b).getName()+" you bet " + playerBet); +// } + + + CrapsPlayer.crapPlayerMoney(Console.getUserInputDouble("How many chips would you like to purchase?")); + + +// craps.takePlayerBet(Consol.Input) +// craps.playersFirstRoll(Console.) + +// if() +// +// +// System.out.println(craps.firstRoll(craps.crapsPlayers.get(0))); +// +// +// System.out.println(craps.nextRoll(craps.crapsPlayers.get(0))); +// +// +// do{ +// int firstRol = craps.firstRoll(craps.crapsPlayers.get(0)); +// }while(firstRol != 1 || 2); + + + playAgain = Console.getUserInputString("Do you want to continue playing?"); + //first.getName(); + } while (playAgain.equals("no")); + + + } + + public static void playBlackjack() { + + String playAgain = ""; + + do { + + System.out.println("Welcome to the Blackjack table"); + +// int numberOfPlayers = Console.getUserInputInteger("How many players are there?"); +// for(int i = 0; i < numberOfPlayers; i++){ +// BlackJack.createOnePlayer(Console.getUserInputString("What is your name?"), Console.getUserInputDouble("How much money do you have?")); +// } + + BlackjackPlayer blackjackPlayer = new BlackjackPlayer(Console.getUserInputString("What is your name?"), + Console.getUserInputDouble("How much money are you bringing to the table?")); + BlackJack.blackjackPlayers.add(blackjackPlayer); + blackjackPlayer.bet(Console.getUserInputDouble("How much do you want to bet on this game?")); + BlackJack.start(); + System.out.println("The dealer's card was: " + BlackjackPlayer.viewHand(blackjackPlayer)); + BlackJack.endTurn(); + String playersTurn = "yes"; + String dealersTurn = "no"; + + while (playersTurn.equals("yes") && dealersTurn.equals("no")) { + + while (playersTurn.equals("yes")) { + BlackJack.giveCardToPlayer(); + BlackJack.giveCardToPlayer(); + System.out.println("Your hand's total is: " + BlackjackPlayer.viewHand(blackjackPlayer)); + String hitOrStay = Console.getUserInputString("Do you want to stay? Yes or no..."); + + if (hitOrStay.equalsIgnoreCase("yes")) { + BlackjackPlayer.hitStay("yes"); + BlackJack.endTurn(); + dealersTurn = "yes"; + playersTurn = "no"; + break; + } + while (hitOrStay.equalsIgnoreCase("no")) { + BlackjackPlayer.hitStay("no"); + System.out.println("Your card was: " + BlackjackPlayer.viewHand(blackjackPlayer)); +// if (blackjackPlayer.getHandValue() == 21) { +// System.out.println("You win!"); +// playAgain = Console.getUserInputString("Do you want to play another game of Blackjack?"); +// } +// if (blackjackPlayer.getHandValue() > 21) { +// System.out.println("You busted"); +// playAgain = Console.getUserInputString("Do you want to play another game of Blackjack?"); +// } + String hitOrStayAgain = Console.getUserInputString("Do you want to stay? Yes or no..."); + if (hitOrStayAgain.equalsIgnoreCase("yes")) { + BlackJack.endTurn(); + playersTurn = "no"; + dealersTurn = "yes"; + break; + } + } + } + + while (dealersTurn.equals("yes") && playersTurn.equals("no")) { + + while (dealersTurn.equals("yes")) { + BlackJack.giveCardToPlayer(); + System.out.println("The dealer's card was: " + BlackjackPlayer.viewHand(blackjackPlayer)); + String hitOrStay = Console.getUserInputString("Does the dealer want to stay? Yes or no..."); +// if (blackjackPlayer.getHandValue() == 21) { +// System.out.println("The dealer won!"); +// playAgain = Console.getUserInputString("Do you want to play another game of Blackjack?"); +// } +// if (blackjackPlayer.getHandValue() > 21) { +// System.out.println("The dealer busted"); +// + if (hitOrStay.equalsIgnoreCase("yes")) { + BlackjackPlayer.hitStay("yes"); + BlackJack.endTurn(); + dealersTurn = "no"; + playersTurn = "yes"; + break; + } + while (hitOrStay.equalsIgnoreCase("no")) { + BlackjackPlayer.hitStay("no"); + System.out.println("The dealer's card was: " + BlackjackPlayer.viewHand(blackjackPlayer)); + + String hitOrStayAgain = Console.getUserInputString("Does the dealer want to stay? Yes or no..."); + if (hitOrStayAgain.equalsIgnoreCase("yes")) { + BlackJack.endTurn(); + dealersTurn = "no"; + playersTurn = "yes"; + break; + } + } + } + } + } + + playAgain = Console.getUserInputString("Do you want to play another game of Blackjack?"); + //the below line to retrieve the same player name from previous game if player wants to continue may fail... + //so may need to rewrite, won't know until we test the game-play from console itself + blackjackPlayer.getName(); + + } while (playAgain.equals("no")); + CardGames cardGames = new CardGames(); + cardGames.chooseGameType(); + + } + + + public static void playGoFish() { + GoFish goFish = new GoFish(); + Deck goFishDeck = new Deck(); + goFishDeck.populate(); + goFishDeck.shuffle(); + String playAgain = null; + + do { + System.out.println("Welcome to the Go Fish table!!!"); + + for (int i = 0; i <= 1; i++) { + goFish.createOnePlayer(Console.getUserInputString("What is your name?")); + } + + goFish.goFishPlayers.get(0).dealGoFishHand(goFish.goFishPlayers, goFishDeck); + + goFish.showEverybodysHand(); + + goFish.askOtherPlayerForCard(); + + + int cardToAskFor = Console.getUserInputInteger("What card do you want to ask for? \nPlease input the index of the card 1 through " + goFish.goFishPlayers.get(0).getHandList().size() + "!"); + + goFish.askFirstPlayerForCard(); + + } while (playAgain.equals("no")); + CardGames cardGames = new CardGames(); + cardGames.chooseGameType(); + + } + +} + + diff --git a/src/main/java/io/zipcoder/casino/GoFish.java b/src/main/java/io/zipcoder/casino/GoFish.java new file mode 100644 index 00000000..c029bbda --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GoFish.java @@ -0,0 +1,44 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; +import java.util.Scanner; + +public class GoFish extends CardGames { + + public ArrayList goFishPlayers = new ArrayList<>(); + private Deck goFishDeck; + + public void createOnePlayer(String name){ + GoFishPlayer goFishPlayer = new GoFishPlayer(name); + goFishPlayers.add(goFishPlayer); + } + + public void showEverybodysHand(){ + for(GoFishPlayer player: goFishPlayers){ + System.out.println(player.getName() + " this is your hand.\n"); + System.out.println(player.viewHand()); + System.out.println(""); + } + } + + public void askOtherPlayerForCard(){ + System.out.println(goFishPlayers.get(1).getName()+"\n"); + System.out.println(goFishPlayers.get(1).viewHand()+"\n"); + } + + public void askFirstPlayerForCard(){ + System.out.println(goFishPlayers.get(0).getName()+"\n"); + System.out.println(goFishPlayers.get(0).viewHand()+"\n"); + + } + + + public ArrayList getPlayers() { + return goFishPlayers; + } + + public GoFishPlayer getPlayerAtIndex(int index) { + return goFishPlayers.get(index); + } + +} diff --git a/src/main/java/io/zipcoder/casino/GoFishPlayer.java b/src/main/java/io/zipcoder/casino/GoFishPlayer.java new file mode 100644 index 00000000..c73a4c63 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GoFishPlayer.java @@ -0,0 +1,59 @@ +package io.zipcoder.casino; + +import java.util.ArrayList; + +public class GoFishPlayer extends Player implements Comparable { + + @Override + public String getName() { + return name; + } + + public String name; + private ArrayList cardsInHand; + + GoFishPlayer (String name) { + this.name = name; + this.cardsInHand = new ArrayList<>(); + } + + + public void dealGoFishHand(ArrayList players, Deck deck) { + for (int i = 1; i <= 5; i++) { + for (GoFishPlayer player : players) + player.cardsInHand.add(deck.dealOneRandomCard()); + } + } + + public void addCardToHand(Card newCard) { + cardsInHand.add(newCard); + } + + public ArrayList getHandList() { + return cardsInHand; + } + + public String viewHand() { + String handString = ""; + for (Card card : cardsInHand) { + handString += card.getCardsValue(); + } + return handString; + } + + public void goFish(Card card){ + addCardToHand(card); + } + + + // public Double bet(Double bet) { +// return null; +// } + //Stubbed this method out b/c may be needed in console/actual game-play integration... delete it if not... + @Override + public int compareTo(GoFishPlayer o) { + return 0; + } +} + + diff --git a/src/main/java/io/zipcoder/casino/Player.java b/src/main/java/io/zipcoder/casino/Player.java new file mode 100644 index 00000000..18b9c170 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Player.java @@ -0,0 +1,27 @@ +package io.zipcoder.casino; + +abstract class Player { + + protected String name; + protected Double money; + protected double bet; + + + Player(String name, Double money){ + this.name = name; + this.money = money; + } + + Player() { + } + + public String getName() { + return name; + } + + void bet(double bet) { + this.bet = bet; + } + + public abstract void addCardToHand(Card card); +} diff --git a/src/main/java/io/zipcoder/casino/Suit.java b/src/main/java/io/zipcoder/casino/Suit.java new file mode 100644 index 00000000..6e6f55b8 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Suit.java @@ -0,0 +1,16 @@ +package io.zipcoder.casino; + +public enum Suit { + + CLUB("♧"), DIAMOND("♢"), HEART("♡"), SPADE("♤"); + + private final String suitSymbols; + + Suit(String symbol) { + this.suitSymbols = symbol; + } + + public String getSuit() { + return suitSymbols; + } +} diff --git a/src/test/java/io/zipcoder/casino/BlackJackTest.java b/src/test/java/io/zipcoder/casino/BlackJackTest.java new file mode 100644 index 00000000..01846c3a --- /dev/null +++ b/src/test/java/io/zipcoder/casino/BlackJackTest.java @@ -0,0 +1,58 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; + +public class BlackJackTest { + + BlackJack blackjack = new BlackJack(); + + @Test + public void startTest() { + //Have to expect 1 player (dealer) because other player is created at runtime via user-inputted name/money + int expected = 1; + int actual = blackjack.getPlayers().size(); + Assert.assertEquals(expected, actual); + } + + @Test + public void giveCardToPlayerTest() { + + blackjack.start(); + BlackjackPlayer dealer = blackjack.getPlayerAtIndex(0); + blackjack.giveCardToPlayer(); + ArrayList cards = dealer.getHandList(); + + int expected = 2; + + int actual = cards.size(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void setActivePlayerTest() { + + blackjack.start(); + ArrayList blackjackPlayers = blackjack.getPlayers(); + blackjack.setActivePlayer(blackjackPlayers.get(1)); + + Player expected = blackjackPlayers.get(1); + + Player actual = blackjack.getActivePlayer(); + + Assert.assertEquals(expected, actual); + } + + + @Test + public void endTurnTest() { + + blackjack.start(); + blackjack.endTurn(); + + } + +} diff --git a/src/test/java/io/zipcoder/casino/BlackjackPlayerTest.java b/src/test/java/io/zipcoder/casino/BlackjackPlayerTest.java new file mode 100644 index 00000000..1915a047 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/BlackjackPlayerTest.java @@ -0,0 +1,78 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; + +public class BlackjackPlayerTest { + + BlackjackPlayer blackjackPlayer = new BlackjackPlayer("Josh", 500.00); + + @Test + public void checkBalanceTest() { + Double expected = 500.0; + Double actual = blackjackPlayer.checkBalance(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void betTest() { + Double expected = 10.0; + + Double actual = blackjackPlayer.bet(10.0); + + Assert.assertEquals(expected, actual); + } + + @Test + public void addCardToHandAndViewHandTest() { + + Card card = new Card(Suit.DIAMOND, CardValue.Two); + int expected = card.getCardsValue(); + + blackjackPlayer.addCardToHand(card); + + int actual = blackjackPlayer.viewHand(blackjackPlayer); + + Assert.assertEquals(expected, actual); + } + + @Test + public void checkBalanceAfterBetTest() { + + Double expected = 400.0; + + blackjackPlayer.bet(100.0); + + Double actual = blackjackPlayer.checkBalance(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getHandValueTest() { + + + Card card = new Card(Suit.HEART, CardValue.Ten); + blackjackPlayer.addCardToHand(card); + + int expected = 10; + + int actual = blackjackPlayer.getHandValue(); + + + Assert.assertEquals(expected, actual); + + } + + @Test + public void getWinningsTest() { + Double expected = 1100.0; + + blackjackPlayer.addWinnings(600.0); + Double actual = blackjackPlayer.checkBalance(); + + Assert.assertEquals(expected, actual); + } +} + diff --git a/src/test/java/io/zipcoder/casino/CardTest.java b/src/test/java/io/zipcoder/casino/CardTest.java new file mode 100644 index 00000000..8851dd64 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/CardTest.java @@ -0,0 +1,30 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; + +public class CardTest { + + @Test + public void getCardsValueTest() { + + Card card = new Card(Suit.CLUB, CardValue.Ace); + int expected = 11; + + int actual = card.getCardsValue(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getSuitSymbolTest() { + + Card card = new Card(Suit.HEART, CardValue.Ace); + String expected = "♡"; + + String actual = card.getSuitSymbols(); + + Assert.assertEquals(expected, actual); + + } +} diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java index e9286523..aebbb610 100644 --- a/src/test/java/io/zipcoder/casino/CasinoTest.java +++ b/src/test/java/io/zipcoder/casino/CasinoTest.java @@ -1,5 +1,12 @@ package io.zipcoder.casino; +import org.junit.Test; + public class CasinoTest { + + @Test + public void constructorTest(){ + + } } diff --git a/src/test/java/io/zipcoder/casino/CrapsTest.java b/src/test/java/io/zipcoder/casino/CrapsTest.java new file mode 100644 index 00000000..a7a4aba4 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/CrapsTest.java @@ -0,0 +1,98 @@ +package io.zipcoder.casino; + +import org.junit.Test; +import org.junit.Assert; +import org.junit.*; + +public class CrapsTest { + + CrapsPlayer jeff = new CrapsPlayer("jeff", 50.00); + Craps cPlayer = new Craps(); + + @Test + public void firstRollForSeven() { + + cPlayer.diceRollTotal = 7; + + String expected = "You rolled a: 7! You win!"; + + String actual = cPlayer.firstRoll(jeff); + + Assert.assertEquals(expected,actual); + } + + @Test + public void firstRollForEleven() { + + cPlayer.diceRollTotal = 11; + + String expected = "You rolled a: 11! You win!"; + + String actual = cPlayer.firstRoll(jeff); + + Assert.assertEquals(expected,actual); + } + + @Test + public void firstRollForTwo() { + + cPlayer.diceRollTotal = 2; + + String expected = "You rolled a: 2! You lose!"; + + String actual = cPlayer.firstRoll(jeff); + + Assert.assertEquals(expected,actual); + } + + @Test + public void firstRollForOther() { + + cPlayer.diceRollTotal = 5; + String expected = "Your point has be set to: 5. Please roll again."; + + String actual = cPlayer.firstRoll(jeff); + + Assert.assertEquals(expected,actual); + } + + @Test + public void setPlayerPointTest() { + + cPlayer.diceRollTotal = 5; + cPlayer.firstRoll(jeff); + int expected = 5; + + int actual = jeff.getPlayerPoint(); + + Assert.assertEquals(expected,actual); + } + + + + @Test + public void nextRoll() { + //The roll is based on a random number so testing is iffy. + cPlayer.diceRollTotal = 5; + jeff.setPlayerPoint(5); + cPlayer.nextRoll(jeff); + jeff.getPlayerPoint(); + String expected = "You rolled..."; + + String actual = Craps.gameMessage; + + Assert.assertEquals(expected,actual); + + } + + + + @Test + public void addWinningsTest() { + jeff.bet(25.00); + Double expected = 50.0; + Double actual = cPlayer.addWinnings(); + + Assert.assertEquals(expected, actual); + } +} diff --git a/src/test/java/io/zipcoder/casino/DeckTest.java b/src/test/java/io/zipcoder/casino/DeckTest.java new file mode 100644 index 00000000..1af11db7 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/DeckTest.java @@ -0,0 +1,66 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; + +public class DeckTest { + + Deck deck = new Deck(); + + @Test + public void populateTest() { + + deck.populate(); + String expected = "♤"; + Integer expected2 = CardValue.King.getValue(); + Integer expected3 = 52; + + String actual = deck.getCardByIndex(51).getSuitSymbols(); + Integer actual2 = deck.getCardByIndex(51).getCardsValue(); + Integer actual3 = deck.getDeckSize(); + + Assert.assertEquals(expected, actual); + Assert.assertEquals(expected2, actual2); + Assert.assertEquals(expected3, actual3); + } + + @Test + public void dealOneRandomCardTest() { + + deck.populate(); + Card expected = deck.getCardByIndex(0); + + Card actual = deck.dealOneRandomCard(); + + Assert.assertEquals(expected, actual); + + + } + + @Test + public void getDeckSizeTest() { + + deck.populate(); + Integer expected = 52; + + Integer actual = deck.getDeckSize(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getCardTest() { + + deck.populate(); + String expected = "♧"; + Integer expected2 = CardValue.Ace.getValue(); + + String actual = deck.getCardByIndex(0).getSuitSymbols(); + Integer actual2 = deck.getCardByIndex(0).getCardsValue(); + + + Assert.assertEquals(expected, actual); + Assert.assertEquals(expected2, actual2); + + } +} diff --git a/src/test/java/io/zipcoder/casino/DiceTest.java b/src/test/java/io/zipcoder/casino/DiceTest.java new file mode 100644 index 00000000..e2bb1676 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/DiceTest.java @@ -0,0 +1,20 @@ +package io.zipcoder.casino; + +import org.junit.Test; +import org.junit.Assert; + +import static org.junit.Assert.*; + +public class DiceTest { + @Test + + public void rollDiceTest() { + + Integer actual = Dice.rollDice(2); + // System.out.println(actual); + + Assert.assertTrue(actual <13 && actual > 0); + } + + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/casino/GoFishPlayerTest.java b/src/test/java/io/zipcoder/casino/GoFishPlayerTest.java new file mode 100644 index 00000000..4deea044 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GoFishPlayerTest.java @@ -0,0 +1,28 @@ +package io.zipcoder.casino; + +import org.junit.*; + + +public class GoFishPlayerTest { + + GoFishPlayer goFishPlayer = new GoFishPlayer("josh"); + + + @Test + public void addCardToHandAndViewHandTest() { + + Card card = new Card(Suit.CLUB, CardValue.Two); + int expected = 2; + + goFishPlayer.addCardToHand(card); + + int actual = card.getCardsValue(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void dealGoFishHandTest(){ + + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/casino/GoFishTest.java b/src/test/java/io/zipcoder/casino/GoFishTest.java new file mode 100644 index 00000000..6957fd55 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GoFishTest.java @@ -0,0 +1,10 @@ +package io.zipcoder.casino; + +import org.junit.*; + +public class GoFishTest { + + //@Test + + +} \ No newline at end of file