Skip to content

YeyoDev99/Number-Guesser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Number Guesser V1.0

  • Bienvenido a este humilde repositorio, aquí encontraras un pequeño programa hecho en Python que consiste en un juego de adivinar el numero aleatoriamente generado por el mismo programa a través de una serie de intentos y pistas, para la correcta ejecución y entendimiento del programa recomiendo leer este README en su totalidad, además también recomiendo dejar los archivos .txt tal como están pues su modificación podría alterar el correcto funcionamiento del programa, el programa que debe ejecutarse para probar el juego es el archivo number_guesser.py

Menú

  • En el menú principal del programa se hace una explicación de cómo funciona el juego y se da una serie de opciones para que el usuario pueda digitar, dependiendo de lo que digite el usuario el juego iniciaría en una respectiva dificultad o abrirá las estadísticas del jugador (que se explican más adelante), para prevenir colapsos del programa implemente un try y un par de excepts, de esta forma y con la ayuda de condicionales evite que el usuario pueda interrumpir el programa sin importar lo que digite

Jugabilidad

  • Una vez el usuario ha elegido una dificultad, el juego iniciara la cantidad de intentos, el rango del número y la puntuación final se modificarán acorde a la elección, cuando el usuario intenta con un numero el programa retorna si el número a adivinar es mayor o menor, si el jugador agota sus intentos y pierde no se guarda nada, simplemente se retorna un mensaje y se da la opción al jugador de intentarlo de nuevo, pero si el jugador gana se da un puntaje dependiendo de la dificultad y el tiempo que se tardó en adivinar, es en este “camino” en donde surge la complejidad del programa, así que a continuación explicare cómo funcionan los puntajes y estadísticas del usuario

Módulos

  • El programa calcula el tiempo que tarda el usuario en adivinar el número, este “contador” inicia después de que el usuario digita su primer número para que sea justo, para este cálculo utilice el módulo datetime y su herramienta datetime.now(), puse uno al inicio de la partida y otro una vez el jugador ya ha perdido o ganado, lo siguiente fue simplemente restar el tiempo final con el inicial y sacar los segundos, para el numero generado por el programa simplemente utilice el random y su herramienta randint() y dependiendo de la dificultad elegida por el jugador el rango del numero generado varia, el programa también utiliza un módulo llamado number_guesser_user.py que contiene una clase, esta clase contiene las estadísticas del jugador (nivel, victorias, mejor tiempo y mayor puntaje) y en el archivo del programa instancie un objeto representando al usuario para aplicar un poco de POO, finalmente utilice otros dos módulos que sirven únicamente como ayuda visual, estos son el modulo os y su herramienta os.system(‘cls’) para limpiar la consola cada vez que sea necesario, y el modulo time y su herramienta time.sleep() para añadir algo de tiempo entre las transiciones de los prints y los inputs

Archivos .txt

  • Cada uno de los archivos .txt representan y poseen una estadística del usuario (nivel, victorias, mejor tiempo, mejor puntaje, puntaje acumulado) todos a excepción del puntaje acumulado son visibles eligiendo la opción de ver estadísticas desde el menú, el programa guarda los valores de estos .txt y por medio de varios condicionales evalúa si el jugador ha obtenido un nuevo valor (record) en alguna de estas estadísticas, si se da este caso el programa sobrescribe los archivos txt y guarda los nuevos valores, para lograr esto utilicé el with open con las opciones “w” y “r”, de este modo todos estos valores quedan guardados incluso cuando se vuelve a ejecutar el programa, los cálculos de mejor tiempo y mejor puntaje son bastante sencillos pues solo es necesario utilizar varios if para revisar si el usuario ha mejorado el valor de alguno de los .txt, al igual que el de puntaje acumulado que consiste en ir sumando el valor anterior del archivo con el generado en la partida, en cuanto al nivel simplemente hice una pequeña formula matemática para definir la cantidad de puntos que necesita el jugador para subir de nivel, se sube de nivel una vez que el puntaje acumulado de todas las partidas jugadas supera este limite

Otros archivos del programa

  • El repositorio posee un archivo llamado requirements.txt sin embargo no es necesario descargar ningún paquete, el programa funciona perfectamente sin tener que usar pip install, además hay un archivo .gitignore pero solo lo utilice para ignorar la carpeta que genera el entorno virtual

siéntete libre de chequear el código, modificarlo a tu gusto e incluso mejorarlo si es que deseas hacerlo, muchas gracias por pasar por este repositorio.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages