card_group_init(&player->hand);
 }
 
-#if 0
+
+static int card_compare(card_t *card_one, card_t *card_two)
+{
+    if (card_one.number < card_two.number)
+       return -1;
+    if (card_one.number == card_two.number)
+       return 0;
+    if (card_one.number > card_two.number)
+       return 1;
+}
+
+static int card_group_is_run(card_group_t *card_group)
+{
+    if (card_group->num_cards > 13 || card_group->num_cards < 3)
+    {
+       return 0;
+    }
+    for (i = 0; i < card_group->num_cards - 1; ++i)
+       if(card_group->cards[i].color != card_group->cards[i + 1].color)
+       {
+           return 0;
+       }    
+    for (i = 0; i < card_group->num_cards - 1; ++i)
+       if(card_group->cards[i].number != card_group->cards[i + 1].number -1)
+       {
+           return 0;
+       }
+    return 1;    
+}
+
 static int card_group_is_run(card_group_t *card_group)
 {
     int i;
     }
     return 1;
 }
-#endif
 
-#if 0
 static int card_group_is_set(card_group_t *card_group)
 {
     int i;
     }
     return 1;
 }
-#endif
 
 static void deck_deal(game_t *game, deck_t *deck)
 {