Card.java :  » Game » android-skat » de » bolay » skat » Android Open Source

Android Open Source » Game » android skat 
android skat » de » bolay » skat » Card.java
package de.bolay.skat;

import java.util.EnumSet;
import java.util.Set;

public enum Card {
  SEVEN_OF_DIAMONDS(Rank.SEVEN, Suit.DIAMONDS),
  EIGHT_OF_DIAMONDS(Rank.EIGHT, Suit.DIAMONDS),
  NINE_OF_DIAMONDS(Rank.NINE, Suit.DIAMONDS),
  QUEEN_OF_DIAMONDS(Rank.QUEEN, Suit.DIAMONDS),
  KING_OF_DIAMONDS(Rank.KING, Suit.DIAMONDS),
  TEN_OF_DIAMONDS(Rank.TEN, Suit.DIAMONDS),
  ACE_OF_DIAMONDS(Rank.ACE, Suit.DIAMONDS),
  SEVEN_OF_HEARTS(Rank.SEVEN, Suit.HEARTS),
  EIGHT_OF_HEARTS(Rank.EIGHT, Suit.HEARTS),
  NINE_OF_HEARTS(Rank.NINE, Suit.HEARTS),
  QUEEN_OF_HEARTS(Rank.QUEEN, Suit.HEARTS),
  KING_OF_HEARTS(Rank.KING, Suit.HEARTS),
  TEN_OF_HEARTS(Rank.TEN, Suit.HEARTS),
  ACE_OF_HEARTS(Rank.ACE, Suit.HEARTS),
  SEVEN_OF_SPADES(Rank.SEVEN, Suit.SPADES),
  EIGHT_OF_SPADES(Rank.EIGHT, Suit.SPADES),
  NINE_OF_SPADES(Rank.NINE, Suit.SPADES),
  QUEEN_OF_SPADES(Rank.QUEEN, Suit.SPADES),
  KING_OF_SPADES(Rank.KING, Suit.SPADES),
  TEN_OF_SPADES(Rank.TEN, Suit.SPADES),
  ACE_OF_SPADES(Rank.ACE, Suit.SPADES),
  SEVEN_OF_CLUBS(Rank.SEVEN, Suit.CLUBS),
  EIGHT_OF_CLUBS(Rank.EIGHT, Suit.CLUBS),
  NINE_OF_CLUBS(Rank.NINE, Suit.CLUBS),
  QUEEN_OF_CLUBS(Rank.QUEEN, Suit.CLUBS),
  KING_OF_CLUBS(Rank.KING, Suit.CLUBS),
  TEN_OF_CLUBS(Rank.TEN, Suit.CLUBS),
  ACE_OF_CLUBS(Rank.ACE, Suit.CLUBS),
  JACK_OF_DIAMONDS(Rank.JACK, Suit.DIAMONDS),
  JACK_OF_HEARTS(Rank.JACK, Suit.HEARTS),
  JACK_OF_SPADES(Rank.JACK, Suit.SPADES),
  JACK_OF_CLUBS(Rank.JACK, Suit.CLUBS);

  public static final int NUM_CARDS = Card.values().length;

  public enum Rank {
    SEVEN(0), EIGHT(0), NINE(0), TEN(10), JACK(2), QUEEN(3), KING(4), ACE(11);

    private final int value;

    Rank(int value) {
      this.value = value;
    }

    public int getValue() {
      return value;
    }
  }

  public static final int NUM_RANKS = Rank.values().length;

  public enum Suit {
    DIAMONDS, HEARTS, SPADES, CLUBS
  }

  public static final int NUM_SUITS = Suit.values().length;

  private final Suit suit;
  private final Rank rank;

  Card(Rank rank, Suit suit) {
    this.rank = rank;
    this.suit = suit;
  }

  public Suit getSuit() {
    return suit;
  }

  public Rank getRank() {
    return rank;
  }

  public static Set<Card> ofSuit(Suit suit) {
    Set<Card> ofSuit = EnumSet.noneOf(Card.class);
    for (Card card : values()) {
      if (card.getSuit() == suit) {
        ofSuit.add(card);
      }
    }
    return ofSuit;
  }

  public static Set<Card> ofRank(Rank rank) {
    Set<Card> ofRank = EnumSet.noneOf(Card.class);
    for (Card card : Card.values()) {
      if (card.getRank() == rank) {
        ofRank.add(card);
      }
    }
    return ofRank;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.