aninfo's People
aninfo's Issues
[DESIGN] Limpiar consola
🎨 Design
Cada vez que se ingresa un comando, se debe limpiar el estado anterior de la consola antes de mostrar el nuevo estado
Implementation
Con cada input, se borra lo anterior antes de imprimir lo nuevo.
Para que sea compatible con Windows y con Linux usar la siguiente linea de codigo:
os.system('cls' if os.name == 'nt' else 'clear')
[FEATURE] Validar filas
🚀 Feature
Hacer un validador que corrobore que en cualquier momento del juego todas las filas del mapa sean validas
Motivation
Se necesita para saber si el jugador gano o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Hay que recorrer todas las filas y verificar que no se repitan numeros
Additional context
[FEATURE] Crear menú inicial para elegir dificultades
🚀 Feature
Crear un menu con distintas opciones para que el jugador pueda controlar el juego
Motivation
Para poder iniciar el juego y elegir entre distintas dificultades
Implementation
Debe ser previo a iniciar la partida y lo primero que se muestre al ejecutar el juego.
Debe mostrar un mensaje de bienvenida y mostrar las opciones del menú de elección de dificultad que será el siguiente:
- Facil
- Normal
- Dificil
Luego, debe pedir al jugador ingresar un número solo del 1 al 3. Al ingresar un número que no esté en ese rango se deberá mostrar un mensaje de error y volver a pedir un número.
Despues de seleccionar la dificultad deseada se debera iniciar el juego
Additional context
Mejorar la experiencia del jugador con prints detallados
🚀 Feature
Mejorar los prints del programa para mejorar la experiencia del jugador
Motivation
Para que el jugador pueda tener un mayor detalle de lo que pasa durante el juego y la experiencia sea mas amena
Implementation
Se deberá modificar el texto mostrado por consola de acuerdo a los wireframes realizados
Additional context
Add any other context or screenshots about the feature request here.
[FEATURE] Pedir una pista sin repeticiones no consume esa pista
🚀 Feature
Al pedir una pista cuando no hay números repetidos, no se le reste al usuario esa pista
Motivation
Es una desventaja para el usuario que se le reste esa pista cuando la misma no otorgó ayuda.
Implementation
Para resolver esto simplemente hay que verificar si el validador detectó alguna repetición, y solamente en caso positivo se le restará la pista.
[FEATURE] Salir del juego desde la seccion de elegir dificultad
🚀 Feature
Una vez iniciado el juego hay que matar el proceso para poder terminarlo. Debe haber una opcion una vez iniciado el juego para esto en la seccion de elegir dificultad.
Implementation
Agregar una cuarta opcion en la seccion de elegir dificultad para poder salir del juego. Cuando el usuario seleccione esta opcion se debe terminar el proceso del juego adecuadamente.
[FEATURE] Crear menú para que el usuario maneje el flujo del juego
🚀 Feature
Crear un menu secundario con distintas opciones para que el jugador pueda interactuar con el juego
Motivation
Para permitir al jugador controlar las interacciones con el sudoku
Implementation
Debe mostrarse inmediatamente luego de haber elegido la dificultad y luego de haber elegido un número para ingresar o haber pedido una pista. Además deberá mostrar las siguientes opciones:
A) Ingresar número
B) Pedir una pista
C) Limpiar el tablero
D) Finalizar juego
Luego, debe pedir al jugador ingresar una letra sola entre A, B, C y D. Al ingresar un número que no esté en ese rango se deberá mostrar un mensaje de error y volver a pedir un número.
Al elegir la opción D se deberá mostrar un mensaje de despedida y finalizar la ejecución del juego.
Additional context
La funcionalidad de la opción 1 se creará en #4
La funcionalidad de la opción 2 se creará en #19
[FEATURE] Agregar nuevos tableros por dificultad
🚀 Feature
Se tiene unicamente un nivel por dificultad por lo cual al jugar 2 o mas veces el mismo nivel no hay un desafio porque el tablero es el mismo y ya se sabe la solucion.
Se debe tener 3 tableros por cada dificultad como minimo.
Implementation
- Agregar mas archivos txt en la carpeta ./aninfo/setsudokus, un archivo por nuevo tablero jugable.
- Cada tablero debe tener un id para elegirlos de forma aleatoria usando la libreria random: import random.
[FEATURE] Mostrar el mensaje en caso de ganar o perder
🚀 Feature
Dar un mensaje de victoria en caso de que el sudoku sea resuelto correctamente.
Motivation
Permite que el usuario se de cuenta si gano o perdió.
Implementation
Se debería de llamar luego del verificador del tablero una vez que todos los numeros fueron ingresados, y en caso de que el verificador devuelva verdadero, se muestra el mensaje final de victoria o derrota.
[FEATURE] Validar mini cuadrado
🚀 Feature
Hacer un validador que corrobore que en cualquier momento del juego todos los mini cuadrados del mapa sean validas
Motivation
Se necesita para saber si el jugador gano o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Hay que recorrer todas todos los mini cuadrados y verificar que no se repitan numeros
Additional context
Con mini cuadrados nos referimos a cada sub cuadrado del sudoku de 3x3 donde cada numero tiene que ser unico
[FEATURE] Mostrar tablero
🚀 Feature
Se debe mostrar el sudoku actual al jugador
Motivation
Que el jugador pueda ver el progreso del juego y decidir su proxima movida
Implementation
Se debe mostrar por consola el sudoku actual. Los números fijos deben diferenciarse de los números ingresados por el jugador, los fijos seran de color rojo y los ingresados por el jugador se mantendran blancos, las posiciones donde no se haya ingresado ningun numero todavia se mostrara un ? blanco en su lugar. Ademas se deben formar cuadrados de 3x3, que estar divididos por lineas verticales de | y horizontales de -.
[FEATURE] Generar set de sudokus iniciales
🚀 Feature
Tener un listado de los posibles escenarios de inicio.
Motivation
Nos asegura de tener una estado inicial el cual garantiza que el sudoku sea resoluble.
Implementation
Hay que copiar como mínimo 10 sudokus iniciales de algún sudoku online.
El set se tiene que guardar en un archivo txt, donde las casillas vacias deben ser simbolizadas con ?, y debe estar ordenado en 1er lugar el caracter (numero o ?) que iria en la posicion 1x1, luego el de la posicion 1x2 y asi sucesivamente hasta completar el tablero, todos los valores separados por comas para facilitar la lectura del archivo TODO EN EL MISMO RENGLON, luego el siguiente renglon sera otro sudoku. Ademas este archivo debera llamarse setsudokus.txt.
El set inicial corresponde a una dificultad fácil.
Los sets se podrían tomar del siguiente link https://www.sudoku-online.org/
[FEATURE] Limpiar el mapa
🚀 Feature
Elimina todos los valores añadidos por el jugador
Motivation
Ahorrarle tiempo al jugador si quiere eliminar todo lo ingresado
Implementation
No debe borrar los numeros que vienen en el tablero por defecto, elimina todos los numeros que hayan sido ingresados
[FEATURE] Crear Validadores de juego
[FEATURE] Crear set de sudokus para nuevas dificultades
🚀 Feature
Motivation
Le agrega mas diversidad y complejidad al juego. Existirán 3 niveles, siendo esos fácil, medio y difícil.
Implementation
Se deben crear 2 dos sets nuevos diferentes al inicial, donde se agregaran 20 sudokus mas, 10 para cada set. El primer set corresponde a la dificultad media y el tercer set corresponde a la dificultad difícil.
Para conseguir los 10 sudokus hay que realizar la misma tarea que en #13 pero eligiendo la dificultad acorde dentro del sudoku online. Luego de esta tarea, habrá un archivo txt para cada dificultad con 10 sudokus que se deberán guardar en una carpeta llamada setsudokus.
[FEATURE] Validar columnas
🚀 Feature
Hacer un validador que corrobore que en cualquier momento del juego todas las columnas del mapa sean validas
Motivation
Se necesita para saber si el jugador gano o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Hay que recorrer todas las columnas y verificar que no se repitan numeros
Additional context
[BUG] Al ingresar una coordenada invalida el error no se muestra instantaneamente
🐛 Bug Report
Al ingresar un numero invalido como fila y columna (780 o string o ENTER), te deja ingresar un numero y luego de elegirlo te muestra el error de que la coordenada no es valida. Estaria bueno que el error se muestre antes de solicitar un numero.
Screenshot
Justo antes de poder elegir un numero se deberia mostrar el error ''La coordenada 780 no es una coordenada valida."
Luego de elegir el numero muestra el error:
Implementation
Agregar un loop que se quede iterando hasta que el usuario ingrese una coordenada valida.
[FEATURE] Creat Validador de filas
🚀 Feature
Hacer un validador que corrobore que en cualquier momento del juego todas las filas del mapa sean validas
Motivation
Se necesita para saber si el jugador gano o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Hay que recorrer todas las filas y verificar que no se repitan numeros
Additional context
[FEATURE] Añadir nuevos numeros
🚀 Feature
El jugador debe poder añadir numeros al tablero
Motivation
Es la principal interaccion del jugador con el tablero
Implementation
Se debe pedir un input al jugador donde debe ingresar las coordenadas de la celda donde quiere añadir el numero y en otro input el número que quiere añadir. En caso de que no cumpla con el rango de coordenadas deberá mostrar un mensaje de error y volver a pedirlas. En el caso de que el jugador haya ingresado algo que no sea un número o bien el número no está en el rango del 1-9 entonces se deberá mostrar un mensaje de error y volver a pedir un número válido.
Para conseguir la ubicacion donde ingresar el numero, primero se le consultara al usuario la coordenada sobre el eje x y luego la coordenada sobre el eje y del tablero.
Luego de tener coordenadas validas se le consultara el numero que desea ingresar.
[FEATURE] Creacion del tablero
🚀 Feature Creacion del tablero
Crear el tablero con las dimensiones correctas
Motivation
Es un elemento principal del juego
Implementation
Debe ser una matriz de las dimensiones necesarias
Agregar guía de filas y columnas al tablero
🚀 Feature
Se deberá ver una guía de numeros para cada fila y columna del tablero de juego
Motivation
Para que el jugador pueda guiarse mejor y su experiencia no sea tan confusa
Implementation
Se deberá agregar a la función mostrar_tablero prints para que se muestre una guía de filas y columnas del tablero, del 1 al 9 cada uno. Los números de guía deberán diferenciarse de los demás para una mejor legibilidad
[FEATURE] Permitir al usuario volver a intentar luego de ingresar un numero invalido en una celda
🚀 Feature
Al ingresar un numero invalido del 1 al 9 en una celda, no te deja volver a intentar. Te muestra el error y se vuelve al menú de la partida:
Se debe poder ingresar un numero manteniendo la elección de la fila y columna para no tener que hacerlo de vuelta.
Implementation
Agregar un loop que se quede iterando hasta que el usuario ingrese un numero valido.
[FEATURE] Crear Validador de mini cuadrados
🚀 Feature
Hacer un validador que corrobore que en cualquier momento del juego todos los mini cuadrados del mapa sean validas
Motivation
Se necesita para saber si el jugador gano o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Hay que recorrer todas todos los mini cuadrados y verificar que no se repitan numeros
Additional context
Con mini cuadrados nos referimos a cada sub cuadrado del sudoku de 3x3 donde cada numero tiene que ser unico
[FEATURE] Crear validador de juego
🚀 Feature
Crear un validador que chequee si el estado del tablero es valido en cualquier momento del juego
Motivation
Se requiere para saber si el jugador gano el juego o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Se deberia corroborar que por fila, columna y celda haya un numero de cada uno (1 al 9)
El validador sera llamado al terminar el juego, como se especifica en #18
Additional context
[FEATURE] Creación del tablero inicial
🚀 Feature Creación del estado inicial del sudoku
Crear un sudoku inicial el cual sea posible de resolver.
Motivation
Permite al usuario visualizar los primeros números y comenzar a jugar.
Implementation
Crear el tablero que seria una matriz de dimensión 9x9
Tomar un tablero entre los tableros guardados con solución única. El tablero se selecciona del set de sudokus guardado. Cabe recalcar que se selecciona del set acorde a la dificultad solicitada por el usuario.
La funcion tambien debe devolver una tupla con las coordenadas en las que se encuentran los numeros bloqueados.
[FEATURE] Crear Validador de columnas
🚀 Feature
Hacer un validador que corrobore que en cualquier momento del juego todas las columnas del mapa sean validas
Motivation
Se necesita para saber si el jugador gano o en cualquier punto del juego no puso ningun numero incompatible
Implementation
Hay que recorrer todas las columnas y verificar que no se repitan numeros
Additional context
[FEATURE] Dar pistas
🚀 Feature
Darle una pista al usuario.
Motivation
La idea de esto es facilitarle al usuario la resolución del sudoku en caso de que lo precise. Se tendrá un limite de 3 pistas por cada nivel
Implementation
Como ya tenemos acceso al sudoku resuelto, esta tarea simplemente seria llenar una celda al azar del tablero con el numero correcto. Cabe recalcar que la celda debe estar vacía, sin input del usuario
La pista consiste en decirle al usuario que numeros tiene mal, utilizando el verificador implementado en #24
[FEATURE] Ingresar los números fijos
🚀 Feature
Ingresar los números fijos en el sudoku en juego
Motivation
Es necesario ubicar los números fijos del sudoku para que no sea trivial la resolucion
Implementation
Se deben ingresar todos los números fijos que provengan de la información del sudoku elegido para el juego en sus respectivas coordenadas. Estos números no deben poder modificarse por el jugador.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.