FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola...
Hacer una "traducción" de AS2 a Delphi no es tan simple. Muchas de las cosas que se pueden hacer en AS2, no son tan sencillas de realizar en Delphi, un ejemplo es la asignación de valores a un arreglo, en AS2 al hacer: Código:
a = []; a[10] = 534; Dicho lo anterior, adjunto un archivo comprimido con dos clases, una unidad y un archivo .txt que es el código "traducido" de las dos funciones de AS2. Las dos clases son TSudokuGenerator y TSudokuSolver, y como su nombre los indican, una se usa para generar los Sudokus y la otra para resolverlos. La clase TSudokuGenerator contiene un método público Generate(const Level: Integer) al cual se le pasa como parámetro el nivel del Sudoku que se desea generar y al finalizar la ejecución de este método, en la propiedad Sudoku se puede acceder al Sudoku generado. La clase TSudokuSolver se usa para resolver Sudokus y contiene un método Solve(const ASudoku: String) que recibe el Sudoku generado por la clase anterior y devuelve en la propiedad Sudoku el Sudoku ya resuelto. Un par de capturas de pantalla: Saludos... |
#2
|
|||
|
|||
Hola.
Millones de gracias, maeyanes. Por tu esfuerzo y por tu tiempo. Voy a probar tu código y te cuento. (Quizás hoy no pueda...) Te comentaré. Gracias, de nuevo. Recibe un cordial saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#3
|
|||
|
|||
¡¡FABULOSO!! maeyanes.
Tu trabajo ha sido MAGNÍFICO. Funciona, perfectamente. Sólo una pregunta. ¿Porqué todos los sudokus resueltos terminan con -1? No es que sea un problema. La solución es correcta. Simplemente es una curiosidad. He estado revisando
Pero no encuentro el motivo. No te entretengas en buscar la causa si no lo ves a simple vista. (Ya te dije que era una curiosidad y ya has hecho bastante esfuerzo.) En Google Play tienes el sudoku al que voy a aplicar tu trabajo, (aunque antes tendré que adaptarlo para Android). La App es gratuita y se llama SudokuPlus. Busca por SudokuPlus Jhonalone, si quieres verla. A falta de una solución mejor (como es ésta) estaba utilizando un generador aleatorio, que voy a sustituir por éste que, según su autor siempre genera una solución única. El generador aleatorio, a veces, no lo hace. Nunca olvidaré tu excelente contribución. Un saludo muy cordial. Gracias de nuevo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) Última edición por jhonalone fecha: 19-11-2017 a las 19:25:05. |
#4
|
|||
|
|||
Hola...
Me imagino que te refieres a esta parte:
Es un pequeño error, en realidad el ciclo for debería ir de 81 a 161... la posición 162 en la lista Q[FCt] guarda el valor de un índice y este al final del proceso tiene como valor -1, por lo cual no debería agregarse a la cadena de la solución. Saludos... |
#5
|
|||
|
|||
¡Perfecto! maeyanes
Esa era la causa. Como te dije estoy intentando adaptarlo a FMX (Android). El generador, únicamente cambiando la localización de "data.txt", funciona correctamente. En cambio, el solucionador me está dando problemas. El primero era en el procedure "Solve". Consistía en que la function "Solver" me daba un error de "Arguments out of range", he supuesto que podía deberse a que las Strings en FMX comienzan por Cero y he modificado lo siguiente: Cambiándolo por esto:
Ahora la function "Solver" ya devuelve TRUE, pero el procedure "Solve" ahora me está dando error en
Estoy peleando con ello hace 2 días. Si tú sabes porqué y, (abusando de tu generosidad), me sacas de dudas te estaré todavía más agradecido (si es que fuera posible). En cualquier caso, infinitas gracias y un saludo muy afectuoso.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
#6
|
|||
|
|||
Hola...
Sin saber exactamente cual es el error que te reporta Delphi, y leyendo lo de los strings en Android, puedo "adivinar" que el error en Cons(Q[0]); se produce a causa del procedimiento SplitStrToIntList en la unidad SudokuUtils.pas:
Saludos... |
#7
|
|||
|
|||
Hola maeyanes.
El error es: " in not a valid integer value Gracias por estar ahí. Compruebo lo que me has comentado. Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10) "...si no tengo caridad, nada soy..." (1 Cor 13,1-13) |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Acceder a Objetos desde una funcion | darkmir | C++ Builder | 3 | 09-12-2013 00:12:41 |
Traducción de función desde delphi | Novás | PHP | 1 | 14-07-2010 18:46:40 |
llamar una función desde un formulario | cjamacaru | PHP | 1 | 03-12-2009 12:52:53 |
Array devuelto desde una función | r1d2m3 | OOP | 3 | 26-11-2009 01:28:20 |
Llamar a una función de una DLL desde PHP | MON___ | Varios | 4 | 05-10-2007 23:06:48 |
|