card matching game from the Stanford CS193p course