The backbone of this program is a file “CardDeck” that loads the values of 52 cards with their respective values 2-14. These values are stored and split into two “decks” that the player and opponent each play with. Multiple else and if statements are nested within a while loop that repeats until one of the “decks” is out of cards. These else and if statements determine who wins each round and how cards are allocated to decks after each round. Fprintf statements output how many cards are in each deck, who won the round, and other important game statements.