domingo, 2 de agosto de 2015

Juego del ahorcado. Versión 2.

Segunda versión del juego: ahora vamos a obtener las palabras de un fichero de texto.

Abre el fichero y coge la primera palabra, para evitar que se repita siempre, cogeremos cada palabra que ya hayamos utilizado y la colocaremos al final del fichero. Esto vamos a hacerlo a través de un fichero de texto temporal, en el que se colocarán las palabras en el nuevo orden. Después borramos el fichero de texto original y renombramos el nuevo. Este es el aspecto del pequeño fichero que he creado para hacer las pruebas:



Salvo un pequeño cambio en la llamada a la función en Main, sólo se ha tocado la función "Genera_Palabra".

Vamos a ver primero las bibliotecas que se han incluido:

Se ha modificado la llamada a la función "Genera_Palabra", en lugar de devolver ya directamente la palabra, va a devolver una variable del tipo "bool", que nos indicará si ha habido cualquier problema a la hora de abrir los ficheros (por ejemplo si el fichero de palabras no se encuentra en el lugar esperado). Para obtener la palabra que adivinaremos, pasaremos una variable del tipo string como parámetro (se coloca delante el "&" para que se pase la variable por referencia, es decir, los cambios que se realicen dentro de la función, afectarán a la variable de "main" que se le pase de esta forma).


Podemos ver que la llamada ha cambiado y que si el resultado es "false", se muestra un mensaje de error y el programa se detiene.

Vamos ahora a la parte más interesante, la función "Genera_Palabra":




Al trabajar con ficheros hay varias cosas a tener en cuenta, la primera es que es muy común que un fichero no se pueda abrir, ya sea porque no esté donde lo estamos buscando, que otro programa lo esté utilizando y lo tenga bloqueado, etc.... Por eso es importante comprobar primero si se ha abierto correctamente el fichero (función "is_open").
También es muy importante cerrar el fichero cuando terminemos de trabajar con él (función "close").

El resto del código no tiene nada nuevo, aún así, si alguien tiene cualquier duda sobre el código, no dude en comentarlo.

No hay comentarios:

Publicar un comentario