Fandom

Scratchpad

Word.c

224,228pages on
this wiki
Add New Page
Discuss this page0 Share

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 <stdlib.h>:

  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';
		}
	}

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.