int DrawCard() { int cardDrawn = knowledgePile.DrawCard(); if (cardDrawn == -1) { int[] tempPile = memoriesPile.Empty(); if (tempPile != null && tempPile.Length != 0) { knowledgePile.AddCards(tempPile); knowledgePile.Shuffle(); cardDrawn = knowledgePile.DrawCard(); } else { // Ran out of cards to draw return(-1); } } return(cardDrawn); }