diff --git a/pom.xml b/pom.xml index c6ec0cc8..6f0824b1 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,18 @@ io.zipcoder casino 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.7 + 1.7 + + + + 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..e6b077dd --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Blackjack.java @@ -0,0 +1,104 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Console.Console; +import io.zipcoder.casino.Interfaces.Gamble; + +public class Blackjack extends CardGame implements Gamble{ + BlackjackPlayer player; + BlackjackDealer dealer; + private double pot = 0; + + public BlackjackPlayer getPlayer() { + return player; + } + public BlackjackDealer getDealer() { + return dealer; + } + + public Blackjack(Player player){ + this.player = new BlackjackPlayer(player); + Player dealer = new Player("Dealer",0,0); + this.dealer = new BlackjackDealer(dealer); + } + + public void start(){ + Console.print("Welcome to BlackJack"); + play(); + } + + public void play(){ + pot = takeBet(); + System.out.println(pot); + deal(player,dealer,2); + askForHitOrStay(); + dealerPlay(); + checkWin(); + if(playAgain()){ + play(); + }else{ + gameOptions(); + } + } + + public boolean playAgain(){ + String input = Console.getValidString("Would you like to play again?","yes","no"); + return "yes".equalsIgnoreCase(input); + } + + public void checkWin(){ + if(playerWins()){ + Console.print("Player wins\n"); + casinoplayer.addToBalance(pot); + }else{ + Console.print("Dealer wins\n"); + } + Console.print("Dealer had\n"+dealer.getStringDisplayHand()); + Console.print("Score of "+dealer.getScore()); + } + + public void askForHitOrStay(){ + Console.print("Dealer is showing\n"+dealer.getHand().get(0).toString()); + String hitOrStay; + do{ + printHand(player); + Console.print("Score of "+player.getScore() + "\n"); + if(player.getScore()>=21){ + return; + } + hitOrStay = Console.getValidString("Would you like to hit or stay?","hit","stay"); + if("hit".equalsIgnoreCase(hitOrStay)){ + player.addCard(deck.getCard()); + }else { + return; + } + }while(true); + } + + public void dealerPlay(){ + while(dealer.hitDealer()){ + dealer.addCard(deck.getCard()); + } + } + + public double takeBet(){ + Console.print("You current balance is "+format.format(casinoplayer.getBalance())); + double bet; + while(true){ + bet = Console.getDouble("How much would you like bet?"); + if(casinoplayer.getBalance() >= bet){ + casinoplayer.addToBalance(-1*bet); + return bet; + } + Console.print("Invalid bet"); + } + } + + public boolean playerWins(){ + if((player.getScore() == 21 && dealer.getScore() != 21) || + (player.getScore() < 21 && dealer.getScore() < player.getScore()) || + (player.getScore() < 21 && dealer.getScore() > 21)) { + return true; + } + return false; + } +} diff --git a/src/main/java/io/zipcoder/casino/BlackjackDealer.java b/src/main/java/io/zipcoder/casino/BlackjackDealer.java new file mode 100644 index 00000000..f7787ca9 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/BlackjackDealer.java @@ -0,0 +1,12 @@ +package io.zipcoder.casino; + +public class BlackjackDealer extends BlackjackPlayer{ + + public BlackjackDealer(Player person) { + super(person); + } + + public boolean hitDealer(){ + return getScore() < 17; + } +} 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..11a7e9c0 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/BlackjackPlayer.java @@ -0,0 +1,32 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Deck.Card; + +public class BlackjackPlayer extends CardPlayer{ + + public BlackjackPlayer(Player person) { + super(); + } + + public int getScore() { + int sum = 0; + for(Card card: hand) { + sum += card.getValue(); + } + + if(isAceInHand() && sum <= 11) { + sum += 10; + } + return sum; + } + + private boolean isAceInHand() { + for(Card card: hand) { + if(card.getValue() == 1) { + return true; + } + } + return false; + } + +} diff --git a/src/main/java/io/zipcoder/casino/CardGame.java b/src/main/java/io/zipcoder/casino/CardGame.java new file mode 100644 index 00000000..3921fec4 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/CardGame.java @@ -0,0 +1,44 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Console.Console; +import io.zipcoder.casino.Deck.Card; +import io.zipcoder.casino.Deck.Deck; + +abstract class CardGame extends Casino { + Deck deck = new Deck(); + + public void deal(CardPlayer player,CardPlayer dealer,int amount){ + clearHands(player,dealer); + deck.shuffle(); + for(int i =0;i hand; + + public CardPlayer() { + super("cardPlayer",0,0); + hand = new ArrayList<>(); + } + + public ArrayList getHand() { + return hand; + } + + public void addCard(Card card) { + hand.add(card); + } + + public void clearHand(){ + hand.clear(); + } + + public String getStringDisplayHand(){ + String output = ""; + Card card; + for (int i=0; i hand){ + this.hand = hand; + } + +} diff --git a/src/main/java/io/zipcoder/casino/Casino.java b/src/main/java/io/zipcoder/casino/Casino.java index 74dfdd8c..68cfbf72 100644 --- a/src/main/java/io/zipcoder/casino/Casino.java +++ b/src/main/java/io/zipcoder/casino/Casino.java @@ -1,5 +1,52 @@ package io.zipcoder.casino; +import io.zipcoder.casino.Console.Console; + +import java.text.DecimalFormat; +import java.util.Arrays; public class Casino { + DecimalFormat format = new DecimalFormat("0.00"); + static Player casinoplayer; + + public void startCasino(){ + + Console.print("Welcome to the casino"); + String name = Console.getString("What is your name?"); + int age = (int)Console.getDouble("How old are you?"); + double money = Console.getDouble("How much coin you got?"); + casinoplayer= new Player(name,money,age); + + gameOptions(); + + } + + public void gameOptions(){ + String[] gameOptionList = {"CRAPS","BLACKJACK","GO FISH"}; + Console.print("Game options:\n"+ Arrays.asList(gameOptionList).toString()); + String input = Console.getValidString("What game would you like to play?",gameOptionList); + switch(input.toLowerCase()){ + case "blackjack": + validAge(); + new Blackjack(casinoplayer).start(); + break; + case "go fish": + new GoFish(casinoplayer).goFishStart(); + break; + case "craps": + validAge(); + new Craps(casinoplayer).play(); + break; + default: + gameOptions(); + } + } + + public void validAge(){ + if(casinoplayer.getAge()<21){ + Console.print("Too young sucka"); + gameOptions(); + } + } + } diff --git a/src/main/java/io/zipcoder/casino/Console/Console.java b/src/main/java/io/zipcoder/casino/Console/Console.java new file mode 100644 index 00000000..fddc4e12 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Console/Console.java @@ -0,0 +1,57 @@ +package io.zipcoder.casino.Console; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.InputMismatchException; +import java.util.Scanner; + +public class Console extends ArrayList { + + public static String getString(String prompt) { + Scanner input = new Scanner(System.in); + System.out.println(prompt); + String userinput = input.nextLine(); + return userinput; + } + + public static double getDouble(String prompt) { + do { + try { + Scanner input = new Scanner(System.in); + System.out.println(prompt); + double userinput = input.nextDouble(); + return userinput; + } catch (IllegalArgumentException | InputMismatchException e) { + System.out.println("INVALID AMOUNT\n"); + continue; + } + } while (true); + } + public static void print(String prompt){ + System.out.println(prompt); + } + + + @Override + public boolean contains(Object object){ + String string = (String)object; + for (String str: this){ + if(str.equalsIgnoreCase(string)){ + return true; + } + } + return false; + } + + public static String getValidString(String prompt,String... validInputs){ + String input; + while(true){ + input = getString(prompt); + if (Arrays.asList(validInputs).contains(input)){ + return input; + } + print("Invalid input"); + } + } + +} 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..1eea5be3 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Craps.java @@ -0,0 +1,100 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Console.Console; +import io.zipcoder.casino.Interfaces.Gamble; +import io.zipcoder.casino.Interfaces.Game; + +import java.util.Scanner; + +public class Craps extends Casino implements Gamble, Game { + Scanner input = new Scanner(System.in); + Player crapsplayer; + //double playerCash = crapsplayer.balance; null pointer + double bet; + + + public Craps(Player player) { + this.crapsplayer = player; + } + + public boolean play() { + boolean play = true; + Console.print("Welcome to Craps"); + + while (play) { + + Console.print("Player balance: " + format.format(crapsplayer.balance)); + + takeBet(); + + int rollONE = roll(); + int target = rollONE; + + if (rollONE == 7 || rollONE == 11) { + playerWin(bet); + } else if (rollONE == 2 || rollONE == 3 || rollONE == 12) { + playerLose(bet); + } else { + Console.print("Target is now " + rollONE); + int rollTWO = roll(); + checkRollTwo(rollTWO, rollONE); + if (rollTWO == 7) { + playerLose(bet); + } + } + play = playAgain(); + } + crapsplayer.setBalance(crapsplayer.balance); + gameOptions(); + return true; + } + + + public int roll() { + Console.print("Press Enter key to roll"); + input.nextLine(); + int dice1 = (int) (Math.random() * 6) + 1; + int dice2 = (int) (Math.random() * 6) + 1; + + int sum = dice1 + dice2; + + Console.print("You rolled " + dice1 + " and " + dice2); + Console.print("Rolled " + sum); + return sum; + } + + public int checkRollTwo(int rollTWO, int rollONE) { + while (rollTWO != 7) { + if (rollTWO == rollONE) { + playerWin(bet); + break; + } else { + Console.print("Target is " + rollONE); + } + rollTWO = roll(); + } + return rollTWO; + } + + private boolean playAgain() { + String userinput = Console.getString("Play again? Y/N"); + return !userinput.equalsIgnoreCase("N") && !userinput.equalsIgnoreCase("no"); + } + + public double takeBet() { + do { + bet = Console.getDouble("Place your bet: "); + } while (bet > crapsplayer.balance); + return bet; + } + + public void playerLose(double bet) { + Console.print("You lose!"); + crapsplayer.balance -= bet; + } + + public void playerWin(double bet) { + Console.print("You win!"); + crapsplayer.balance += bet; + } +} diff --git a/src/main/java/io/zipcoder/casino/Deck/Card.java b/src/main/java/io/zipcoder/casino/Deck/Card.java new file mode 100644 index 00000000..03504dd5 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Deck/Card.java @@ -0,0 +1,58 @@ +package io.zipcoder.casino.Deck; + + +public class Card +{ + private Suit suit; + public static String[] suitSymbols = {"♡", "♢", "♧", "♤"}; + public static String[] faceSymbols = {"A", "J", "Q", "K"}; + private Integer value; + private Enum goFishValue; + private String topCardRepresentation; + private String bottomCardRepresentation; + private static String middleCardRepresentation="| |\n"; + + private Card(){ + } + + @Override + public String toString(){ + return topCardRepresentation+middleCardRepresentation+bottomCardRepresentation; + } + public String getTopCardRepresentation(){ + return topCardRepresentation; + } + + + public Card(Suit passedSuit, Integer passedValue){ + this(passedSuit, passedValue, "X"); + } + public Card(Suit passedSuit, Integer passedValue, String passedSuitRepresentation){ + this(passedSuit, passedValue, passedSuitRepresentation, "Y"); + } + public Card(Suit passedSuit, Integer passedValue, String passedSuitRepresentation, String passedFaceRepresentation){ + suit=passedSuit; + value=passedValue; + topCardRepresentation=" ----- \n"+ + "|"+String.format("%2s%-3s", passedFaceRepresentation, passedSuitRepresentation)+"|\n"; + bottomCardRepresentation="|"+String.format("%4s%s", passedFaceRepresentation, passedSuitRepresentation)+"|\n"+ + " ----- \n"; + } + + public String getGoFishValue() { + return goFishValue.toString(); + } + + public void setGoFishValue(GoFishValue goFishValue) { + this.goFishValue = goFishValue; + } + + public Integer getValue(){ + return value; + } + + public Suit getSuit(){ + return suit; + } + +} diff --git a/src/main/java/io/zipcoder/casino/Deck/Deck.java b/src/main/java/io/zipcoder/casino/Deck/Deck.java new file mode 100644 index 00000000..6dd55902 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Deck/Deck.java @@ -0,0 +1,53 @@ +package io.zipcoder.casino.Deck; + +import java.util.ArrayList; +import java.util.Collections; + +public class Deck { + + private ArrayList cards; + + public Deck(){ + populate(); + } + + public Card getCard(){ + if(cards.size() == 0) { + populate(); + shuffle(); + } + Card card = cards.get(0); + cards.remove(0); + return card; + } + + public ArrayList getAllCards(){ + return cards; + } + + + private void populate() { + cards = new ArrayList(); + for (Suit suit: Suit.values()) { + for (int value = 1; value <= 13; value++) + { + if (value < 11) + { + if (value==1) + cards.add(new Card(suit, value, Card.suitSymbols[suit.ordinal()], Card.faceSymbols[0])); + else + cards.add(new Card(suit, value, Card.suitSymbols[suit.ordinal()], ""+value)); + } + else + cards.add(new Card(suit, 10, Card.suitSymbols[suit.ordinal()], Card.faceSymbols[value - 10])); + + cards.get(cards.size()-1).setGoFishValue(GoFishValue.values()[value-1]); + } + } + } + + public void shuffle(){ + Collections.shuffle(cards); + } + +} diff --git a/src/main/java/io/zipcoder/casino/Deck/GoFishValue.java b/src/main/java/io/zipcoder/casino/Deck/GoFishValue.java new file mode 100644 index 00000000..cfa35e33 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Deck/GoFishValue.java @@ -0,0 +1,5 @@ +package io.zipcoder.casino.Deck; + +public enum GoFishValue { + ACE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING; +} diff --git a/src/main/java/io/zipcoder/casino/Deck/Suit.java b/src/main/java/io/zipcoder/casino/Deck/Suit.java new file mode 100644 index 00000000..05e05a10 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Deck/Suit.java @@ -0,0 +1,3 @@ +package io.zipcoder.casino.Deck; + +public enum Suit {HEARTS, DIAMONDS, CLUBS, SPADES} 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..11830d3d --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GoFish.java @@ -0,0 +1,160 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Console.Console; +import io.zipcoder.casino.Deck.Card; + +import java.lang.reflect.Array; +import java.util.*; + +public class GoFish extends CardGame { + + GoFishPlayer player; + GoFishPlayer dealer; + + + public GoFish(Player player) { + this.player = new GoFishPlayer(player); + Player dealer = new Player("Dealer", 0, 0); + this.dealer = new GoFishPlayer(dealer); + } + + public void goFishStart() { + deck.shuffle(); + deal(player, dealer, 7); + Console.print("Welcome to GoFish " + player.name + "!"); + boolean playing = true; + while (playing) { + playerTurn(); + dealerTurn(); + playing = checkForWin(); + } + gameOptions(); + } + + private boolean checkForWin() { + if (deck.getAllCards().size() == 0) { + compareBooks(); + return false; + + } + return true; + } + + private void playerTurn() { + boolean playing = true; + checkHandSize(player); + while (playing) { + checkForBooks(player); + Console.print(player.getStringDisplayHand()); + String askCard; + do { + askCard = Console.getString("Enter card you are looking for: "); + } while (!isCardInHand(askCard.toUpperCase(), player.getHand())); + + if (isCardInHand(askCard.toUpperCase(), dealer.getHand())) { + swapCard(dealer, player, askCard); + Console.print("You got a match!"); + } else { + Console.print("GO FISH!"); + giveCard(player); + playing = false; + } + } + } + + + private void dealerTurn() { + boolean playing = true; + checkHandSize(dealer); + while (playing) { + checkForBooks(dealer); + Console.print("Opponent looking for card..."); + Card dealerCard = dealerFindCard(); + Console.print("Do you have any: " + dealerCard.getGoFishValue() + "'S ?"); + if (isCardInHand(dealerCard.getGoFishValue(), player.getHand())) { + swapCard(player, dealer, dealerCard.getGoFishValue()); + } else { + Console.print("Guess I'll go fish..."); + giveCard(dealer); + playing = false; + } + } + } + + private Card dealerFindCard() { + Random r = new Random(); + int x = r.nextInt(dealer.getHand().size() - 1); + return dealer.getHand().get(x); + } + + public boolean isCardInHand(String askCard, ArrayList hand) { + for (Card card : hand) { + if (card.getGoFishValue().equals(askCard)) { + return true; + } + } + return false; + } + + private void swapCard(CardPlayer fromPlayer, CardPlayer toPlayer, String cardValue) { + ArrayList newHand = new ArrayList<>(); + for (Card card : fromPlayer.getHand()) { + if (cardValue.equalsIgnoreCase(card.getGoFishValue())) { + toPlayer.addCard(card); + } else { + newHand.add(card); + } + } + fromPlayer.setHand(newHand); + } + + public void checkForBooks(GoFishPlayer player) { + for (Map.Entry entry : getHandMap(player).entrySet()) { + if (entry.getValue() == 4) { + player.addBookCounter(1); + removeBooks(player, entry.getKey()); + } + } + } + + public HashMap getHandMap(GoFishPlayer player) { + HashMap handMap = new HashMap<>(); + for (Card card : player.getHand()) { + if (!handMap.containsKey(card.getGoFishValue())) { + handMap.put(card.getGoFishValue(), 1); + } else { + handMap.put(card.getGoFishValue(), handMap.get(card.getGoFishValue()) + 1); + } + } + return handMap; + } + + public void removeBooks(GoFishPlayer player, String cardValue) { + ArrayList newHand = new ArrayList<>(); + for (Card card : player.getHand()) { + if (!cardValue.equals(card.getGoFishValue())) { + newHand.add(card); + } + } + player.setHand(newHand); + } + + + private void compareBooks() { + if (player.getBookCounter() > dealer.getBookCounter()) { + System.out.println("You win!"); + } else if (player.getBookCounter() < dealer.getBookCounter()) { + System.out.println("You lose!"); + } else { + System.out.println("LET US FIGHT TO THE DEATH " + player.name.toUpperCase()); + } + } + + private void checkHandSize(CardPlayer player) { + if (player.getHand().size() < 1) { + giveCard(player); + } + } + + +} 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..c7fe2dc4 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/GoFishPlayer.java @@ -0,0 +1,28 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Deck.Card; + +import java.util.ArrayList; + +public class GoFishPlayer extends CardPlayer { + + private int bookCounter; + private ArrayList booksList; + + public GoFishPlayer(Player player){ + super(); + this.booksList = new ArrayList(); + } + + public int getBookCounter() { + return bookCounter; + } + + public void addBookCounter(int bookCounter) { + this.bookCounter += bookCounter; + } + + public ArrayList getBooksList() { + return booksList; + } +} diff --git a/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java b/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java new file mode 100644 index 00000000..3ac3a580 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Interfaces/Gamble.java @@ -0,0 +1,6 @@ +package io.zipcoder.casino.Interfaces; + +public interface Gamble { + public double takeBet(); + +} diff --git a/src/main/java/io/zipcoder/casino/Interfaces/Game.java b/src/main/java/io/zipcoder/casino/Interfaces/Game.java new file mode 100644 index 00000000..62490323 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Interfaces/Game.java @@ -0,0 +1,5 @@ +package io.zipcoder.casino.Interfaces; + +public interface Game { + public boolean play(); +} diff --git a/src/main/java/io/zipcoder/casino/Main.java b/src/main/java/io/zipcoder/casino/Main.java new file mode 100644 index 00000000..dd1adf91 --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Main.java @@ -0,0 +1,8 @@ +package io.zipcoder.casino; + +public class Main { + public static void main(String[] args) { + new Casino().startCasino(); + + } +} 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..8e210c3c --- /dev/null +++ b/src/main/java/io/zipcoder/casino/Player.java @@ -0,0 +1,46 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Deck.Card; + +import java.util.ArrayList; + +public class Player { + public String name; + public double balance; + public int age; + public ArrayList playerHand = new ArrayList(); + + public Player(String name, double balance, int age){ + this.name = name; + this.balance = balance; + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double balance) { + this.balance = balance; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public void addToBalance(double amount){ + this.balance+=amount; + } +} diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java index e9286523..00bac028 100644 --- a/src/test/java/io/zipcoder/casino/CasinoTest.java +++ b/src/test/java/io/zipcoder/casino/CasinoTest.java @@ -1,5 +1,11 @@ package io.zipcoder.casino; +import io.zipcoder.casino.Deck.Card; +import org.junit.Test; + public class CasinoTest { + + + } 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..57ebeaca --- /dev/null +++ b/src/test/java/io/zipcoder/casino/CrapsTest.java @@ -0,0 +1,34 @@ +package io.zipcoder.casino; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class CrapsTest { + + Player player = new Player("Zach",5000,23); + Craps test = new Craps(player); + + @Test + public void winTest() { + double expected = 6000; + + test.playerWin(1000); + double actual = player.balance; + + Assert.assertEquals(expected, actual, 0); + } + + @Test + public void loseTest() { + double expected = 4000; + + test.playerLose(1000); + double actual = player.balance; + + Assert.assertEquals(expected, actual, 0); + } +} + + diff --git a/src/test/java/io/zipcoder/casino/Deck/DeckTest.java b/src/test/java/io/zipcoder/casino/Deck/DeckTest.java new file mode 100644 index 00000000..2c6b08ce --- /dev/null +++ b/src/test/java/io/zipcoder/casino/Deck/DeckTest.java @@ -0,0 +1,60 @@ +package io.zipcoder.casino.Deck; + +import io.zipcoder.casino.Blackjack; +import io.zipcoder.casino.Player; +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class DeckTest { + + Deck testDeck = new Deck(); + + @Test + public void getCard(){ + int expected = 51; + testDeck.getCard(); + int actual = testDeck.getAllCards().size(); + + Assert.assertEquals(expected,actual); + } + + @Test + public void getAllCards(){ + int expected = 52; + int actual = testDeck.getAllCards().size(); + + Assert.assertEquals(expected,actual); + + } + @Test + public void populateTest(){ + + int expected = 52; + int actual = testDeck.getAllCards().size(); + Assert.assertEquals(expected,actual); + } + + @Test + public void shuffle() { + Card expected = testDeck.getCard(); + System.out.println(expected); + testDeck.shuffle(); + Card actual = testDeck.getCard(); + System.out.println(actual); + + Assert.assertFalse(expected == actual); + } + + @Test + public void goFistValueTest(){ + Player testPlayer = new Player("wes",21,1000); + Blackjack testGame = new Blackjack(testPlayer); + testGame.deal(testGame.getPlayer(),testGame.getDealer(),5); + for(Card card:testGame.getPlayer().getHand()){ + System.out.println(card.getGoFishValue()); + } + } + +} \ 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..ebe1c4e5 --- /dev/null +++ b/src/test/java/io/zipcoder/casino/GoFishTest.java @@ -0,0 +1,51 @@ +package io.zipcoder.casino; + +import io.zipcoder.casino.Deck.Card; +import org.junit.Assert; +import org.junit.Test; + +public class GoFishTest extends CardGame { + + Player player = new Player("Graham", 5, 3000); + Player dealer = new Player("Graham", 5, 5); + + CardPlayer dealer1 = new CardPlayer(); + GoFish test = new GoFish(player); + + + + @Test + public void isCardInHandTest(){ + test.deal(test.player,test.dealer,26); + System.out.println(test.dealer.getStringDisplayHand()); + boolean expected = true; + boolean actual = test.isCardInHand("ACE", test.dealer.getHand()); + + Assert.assertEquals(expected,actual); + + } + + @Test + public void checkForBooksTest(){ + test.testDeal(test.player,40); + + int expected = 1; + test.checkForBooks(test.player); + int actual = test.player.getBookCounter(); + + Assert.assertEquals(expected,actual); + + } + + @Test + public void removeBooksTest(){ + test.testDeal(test.player,40); + + int expected = 36; + test.checkForBooks(test.player); + int actual = test.player.getHand().size(); + + Assert.assertEquals(expected,actual); + } + +} diff --git a/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java new file mode 100644 index 00000000..9d976a9c --- /dev/null +++ b/src/test/java/io/zipcoder/casino/PlayerTest/PlayerTest.java @@ -0,0 +1,65 @@ +package io.zipcoder.casino.PlayerTest; + + +import io.zipcoder.casino.Player; +import org.junit.Assert; +import org.junit.Test; + +public class PlayerTest { + + Player testPlayer = new Player("wes",5000,21); + + @Test + public void getNameTest(){ + String expected = "wes"; + String actual = testPlayer.getName(); + + Assert.assertEquals(expected,actual); + } + @Test + public void setNameTest(){ + String expected = "bob"; + testPlayer.setName("bob"); + String actual = testPlayer.getName(); + + Assert.assertEquals(expected,actual); + } + @Test + public void getBalanceTest(){ + double expected = 5000; + double actual = testPlayer.getBalance(); + + Assert.assertEquals(expected,actual,0); + } + @Test + public void setBalanceTest(){ + double expected = 100000; + testPlayer.setBalance(100000); + double actual = testPlayer.getBalance(); + + Assert.assertEquals(expected,actual,0); + } + @Test + public void getAgeTest(){ + int expected = 21; + int actual = testPlayer.getAge(); + + Assert.assertEquals(expected,actual); + } + @Test + public void setAgeTest(){ + int expected = 99; + testPlayer.setAge(99); + int actual = testPlayer.getAge(); + + Assert.assertEquals(expected,actual); + } + @Test + public void addToBalanceTest(){ + double expected = 5001; + testPlayer.addToBalance(1); + double actual = testPlayer.getBalance(); + + Assert.assertEquals(expected,actual,0); + } +}