The BP_DeckMem and BP_CardMem Blueprints are the primary Blueprints that manage how the cards are defined and laid out in the game. One instance of BP_DeckMem is placed in the game level,
and it handles the spawning of BP_CardMem.
BP_DeckMem contains logic for creating and shuffling the card deck, spawning the cards, placing them on the board, and showing all the cards when the Hint button is pressed. The network for shuffling the
deck is stored in the Shuffle function, which is called in the main EventGraph during new game preparation. After the deck is shuffled, BP_DeckMem spawns the cards, with different card placement based
on the total number of cards. Every location on the board has an index: the CardDeckObjects array contains the BP_CardMem Blueprint that is at that index, while the CardDeckShuffled array holds
information about the card type for that index. The Rotate event in BP_DeckMem flips all the cards when the Hint button is pressed.
BP_CardMem defines the picture on each card, defines the animations for placing, flipping, and removing the cards, and sets the ParticleEffects and sounds used when comparing cards.