Cards.java
Home Up BelotConstants.java Card.java Cards.java RunInfo.java Player.java Game.java Belot.java

 

 

// --------------------------------------
// Cards.java
// CS 334
// John Paxton
// --------------------------------------  
class Cards implements BelotConstants
{  
        // --------------------------------------
        // Constructor
        // --------------------------------------

	Cards()
	{    
		currentPosition = 0;
		deck = new Card[CARDS_IN_DECK];    
		int cardNumber = 0;
		int cardIndex = 0;    
		for (int s = CLUBS; s <= SPADES; s++)
		{
			for (int r = EIGHT; r <= ACE; r++)
			{
				deck[cardNumber] = new Card 
					(s, r, VALUES[r], cardIndex);
				cardIndex++;
				cardNumber++;
			}
			cardIndex = cardIndex + 3;   // skip when suit changes
		}
	}            
        // --------------------------------------
        // Methods
        // --------------------------------------
  
	public void assignValues(int trump)
	{
		for (int i = 0; i < deck.length; i++)
			deck[i].updateValue(trump);
	}    
	public Card getNextCard ()
	{
		Card temp = deck[currentPosition];
		currentPosition++;
		return temp;
	}    
	public Card showNextCard ()
	{
		return deck[currentPosition];
	}    
	public void shuffle()
	{
		Card card;
		int swapPosition;    
		for (int currentPosition = 0; currentPosition < deck.length; 
		         currentPosition++)
		{
			swapPosition = (int) (Math.random() * deck.length);
			card = deck[currentPosition];
			deck[currentPosition] = deck[swapPosition];
			deck[swapPosition] = card;
		}
	}    
	public void print ()
	{
		System.out.println("The deck of cards");
		System.out.println("=================");    
		for (int i = 0; i < deck.length; i++)
		{
			System.out.print( (i+1) + ". ");
			deck[i].print();
		}
	}            
        // --------------------------------------
        // Data Fields
        // --------------------------------------

	private Card [] deck;            // deck of cards
	private int currentPosition;     // current position in deck
}