//Interface for Pack of PlayingCards
//Generic Pack methods that should allow any card game to
//be implemented. Needs PlayingCard Class.
//by www.neiljohan.com
//
//Bottom of pack = card which can't see
//Top of pack = visible card
//In array Bottom = 0 Top = tPack.size()

public interface Pack
{
        //Card adding operations
    public void addCard(PlayingCard tCard);    //These 2
    public void addCardTop(PlayingCard tCard); //are identical
    public void addCardBottom(PlayingCard tCard);

        //Insert a card anywhere into the pack
    public void InsertCard(int tCardPosition,PlayingCard tCard);

        //Card removal operations
    public PlayingCard removeCard();    //These 2
    public PlayingCard removeCardTop(); //are identical
    public PlayingCard removeCardBottom();

        //Remove a card from anywhere in the pack
    public PlayingCard ExtractCard(int tCardPosition);

        //List all the cards in the pack
    public void ListPack();

        //Shuffle the cards
    public void Shuffle();
}

