#include <stdio.h>
#include <random>
#include <time.h>

int main( void )
{
	const int max_wrong = 6;

	// string array
	char *words[] = { "DOG", "CAT", "HOUSE"};
	int words_cnt = sizeof(words)/sizeof(char*);

	printf("words count %d\n", words_cnt);
	for(int i=0; i < 2; i++)
		printf("\t%s\n", words[i]);


	// random numbers

	time_t t;
	printf("Now is %d seconds after Epoch (UTC Jan 1, 1970)\n", time(&t));

	srand(time(&t));

	printf("rand: MAX_RAND = %d\n", RAND_MAX);
	printf("a random number: %d\n", rand() % words_cnt);
	printf("a random number: %d\n", rand() % words_cnt);
	printf("a random number: %d\n", rand() % words_cnt);
	printf("a random number: %d\n", rand() % words_cnt);

	int answer_index = rand() % words_cnt;

	char *answer = words[ answer_index ];

	printf("Word to guess is %s\n", answer);

	int wrong_cnt = 0;
	char sofar[100];
	char used[100] = "";
	int used_cnt = 0;

	// screen

	printf("******* Welcome to Hangman C *******\n");
	printf("          __\n");
	printf("         |  |\n");
	printf("         |   \n");
	printf("         |   \n");
	printf("         |   \n");
	printf("         |   \n");
	printf("      ___|___ \n");
	printf("GOOD LUCK HANG MAN\n");
	
	// loop
	while( wrong_cnt < max_wrong && strcmp( sofar, answer ) )
	{
		printf(">> You have %d incorrect letters left\n", max_wrong - wrong_cnt);
		printf(">> You've used the following letters: \n");
		printf("%s\n", used);

		char guess;

		while(1) {

			printf(">> Enter your guess: ");

			// get a char
			guess = getchar();
			while(!isalpha( guess ) )
			{
				guess = getchar();
			}
			guess = toupper(guess);

			printf(">> You entered %c\n", guess );

			if( !strchr(used, guess) )
				break;

			printf("You already entered the letter\n");

		}

		used[ used_cnt++ ] = guess;
		printf("used: %s, used_cnt %d\n", used, used_cnt);

	}


	printf("Press ENTER to continue....\n");



	getchar();

}