diff --git a/pom.xml b/pom.xml
index c6ec0cc8..6fb2cc76 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,5 +15,10 @@
4.12
test
+
+ org.apache.commons
+ commons-lang3
+ 3.7
+
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..7a31700f
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/Card.java
@@ -0,0 +1,25 @@
+package io.zipcoder.casino;
+
+public class Card {
+
+ private final Rank rank;
+ private final Suit suit;
+
+ public Card(Rank rank, Suit suit) {
+ this.rank = rank;
+ this.suit = suit;
+ }
+
+ public Rank getRank() {
+ return rank;
+ }
+
+ public Suit getSuit() {
+ return suit;
+ }
+
+ public String toString() {
+ return rank + " of " + suit;
+ }
+
+}
diff --git a/src/main/java/io/zipcoder/casino/CardGameInterface.java b/src/main/java/io/zipcoder/casino/CardGameInterface.java
new file mode 100644
index 00000000..a40093f2
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/CardGameInterface.java
@@ -0,0 +1,10 @@
+package io.zipcoder.casino;
+
+import java.util.ArrayList;
+
+public interface CardGameInterface {
+ ArrayList deck = new ArrayList();
+
+ int checkNumberOfCards();
+ void dealCards();
+}
diff --git a/src/main/java/io/zipcoder/casino/DiceGameInterface.java b/src/main/java/io/zipcoder/casino/DiceGameInterface.java
new file mode 100644
index 00000000..f32fc2e6
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/DiceGameInterface.java
@@ -0,0 +1,6 @@
+package io.zipcoder.casino;
+
+public interface DiceGameInterface {
+ void rollDice();
+ int getNumberOfDice();
+}
diff --git a/src/main/java/io/zipcoder/casino/GamblingInterface.java b/src/main/java/io/zipcoder/casino/GamblingInterface.java
new file mode 100644
index 00000000..c19778e7
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/GamblingInterface.java
@@ -0,0 +1,11 @@
+package io.zipcoder.casino;
+
+import java.util.Map;
+
+public interface GamblingInterface {
+ int checkChipAmount();
+ void placeBet(int betAmount);
+ int getAnte();
+ void bootPlayerFromGame();
+ int chekcPot();
+}
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..3577ddc0
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/Game.java
@@ -0,0 +1,7 @@
+package io.zipcoder.casino;
+
+public abstract class Game implements GameInterface{
+ public abstract void start();
+ public abstract void end();
+
+}
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..3d71056d
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/GameInterface.java
@@ -0,0 +1,6 @@
+package io.zipcoder.casino;
+
+public interface GameInterface {
+ void start();
+ void end();
+}
diff --git a/src/main/java/io/zipcoder/casino/Rank.java b/src/main/java/io/zipcoder/casino/Rank.java
new file mode 100644
index 00000000..fe546b9c
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/Rank.java
@@ -0,0 +1,35 @@
+package io.zipcoder.casino;
+
+public enum Rank {
+
+ DEUCE(2,"2"),
+ THREE(3,"3"),
+ FOUR(4,"4"),
+ FIVE(5,"5"),
+ SIX(6,"6"),
+ SEVEN(7,"7"),
+ EIGHT(8,"8"),
+ NINE(9,"9"),
+ TEN(10,"10"),
+ JACK(11,"J"),
+ QUEEN(12,"Q"),
+ KING(13,"K"),
+ ACE(1,"A");
+
+ final int rankValue;
+ final String rankSymbol;
+
+ Rank(int rankValue, String rankSymbol) {
+ this.rankValue = rankValue;
+ this.rankSymbol = rankSymbol;
+ }
+
+ public int toInt() {
+ return this.rankValue;
+ }
+
+ public String toString() {
+ return this.rankSymbol;
+ }
+
+}
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..f1e981e4
--- /dev/null
+++ b/src/main/java/io/zipcoder/casino/Suit.java
@@ -0,0 +1,26 @@
+package io.zipcoder.casino;
+
+public enum Suit {
+
+ CLUBS("clubs", "\u2663"),
+ DIAMONDS("diamonds", "\u2666"),
+ HEARTS("hearts", "\u2665"),
+ SPADES("spades", "\u2660");
+
+ final String suitWord;
+ final String suitSymbol;
+
+ Suit(String suitWord, String suitSymbol) {
+ this.suitWord = suitWord;
+ this.suitSymbol = suitSymbol;
+ }
+
+ public String toString() {
+ return this.suitWord;
+ }
+
+ public String toSymbol() {
+ return this.suitSymbol;
+ }
+
+}
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..f9c756d8
--- /dev/null
+++ b/src/test/java/io/zipcoder/casino/CardTest.java
@@ -0,0 +1,71 @@
+package io.zipcoder.casino;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
+
+public class CardTest {
+
+ private Card card;
+
+ @Test
+ public void CardConstructorRankPositiveTest() {
+
+ // Given
+ Rank expectedRank = Rank.DEUCE;
+ Suit expectedSuit = Suit.CLUBS;
+ Card card = new Card(Rank.DEUCE, Suit.CLUBS);
+
+ // When
+ Rank actualRank = card.getRank();
+ Suit actualSuit = card.getSuit();
+
+ // Then
+ Assert.assertEquals(expectedRank, actualRank);
+ Assert.assertEquals(expectedSuit, actualSuit);
+ }
+
+ @Test
+ public void getRankPositiveTest() {
+
+ // Given
+ Rank expectedRank = Rank.SEVEN;
+ Card card = new Card(Rank.SEVEN, Suit.SPADES);
+
+ // When
+ Rank actualRank = card.getRank();
+
+ // Then
+ Assert.assertEquals(expectedRank, actualRank);
+ }
+
+ @Test
+ public void getSuitPositiveTest() {
+
+ // Given
+ Suit expectedSuit = Suit.DIAMONDS;
+ Card card = new Card(Rank.EIGHT, Suit.DIAMONDS);
+
+ // When
+ Suit actualSuit = card.getSuit();
+
+ // Then
+ Assert.assertEquals(expectedSuit, actualSuit);
+
+ }
+
+ @Test
+ public void toStringPositiveTest() {
+
+ // Given
+ String expectedString = "J of hearts";
+ Card card = new Card(Rank.JACK, Suit.HEARTS);
+
+ // When
+ String actualString = card.toString();
+
+ // Then
+ Assert.assertEquals(expectedString, actualString);
+ }
+
+}
\ No newline at end of file
diff --git a/src/test/java/io/zipcoder/casino/CasinoTest.java b/src/test/java/io/zipcoder/casino/CasinoTest.java
index e9286523..eaed2c04 100644
--- a/src/test/java/io/zipcoder/casino/CasinoTest.java
+++ b/src/test/java/io/zipcoder/casino/CasinoTest.java
@@ -1,5 +1,10 @@
package io.zipcoder.casino;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
public class CasinoTest {
+
+
}
diff --git a/src/test/java/io/zipcoder/casino/RankTest.java b/src/test/java/io/zipcoder/casino/RankTest.java
new file mode 100644
index 00000000..42f2011e
--- /dev/null
+++ b/src/test/java/io/zipcoder/casino/RankTest.java
@@ -0,0 +1,41 @@
+package io.zipcoder.casino;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
+
+public class RankTest {
+
+ private Card card;
+
+ @Test
+ public void RanktoIntTest() {
+
+ // Given
+ int expectedRankValue = 3;
+ Card card = new Card(Rank.THREE, Suit.HEARTS);
+
+ // When
+ int actualRankValue = card.getRank().toInt();
+
+ // Then
+ Assert.assertEquals(expectedRankValue, actualRankValue);
+ }
+
+ @Test
+ public void RanktoStringTest() {
+
+ // Given
+ String expectedRankSymbol = "3";
+ Card card = new Card(Rank.THREE, Suit.HEARTS);
+
+ // When
+ String actualRankSymbol = card.getRank().toString();
+
+ // Then
+ Assert.assertEquals(expectedRankSymbol, actualRankSymbol);
+ }
+
+
+
+}
diff --git a/src/test/java/io/zipcoder/casino/SuitTest.java b/src/test/java/io/zipcoder/casino/SuitTest.java
new file mode 100644
index 00000000..862acdd4
--- /dev/null
+++ b/src/test/java/io/zipcoder/casino/SuitTest.java
@@ -0,0 +1,38 @@
+package io.zipcoder.casino;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.Before;
+
+public class SuitTest {
+
+ private Card card;
+
+ @Test
+ public void SuitToStringTest() {
+
+ // Given
+ String expectedSuitWord = "clubs";
+ Card card = new Card(Rank.NINE, Suit.CLUBS);
+
+ // When
+ String actualSuitWord = card.getSuit().toString();
+
+ // Then
+ Assert.assertEquals(expectedSuitWord, actualSuitWord);
+ }
+
+ @Test
+ public void SuitToSymbolTest() {
+
+ // Given
+ String expectedSuitSymbol = "\u2663";
+ Card card = new Card(Rank.NINE, Suit.CLUBS);
+
+ // When
+ String actualSuitSymbol = card.getSuit().toSymbol();
+
+ // Then
+ Assert.assertEquals(expectedSuitSymbol, actualSuitSymbol);
+ }
+}
\ No newline at end of file