Word.c

=WORD.C=

Variables globales:
 * 1) char word_ref[20]: Aquí almacenamos la palabra a adivinar, servirá para compararla, con las letras pulsadas, e ir descubriendo aquellas que coincidad, además también la usamos para compararla con la palabra que escribimos como intento.
 * 2) char word[20]: En esta variable al principio iniciamos todos sus caracteres como "{" ya que equivale al gráfico "_", y cuando vayamos probando las letras, la compararemos con la cadena word_ref[20] para ver que letras coinciden y sustituir el caracter "{".

Funciones:


 * 1) void WD_init_word
 * 2) void WD_update_word
 * 3) void WD_check_word

void WD_init_word:
En esta función leemos las palabras contenidas en un fichero de texto, y seleccionamos una de ella aleatoriamente, para que sea la palabra a adivinar en el juego.

Variables locales:
 * 1) FILE *dictionary: Para manejar el archivo de las palabras.
 * 2) int i,c: Indices para bucles for.
 * 3) int words = 0: Almacenará el número de palabras que posee el archivo words.

Para ello usamos las siguientes funciones de manejo de ficheros y números aleatorios contenidas en :


 * 1) srand: Para generar una semilla aleatoria al pasarle time (hora del sistema).
 * 2) time: Devuelve la hora del sistema, se la pasamos como argumento a srand.
 * 3) fopen: Abre un fichero de texto plano (.txt), donde se encuentran las palbras.
 * 4) fgets: Lee una cadena N de caracteres, hasta encontrar " " o "\n".
 * 5) rand: Genera un número aleatorio, basandose en la semilla generada por srand.
 * 6) rewind: Situa el cursor de lectura de un fichero al comienzo de este.

Entonces usando estas funciones los pasos serían los siguientes:

a) Generamos una semilla para el número aleatorio:	srand(time(NULL));

Abrimos el archivo "words" dond están contenidas las palabras: dictionary = fopen("words","r");

b) Contamos las palabras que posee el archivo:	fgets(word_ref, 20, dictionary);

while(!feof(dictionary)) {				words++; fgets(word_ref, 20, dictionary); }

c) Generamos un número aleatorio acorde al número de palabras:	c = rand % (words);

d) Escogemos la palabra de acorde al número aleatorio:	rewind(dictionary);

for(i = 0; i != c; i++) fgets(word_ref, 20, dictionary);

e) Rellenamos la palabra que vamos mostrando, con el caracter "{", porque este será dibujado como "_":	for(i = 0; word_ref[i]; i++)	{		if(word_ref[i] != '\n')			word[i] = '}';		else		{			word[i] = '\0';			word_ref[i] = '\0';		}	}