And yes, it's Clock Solitaire.
Spoiler
class Pile { private TwoDeckCard[] cardPile; private TwoDeckCard Default = new TwoDeckCard(0,0,true,true,'x'); Pile(){ cardPile = new TwoDeckCard[9];//8 layers total, 0 is a dummy layer. for(int i=0; i<9; i++){//Latest attempt at initialising. cardPile[i] = Default; } } void setCardToPile(TwoDeckCard newCard, int layer) { cardPile[layer] = newCard; } void setCardVisibility(boolean visible, int layer) { (cardPile[layer]).setVisible(visible); } boolean getCardVisibility(int layer) { return (cardPile[layer]).getVisible(); } TwoDeckCard getCardFromPile(int layer) { return cardPile[layer]; } int getValourFromPile(int layer){ return (cardPile[layer]).getValour(); } }class ClockSolitaire { public static void main(String args[]){ int loss = 0; int victory = 0; TwoDeckCard tempCard; for(int turn=0; turn<10; turn++){ //initiliaze Pile[] piles = new Pile[14];//All these piles are supposed to be initialised with TwoDeckCard from deck. DeckOfTwoCards deck = new DeckOfTwoCards(); for(int i=1; i<14; i++){ for(int j=1; j<9; j++){ tempCard = new TwoDeckCard(0,12,true,true,'x');//Placeholder //tempCard = deck.getCard((i-1)*8 + j-1);//Will fix it to return proper type once NullPointerException is fixed. (piles[i]).setCardToPile(tempCard, j);//This is where the compiler complains. (piles[i]).setCardVisibility(false, j); } } if (DrawCards(13, 0, 0, (piles[13]).getCardFromPile(1), piles)) victory++; else loss++; } System.out.println("Victories: " + victory + "\nLosses: " + loss); }}