I can work it out without array I think, but it would be a real pain (tonnes of conditions)
I think a good start is to have a kind of conversion table.
cardConversion.At(0,0) = "ace"
cardConversion.At(0,1) = "hearts"
cardConversion.At(1,0) = "ace"
cardConversion.At(1,1) = "diamonds"
cardConversion.At(52,0) = "king"
cardConversion.At(52,1) = "spades"
What would you use that for?
Well the idea is that you would have all the card images in 52 frames of a card sprite in exactly the same order.
And thanks to this cardConversion array you'll be able to know the rank of the suit of any given card through it's animation frame.
cardConversion.At(card.AnimationFrame,0) will give you the rank of the card
cardConversion.At(card.AnimationFrame,1) will give you the suit of the card
Now you can just lay down the starting position of the cards in the layout.
And you'll just have to find a way to randomize the animation frame of each card without duplication.
But it might become a pain to maintain the deck itself.
So maybe yeah, an array just for the shuffling of every cards,
Then you distribute the card in this shuffled array by changing the frame of the cards laid out, and deleting the value in the array each time (with the delete function so your array shrinks at the same time) and then you'll be left with your randomized starting cards plus a cool deck array to cycle in (:
Then it's just a matter of coding the rules of the game.
like if you drop a card on a given column, check that the rank or the last card of the column (highest Y position)is the current card's rank + 1 and that the suit is the other color (you can try another kind of conversion table to answer this question or work it out with just conditions)
Then valid the move or not.
Same kind of thing to move the card on the 4 suit slots on the top right.
So yeah you'll need array and some bits of good knowledges of C2, but no complex math (:
So yeah good luck
(An yeah, power bumping makes you look like a jerk, and also often makes people not willing to answer you... So be carefull)