
public class Card {
	private static final int MIN_NUMBER = 1;
	private static final int MAX_NUMBER = 13;
	
	private int number;
	private String suit;
	
	public Card(int tempNumber, String tempSuit){
		number = tempNumber;
		suit = tempSuit.toLowerCase();
		
		if( !isValidSuit(suit) ){
			System.out.println(tempSuit + "Is not a valid suit!");
			System.out.println("Must be one of: clubs, diamonds, hearts or spades");
			System.out.println("Defaulting to hearts");
			suit = "hearts";
		}
		
		if( !isValidNumber(number) ){
			System.out.println(tempNumber + "Is not a valid number!");
			System.out.println("Must be between " + MIN_NUMBER + " and " + MAX_NUMBER);
			System.out.println("Defaulting to 1");
			number = 1;
		}		
	}
	
	public String getSuit(){
		return suit;
	}
	
	public int getNumber(){
		return number;
	}
	
	public void cheat(){
		number = 1; // ACE!
	}
		
	public boolean equals(Card other){
		return number == other.getNumber() && suit.equals(other.getSuit());
		// could also write as:
		// number == other.number && suit.equals(other.suit);
	}
	
	public String toString(){
		return number + " of " + suit;
	}

	
	// check to make sure the card number is valid
	private boolean isValidNumber(int number){
		return number >= MIN_NUMBER && number <= MAX_NUMBER;
	}
	
	// check to make sure the suit is valid
	private boolean isValidSuit(String suit){
		return suit.equals("spades") ||
			   suit.equals("hearts") ||
			   suit.equals("clubs") ||
			   suit.equals("diamonds");
	}
	
	public static void main(String[] args) {
		Card c = new Card(10, "clubs");
		String s = "the card is " + c;
		System.out.println(s);
	}
}