Fandom

Scratchpad

Word.c

215,933pages on
this wiki
Add New Page
Discuss this page0 Share

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.

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

Also on Fandom

Random wikia