Card.java
This is the syntax highlighted version of Card.java
from 3.3 Modular Programming of
Introduction to Computer Science by
Robert Sedgewick and Kevin Wayne.
/*************************************************************************
* Compilation: javac Card.java
* Execution: java -classpath .:cards.jar Card (Unix, OS X)
* Execution: java -classpath .;cards.jar Card (Windows)
* Dependencies: StdDraw.java
*
* Implement a playing card in a standard 52 card deck.
* The sample client assumes cards.jar is in the current directory
* and contains images of the cards named: 0.gif through 51.gif.
*
* The sample client display two blackjack hands.
*
*************************************************************************/
import java.awt.Color;
public class Card {
private int suit; // clubs = 0, diamonds = 1, hearts = 2, spades = 3
private int rank; // deuce = 0, three = 1, four = 2, ..., king = 11, ace = 12
private String front; // filename of image to display front of card
private String back; // filename of image to display back of card
// create a new card based on integer 0 = 2C, 1 = 3C, ..., 51 = AS
public Card(int card) {
rank = card % 13;
suit = card / 13;
}
// use this constructor if you want to plot the cards
public Card(int card, String front, String back) {
this(card);
this.front = front;
this.back = back;
}
public void drawFront() { StdDraw.spot(front); }
public void drawBack() { StdDraw.spot(back); }
public int rank() { return rank; }
public int suit() { return suit; }
// for sorting cards by suit, then rank, as in Bridge or Hearts
public boolean less(Card c) {
if (suit < c.suit) return true;
else if (suit > c.suit) return false;
else if (rank < c.rank) return true;
else return false;
}
// represent cards like "2H", "9C", "JS", "AD"
public String toString() {
String ranks = "23456789TJQKA";
String suits = "CDHS";
return ranks.charAt(rank) + "" + suits.charAt(suit);
}
// test client
public static void main(String[] args) {
StdDraw.create(400, 180);
StdDraw.clear(Color.gray);
// draw dealer's cards
Card c1 = new Card(27, "27.gif", "back.gif");
StdDraw.go(100, 120);
c1.drawBack();
Card c2 = new Card(51, "51.gif", "back.gif");
StdDraw.go(100, 60);
c2.drawFront();
System.out.println(c1 + ", " + c2);
// draw player's cards
Card c3 = new Card(23, "23.gif", "back.gif");
StdDraw.go(300, 120);
c3.drawFront();
Card c4 = new Card(30, "30.gif", "back.gif");
StdDraw.go(300, 60);
c4.drawFront();
System.out.println(c3 + ", " + c4);
StdDraw.show();
}
}
Last updated: Sat Aug 7 07:50:01 EDT 2004
.
Copyright © 2004, Robert Sedgewick and Kevin Wayne.