#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

#define LSTR 128
int ogni; /// visualizza ogni OGNI valori

void randomizza()
/* Chiamare 1 sola volta, prima di random() */
{
	time_t t;
	srand((unsigned) time(&t));
	/* inizializza generatore pseudocasuale sul tempo di sistema */
}

int acaso(int min, int max)
// genero un valore a caso fra min e max
{
	return rand() % (max - min + 1) + min;
}


void genera_parola(char s[]) { /// prova a generare a caso la parola MAIUSCOLA
	int i;
	int len = strlen(s);
	char generata[LSTR] = {0};
	int tentativo = 0;
	clock_t inizio = clock();   /// Calcolo tempo
	do {
		for (i = 0; i < len; i++)
			generata[i] = acaso('A', 'Z'); /// valore a caso compreso fra 'A' e 'Z'
		tentativo++;
		if (tentativo % ogni == 0)
			printf("Tentativo %d, parola generata=[%s]\n", tentativo, generata);
	} while (strcmp(s, generata) != 0);
	printf("Parola generata di %d lettere = [%s] in %d tentativi\n", len,generata,tentativo);
	clock_t fine = clock();   /// Calcolo tempo
	double tempo_trascorso = ((double)(fine - inizio)) / CLOCKS_PER_SEC;
	printf("Tempo trascorso: %f secondi\n", tempo_trascorso);

}

int main() {
	char s[LSTR];
	char invio;
	randomizza();

	printf("Parola MAIUSCOLA senza spazi ->");
	gets(s);
	printf("Visualizzo tentativi ogni ---->");
	scanf("%d%c", &ogni, &invio);
	genera_parola(s);
	printf("Premi invio...");
	getchar();
	return 0;
}
