Commiting deck of cards object oriented design solution
parent
c65a721b41
commit
141ece807a
|
@ -0,0 +1,164 @@
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
class Card{
|
||||||
|
|
||||||
|
private Suit suit;
|
||||||
|
private Rank rank;
|
||||||
|
|
||||||
|
public Card(Suit suit, Rank rank){
|
||||||
|
this.suit = suit;
|
||||||
|
this.rank = rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Suit getSuit() {
|
||||||
|
return suit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSuit(Suit suit) {
|
||||||
|
this.suit = suit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Rank getRank() {
|
||||||
|
return rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRank(Rank rank) {
|
||||||
|
this.rank = rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Card [suit=" + suit + ", rank=" + rank + "]";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Deck{
|
||||||
|
|
||||||
|
List<Card> cardDeck;
|
||||||
|
|
||||||
|
public Deck(){
|
||||||
|
cardDeck = new ArrayList<>();
|
||||||
|
for(Suit suit : Suit.values()){
|
||||||
|
for(Rank rank : Rank.values()){
|
||||||
|
cardDeck.add(new Card(suit, rank));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void shuffle(){
|
||||||
|
Random random = new Random();
|
||||||
|
for(int i=1; i<20; i++){
|
||||||
|
int firstCard = random.nextInt(52);
|
||||||
|
int secondCard = random.nextInt(52);
|
||||||
|
Collections.swap(cardDeck, firstCard, secondCard);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dealCard(Player player){
|
||||||
|
Card card = cardDeck.remove(0);
|
||||||
|
player.hand.add(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int cardDeckSize(){
|
||||||
|
return cardDeck.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showCardsInDeck(){
|
||||||
|
for(Card card : cardDeck){
|
||||||
|
System.out.println(card);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Suit{
|
||||||
|
DIAMONDS(1),
|
||||||
|
HEARTS(2),
|
||||||
|
SPADES(3),
|
||||||
|
CLUBS(4);
|
||||||
|
|
||||||
|
private int suiteValue;
|
||||||
|
|
||||||
|
private Suit(int suiteValue){
|
||||||
|
this.suiteValue = suiteValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSuiteValue(){
|
||||||
|
return suiteValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Rank{
|
||||||
|
ACE(1),
|
||||||
|
TWO(2),
|
||||||
|
THREE(3),
|
||||||
|
FOUR(4),
|
||||||
|
FIVE(5),
|
||||||
|
SIX(6),
|
||||||
|
SEVEN(7),
|
||||||
|
EIGHT(8),
|
||||||
|
NINE(9),
|
||||||
|
TEN(10),
|
||||||
|
JACK(11),
|
||||||
|
QUEEN(12),
|
||||||
|
KING(13);
|
||||||
|
|
||||||
|
private int rankValue;
|
||||||
|
|
||||||
|
private Rank(int rankValue){
|
||||||
|
this.rankValue = rankValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRankValue(){
|
||||||
|
return rankValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Player{
|
||||||
|
|
||||||
|
List<Card> hand;
|
||||||
|
|
||||||
|
public Player(){
|
||||||
|
hand = new ArrayList<Card>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Card> getHand() {
|
||||||
|
return hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHand(List<Card> hand) {
|
||||||
|
this.hand = hand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showPlayerCard(){
|
||||||
|
for(Card card : hand){
|
||||||
|
System.out.println(card);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class DeckOfCards {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Deck deck = new Deck();
|
||||||
|
Player player1 = new Player();
|
||||||
|
Player player2 = new Player();
|
||||||
|
|
||||||
|
System.out.println(deck.cardDeckSize());
|
||||||
|
deck.showCardsInDeck();
|
||||||
|
deck.shuffle();
|
||||||
|
deck.showCardsInDeck();
|
||||||
|
|
||||||
|
deck.dealCard(player1);
|
||||||
|
deck.dealCard(player2);
|
||||||
|
player1.showPlayerCard();
|
||||||
|
System.out.println(" ");
|
||||||
|
player2.showPlayerCard();
|
||||||
|
System.out.println(" ");
|
||||||
|
System.out.println(deck.cardDeckSize());
|
||||||
|
deck.showCardsInDeck();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue