
//Playing Card Class
//by Neil Broadbent

import java.util.*;
import java.io.*;


public class PlayingCardImpl implements PlayingCard
{
    private String tCardNumber;
    private String tCardSuit;

    public PlayingCardImpl ()
        {
                //Set up an empty PlayingCard object
        }
    
    
    public PlayingCardImpl (final String tCardString)
        {
            final StringTokenizer tTokensOnLine = new StringTokenizer(tCardString, ":");
            tCardNumber = tTokensOnLine.nextToken();
            tCardNumber = tCardNumber.toUpperCase(); //Makes a,j,Q & k uppercase
            tCardSuit = tTokensOnLine.nextToken();
            tCardSuit = tCardSuit.toUpperCase();     //Makes suit uppercase. This ensures
                                                     //that the cards are not case sensitive
        }

    public String getNumber()
        {
            return tCardNumber;
        }

    public String getSuit()
        {
            return tCardSuit;
        }
    

    public boolean SameNumber(final Object pObject)
        {
            if (! (pObject instanceof PlayingCardImpl)){
                return false;
            }
            {
                return tCardNumber.equals(((PlayingCardImpl)pObject).tCardNumber);
            }
        }

    public boolean SameSuit(final Object pObject)
        {
            if (! (pObject instanceof PlayingCardImpl)){
                return false;
            }
            {
                return tCardSuit.equals(((PlayingCardImpl)pObject).tCardSuit);
            }
        }

    public boolean isValidCard()
        {
            boolean returnValue=false;
            

            if (tCardSuit.equals("C") ||
                tCardSuit.equals("D") ||
                tCardSuit.equals("H") ||
                tCardSuit.equals("S"))
            {
                returnValue=true;
            }
            else{
                returnValue=false;
                return returnValue;
            }

            if (tCardNumber.equals("A") ||
                tCardNumber.equals("J") ||
                tCardNumber.equals("Q") ||
                tCardNumber.equals("K"))
            {
                returnValue=true;
            }
            else{
                returnValue=false;
                return returnValue;
                
            }

                // char tdigit = tCardNumber.charAt(0);
                //int digit = new Integer(tdigit).intValue();
            
            

                //if (digit.isDigit()){
                //int tNumber = new Integer(tCardNumber).intValue();
                //if (tNumber>0 && tNumber<11){
                //    returnValue=true;
                //    return returnValue;
                    
                // }
                //else{
                //    returnValue=false;
                // }
                //}
            return false;
            

            

            
                //return returnValue;
                //return false;
                
        }
    

    public String toString()
        {
            return tCardNumber + ":" + tCardSuit;
        }

    public boolean equals(final Object pObject) 
        {
            if (! (pObject instanceof PlayingCardImpl)){
                return false;
            }
            {
                return tCardNumber.equals(((PlayingCardImpl)pObject).tCardNumber) && tCardSuit.equals(((PlayingCardImpl)pObject).tCardSuit);
            }
        }
}
