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;
+ }
+
+
+}