Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Sudoku

No description
by

Daniela Besies

on 14 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Sudoku

Sudoku
Estructuras de Datos
Daniela Besies
Sebastián González
Francisco Quijano
¿Problema?
Solución
Diagrama de clase
Algoritmo Recursivo
Limitaciones del Proyecto
Posibles Mejoras
Conclusiones:
Hacer un programa que pueda resolver Sudokus.
El usuario debe poder ingresar los dígitos del 1-9
en la interfaz.
Cuando el usuario aprieta el botón de Resolver, el programa
debe encargarse de rellenar el resto de las casillas con una
solución válida de acuerdo con las reglas del Sudoku.
Si los números ingresados por el usuario presentan un problema
sub-restringido, sólo es necesario que el programa genere
una de las muchas posibles soluciones.
Si por el contrario el problema está sobre-restringido se debe desplegar un mensaje de error.
El botón de Limpiar es para limpiar la cuadrícula y
comenzar a poner los dígitos de un nuevo
problema en las casillas.
Para solucionar el problema utilizamos estructuras de datos de tipo conjunto (para asegurarnos de que no se repitan valores en los renglones, columnas y regiones de 3x3).
También ocupamos recursividad para realizar búsquedas exhaustivas con retroceso y así resolver cada problema del Sudoku.
Utilizamos recursividad en el método "solve"
Creemos que podríamos mejorar el proyecto haciendo más amigable la interfaz al no tener que presionar enter cada vez que se agrega un número. (En lugar de un actionEvent usar un DocumentListener para poder responder en tiempo real al dato ingresado).
Creemos que uno de los principales retos al realizar este proyecto no es escribir el algoritmo, sino pensar cómo debe ser éste y en qué momento y de qué forma se deben utilizar tanto los conjuntos como la recursividad.
Después de realizar este proyecto, podemos concluir que es de gran ayuda para hacernos en verdad pensar sobre el funcionamiento y la utilidad de la estructura de datos tipo "Conjunto" y sobre la recursividad.
Además nos gustaría destacar que este proyecto nos ayudó a desarrollar nuestras habilidades para trabajar en equipo y hacer uso de las fortalezas de cada integrante.
Métodos Principales
+ confirmarCasilla (int, int, int) : boolean
+ agregarCasilla(int, int, int) : boolean
+ solve() : boolean
- solve(int, int) : boolean
Full transcript