From fb771e8a20589f23fc16051a06029dfa07e75dce Mon Sep 17 00:00:00 2001 From: Andrew Shumway Date: Fri, 29 Oct 2021 17:13:49 -0600 Subject: [PATCH] first commit --- .classpath | 10 ++++ .gitignore | 2 + .project | 17 ++++++ .settings/org.eclipse.jdt.core.prefs | 12 ++++ src/com/skilldistillery/cards/Card.java | 50 +++++++++++++++++ src/com/skilldistillery/cards/CardTest.java | 14 +++++ .../skilldistillery/cards/DealingTest.java | 55 +++++++++++++++++++ src/com/skilldistillery/cards/Deck.java | 34 ++++++++++++ src/com/skilldistillery/cards/Rank.java | 20 +++++++ src/com/skilldistillery/cards/Suit.java | 22 ++++++++ 10 files changed, 236 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 src/com/skilldistillery/cards/Card.java create mode 100644 src/com/skilldistillery/cards/CardTest.java create mode 100644 src/com/skilldistillery/cards/DealingTest.java create mode 100644 src/com/skilldistillery/cards/Deck.java create mode 100644 src/com/skilldistillery/cards/Rank.java create mode 100644 src/com/skilldistillery/cards/Suit.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..4f2c72b --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a5ba85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +bin diff --git a/.project b/.project new file mode 100644 index 0000000..66e2b45 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + BlackJackProject + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..af07d5f --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/src/com/skilldistillery/cards/Card.java b/src/com/skilldistillery/cards/Card.java new file mode 100644 index 0000000..946530b --- /dev/null +++ b/src/com/skilldistillery/cards/Card.java @@ -0,0 +1,50 @@ +package com.skilldistillery.cards; + +import java.util.Objects; + +public class Card { + private Rank rank; + private Suit suit; + + public Card(Rank rank, Suit suit) { + this.rank = rank; + this.suit = suit; + } + + public int getValue() { + return this.rank.getValue(); + } + + public Rank getRank() { + return rank; + } + + public Suit getSuit() { + return suit; + } + + @Override + public String toString() { + return rank + " of " + suit; + } + + @Override + public int hashCode() { + return Objects.hash(rank, suit); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Card other = (Card) obj; + return rank == other.rank && suit == other.suit; + } + + + +} diff --git a/src/com/skilldistillery/cards/CardTest.java b/src/com/skilldistillery/cards/CardTest.java new file mode 100644 index 0000000..6310902 --- /dev/null +++ b/src/com/skilldistillery/cards/CardTest.java @@ -0,0 +1,14 @@ +package com.skilldistillery.cards; + +public class CardTest { + public static void main(String[] args) { + Rank[] ranks = Rank.values(); + for(int i=0; i userHand = new ArrayList<>(); + int handTotal = 0; + + // deal input amount using deal method, one card/time + for (int numCard = 0; (numCard < howMany) && (deck != null) && (numCard < 52) && (deck.checkDeckSize() > 0 ); numCard++) { + Card dealtCard = deck.dealCard(); + + // user puts dealt card in hand + userHand.add(dealtCard); + + // the user adds up the cards, based on the rank + handTotal += dealtCard.getValue(); + + + // have the user show their hand + System.out.println("Player total of hand: " + handTotal); + for (Card card : userHand) { + System.out.println(card); + + } + + + } + + } + +} diff --git a/src/com/skilldistillery/cards/Deck.java b/src/com/skilldistillery/cards/Deck.java new file mode 100644 index 0000000..130c950 --- /dev/null +++ b/src/com/skilldistillery/cards/Deck.java @@ -0,0 +1,34 @@ +package com.skilldistillery.cards; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class Deck { + private List deck = new ArrayList<>(); + + public Deck() { + for (Suit suit : Suit.values()) { + for (Rank rank : Rank.values()) { + Card card = new Card(rank, suit); + deck.add(card); + } + } + + } + + public int checkDeckSize() { + return deck.size(); + } + + public void shuffleDeck() { + Collections.shuffle(deck); + + } + + public Card dealCard() { + Card card = deck.remove(0); + return card; + } + +} diff --git a/src/com/skilldistillery/cards/Rank.java b/src/com/skilldistillery/cards/Rank.java new file mode 100644 index 0000000..300d867 --- /dev/null +++ b/src/com/skilldistillery/cards/Rank.java @@ -0,0 +1,20 @@ +package com.skilldistillery.cards; + +public enum Rank { + TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8), NINE(9), TEN(10), JACK(10), QUEEN(10), KING(10), ACE(11); + + private int value; + + Rank(int value) { + this.value = value; + } + + public int getValue() { + return value; + + } + +// public String toString() { +// return "" + value; +// } +} diff --git a/src/com/skilldistillery/cards/Suit.java b/src/com/skilldistillery/cards/Suit.java new file mode 100644 index 0000000..fd58dba --- /dev/null +++ b/src/com/skilldistillery/cards/Suit.java @@ -0,0 +1,22 @@ +package com.skilldistillery.cards; + +public enum Suit { + HEARTS("Hearts"), SPADES("Spades"), CLUBS("Clubs"), DIAMONDS("Diamonds"); + + private String name; + + Suit(String name) { + this.name = name; + + } + + public String getName() { + return name; + } + + public String toString() { + return name; + } + + +}