Coder Social home page Coder Social logo

aninfo's People

Contributors

alant7799 avatar colooviedo avatar ignacio0viedo avatar juampicarosi avatar mateovroonland avatar tomas-no avatar

Watchers

 avatar

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:

  1. Facil
  2. Normal
  3. 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 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."

image

Luego de elegir el numero muestra el error:

image

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] 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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.