/* @(#)Card.java 1.0 7 February 2005 */ /* Useful imports */ package FinalProject; import edu.neu.ccs.*; import edu.neu.ccs.gui.*; import edu.neu.ccs.codec.*; import edu.neu.ccs.console.*; import edu.neu.ccs.filter.*; import edu.neu.ccs.jpf.*; import edu.neu.ccs.parser.*; import edu.neu.ccs.pedagogy.*; import edu.neu.ccs.quick.*; import edu.neu.ccs.util.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; import java.awt.image.*; import javax.swing.*; import javax.swing.border.*; import java.io.*; import java.util.*; import java.math.*; import java.beans.*; import java.lang.reflect.*; import java.net.*; import java.util.regex.*; // represents one card public class Card { // card's value private int rank; // card's suit value private int suit; // array of rank strings public static String[] rankList = { "", "Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King", }; // array of suit strings public static String[] suitList = { "Hearts", "Diamonds", "Spades", "Clubs" }; // suit constants public static final int HEARTS = 0; public static final int DIAMONDS = 1; public static final int SPADES = 2; public static final int CLUBS = 3; // "face card" constants (ace low) public static final int ACE = 1; public static final int JACK = 11; public static final int QUEEN = 12; public static final int KING = 13; // constructor public Card(int rank, int suit) { // set methods setRank(rank); setSuit(suit); } // returns cards picture public ImagePaintableLite getPicture() { int index = 13 * suit + rank - 1; return CardImages.paintables[index]; } // Card String Functions public String getRankAsString() { return rankList[rank]; } public String getSuitAsString() { return suitList[suit]; } // Set/Get Face/Rank Functions public int getRank() { return rank; } public int getSuit() { return suit; } public void setRank ( int rank ) { if ( !isValidRank( rank ) ) return; this.rank = rank; } public void setSuit ( int suit ) { if ( !isValidSuit( suit ) ) return; this.suit = suit; } public boolean equals ( Card card ) { if ( card == null ) return false; return ( getRank() == card.getRank() && getSuit() == card.getSuit() ); } public boolean rankEquals ( Card card ) { if ( card == null ) return false; return ( getRank() == card.getRank() ); } // Static Functions // compare two card ranks public static int compareRank ( Card c1, Card c2 ) { if ( c1 == null || c2 == null ) return 0; int f1 = c1.getRank(); int f2 = c2.getRank(); if ( f1 < f2 ) return -1; else if ( f1 > f2 ) return 1; return 0; } // determine if a rank is valid (between ace and king) public static boolean isValidRank ( int rank ) { return ( rank >= ACE && rank <= KING ); } // determine if a rank is valid (between hearts and clubs) public static boolean isValidSuit ( int suit ) { return ( suit >= HEARTS && suit <= CLUBS ); } }