import java.util.Vector; import java.awt.*; //Author: ^-^ Veerle ^-^ public class spiderSolitarePack extends spiderSolitareStack { private Image[][] imgCards; private int currentDiffLevel = -1; public void spiderSolitarePack () { } protected void setupCardImages (Image[][] imgCards) { this.imgCards = imgCards; } protected void shuffleCards () { Vector vecDeck = new Vector(); int orgSize = size(); int randomNum = 0; for (int card = 0; card < orgSize; card++) { vecDeck.addElement(removeCard(0)); } for (int card = 0; card < orgSize; card++) //Allows any size deck (e.g. solitare has 52, while spider solitare has 104) { randomNum = 1 + (int) (Math.random() * vecDeck.size()); //Gets a random number between 1 and the size of the vector deck randomNum--; //Minus 1 so it starts at 0 addCard((spiderSolitareCard)vecDeck.remove(randomNum)); //Removes a random card from the deck, reducing its size by 1, and stores it in the final deck array } } public void setupPack (int newDiffLevel) { if (newDiffLevel != currentDiffLevel) { currentDiffLevel = newDiffLevel; int counter = 0; for (int fullDecks = 0; fullDecks < 2; fullDecks++) { for (int rank = 0; rank < 13; rank++) { for (int suit = 0; suit < 4; suit++) { spiderSolitareCard currentCard = null; if (currentDiffLevel == 0) { currentCard = new spiderSolitareCard(0, rank, imgCards[0][rank]); } else if (currentDiffLevel == 1) { if (suit < 2) { currentCard = new spiderSolitareCard(0, rank, imgCards[0][rank]); } else { currentCard = new spiderSolitareCard(2, rank, imgCards[2][rank]); } } else { currentCard = new spiderSolitareCard(suit, rank, imgCards[suit][rank]); } addCard(currentCard); counter++; } } } } shuffleCards(); } }