#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#include "cards.h"

const card_name range[] = "A23456789JQK";
struct card *list = NULL;
int last;

void init_deck(void)
{
	srandom(time(NULL));
	list = malloc(20);
	reset_deck();
}

void reset_deck(void)
{
	memset(list,0,20);
	last = 0;
}

void close_deck(void)
{
	free(list);
}

int find(struct card *c)
{
	int i=-1;
	while(list[++i].name) {
		if((list[i].name == c->name) && (list[i].suit == c->suit)) {
			return i;
		}
	}
	return -1;
}

void deal_card(struct card *c)
{
	card_suit suit;
	card_name name;

	do {
		suit = random() % 4;
		name = range[random() % strlen(range)];

		c->suit = suit;
		c->name = name;
	} while(find(c)>0);

	list[last].suit = c->suit;
	list[last].name = c->name;
	last++;
}
