#include <stdio.h>
#ifndef NO_STDLIB_H
#include <stdlib.h>
#endif
#include "cgi-util.h"

#define MAX_ENTRIES 1000


int main(int argc, char *argv[])
{
entry entries[MAX_ENTRIES];
int m;
char c_num[80], c_adivinha[80], c_ntentativas[80];
int num = 0, adivinha = -1, ntent = 0;

	/**CGI: inicializar o modulo de CGI **/
	m = cgi_init(entries, sizeof(entries)/sizeof(entries[0]));
	if (m < 0)
	{
		/**CGI: reportar erro no modulo **/
		cgi_send_error(m);
		exit(1);
	}

	/**CGI: indicar tipo de conteudo da resposta **/  
	cgi_send_header(HEADER_TYPE_TEXT_HTML);
	
	/**CGI: procurar por um valor **/
	if (cgi_get_value_from_key(c_adivinha, sizeof(c_adivinha), "adivinha", 0, entries, m) == -1)
	{
		srand(time(NULL));		adivinha = rand() % 100;
	}
	else
		adivinha = atoi(c_adivinha);	cgi_get_value_from_key(c_num, sizeof(c_num), "num", 0, entries, m);
	cgi_get_value_from_key(c_ntentativas, sizeof(c_ntentativas), "ntentativas", 0, entries, m);

	/* efectuar calculo */
	num = atoi(c_num);	ntent = atoi(c_ntentativas);
	if (ntent == 0)
		ntent = 1;	ntent++;

	if (num == adivinha)
	{
		/* construir documento */
		printf("<h1 align='center'>Jogo de 'Adivinhação'</h1>");
		printf("<p align='left'>Parabéns, acertou ao fim de %d tentativas</p>", ntent);
		printf("<a href='http://www.dei.isep.ipp.pt/~psousa/aulas/amb-des/teste_cgi_3.htm'>Recomeçar</a>");
		printf("</body>");
		printf("</html>");
	}	else
	{
		/* construir documento */
		printf("<h1 align='center'>Jogo de 'Adivinhação'</h1>");
		printf("<form action='http://www.dei.isep.ipp.pt/cgi-bin/user/psousa/adivinha.cgi' method='post'>");
		if (num < adivinha)
			printf("<p>Tente um número maior</p>");
		else
			printf("<p>Tente um número menor</p>");
		printf("<p>Esta é a sua %dª tentativa</p>", ntent);
		printf("<p>Introduza um número: <input maxlength='3' name='num' value='%d'></p>", num);
		printf("<p><input type='submit' name='executar' value='Submit'></p>");
		printf("<input type='hidden' name='adivinha' value='%d'>", adivinha);
		printf("<input type='hidden' name='ntentativas' value='%d'>", ntent);
		printf("</form>");
		printf("</body>");
		printf("</html>");
	}
		/**CGI: libertar recursos do modulo **/
	cgi_uninit(entries, m);		return 0;
}

