title: What are the mathematical/computational principles behind this game?
body: <p>My kids have this fun game called <a href="http://www.blueorangegames.com/spotit-tg.php" rel="noreferrer">Spot It!</a> The game constraints (as best I can describe) are:</p>
  
  <ul>
  <li>It is a deck of 55 cards</li>
  <li>On each card are 8 unique pictures (i.e. a card can't have 2 of the same picture)</li>
  <li><strong>Given any 2 cards chosen from the deck, there is 1 and only 1 matching picture</strong>. </li>
  <li>Matching pictures may be scaled differently on different cards but that is only to make the game harder (i.e. a small tree still matches a larger tree)</li>
  </ul>
  
  <p>The principle of the game is: flip over 2 cards and whoever first picks the matching picture gets a point. </p>
  
  <p>Here's a picture for clarification:</p>
  
  <p><img src="https://i.stack.imgur.com/Lv4I1.jpg" alt="spot it"></p>
  
  <p>(Example: you can see from the bottom 2 cards above that the matching picture is the green dinosaur. Between the bottom-right and middle-right picture, it's a clown's head.)</p>
  
  <p>I'm trying to understand the following: </p>
  
  <ol>
  <li><p>What are the minimum number of different pictures required to meet these criteria and how would you determine this? </p></li>
  <li><p>Using pseudocode (or Ruby), how would you generate 55 game cards from an array of N pictures (where N is the minimum number from question 1)? </p></li>
  </ol>
  
  <p><strong>Update:</strong></p>
  
  <p>Pictures do occur more than twice per deck (contrary to what some have surmised). See this picture of 3 cards, each with a lightning bolt:<img src="https://i.stack.imgur.com/9Pk2v.jpg" alt="3 cards"></p>