Sudoku difícilPython Sudoku chegou hoxe ás 10.000 descargas, cando se cumpre aproximadamente o primeiro ano de vida do proxecto. Ben, en realidade, se temos en conta as descargas realizadas de PySudoku, xa hai un mes que se chegou a esa cifra. O 12 de agosto habían 701 descargas de PySudoku e 9304 de Python Sudoku.

Mirando as estatísticas podemos observar que:

  1. A versión 0.11 ten 6280 descargas, máis da metade.
  2. A versión 0.11 tivo no día en que se publicou máis de 500 descargas.
  3. A versión 0.11 estivo sete meses como a última versión dispoñible.
  4. Efectúanse unha media de 29 descargas diarias

Historia

Python Sudoku surxiu en agosto de ano pasado grazas a dous factores:

  1. O meu pai entregoume o Marca e díxome: “A que non das feito este sudoku en menos dunha hora”. Despois de aprende-las regras, en vez de empezar a resolvelo, empecei a pensar cómo facer un programa para resolvelo.
  2. A pantalla do meu ordenador estropeárase e quedeime dúas semanas sen el. Para quitarme o mono tirei do meu vello 386 e empecei a picar código en C.

Despois de merca-la nova pantalla pensei en converti-lo código de C a python. Cando xa tiña a primeira versión en python decidín subi-la a Source Forge. Creei un proxecto co primeiro nome que se me ocorreu: PySudoku (á versión en C chamáralle simplemente sudoku).

Algún tempo despois descubrín que xa había un proxecto chamado PySudoku. Intentei elimina-lo proxecto de Source Forge e crear un novo co nome Python Sudoku, pero debido a que Source Forge pon moitas trabas para a eliminación dun proxecto, acabei creando unha páxina web onde explicaba que había un proxecto previo co mesmo nome e que cambiaba o nome.

Presente

Python Sudoku é un programa de liña de comandos bastante completo: permite crear sudokus e resolvelos, crear PDFs con un ou catro sudokus e crear imaxes cun sudoku. Case que tódolos parámetros son modificables vía a opcións na liña de comandos ou a modificación do ficheiro de configuración. Pola outra banda, a interface gráfica é moi básica.

O método de resolución de sudokus non é por forza bruta. Están codificados unha serie de algoritmos, clasificados pola súa complexidade, que se executan continuamente ata que non se den atopado máis sudokus. Se ó final do proceso non quedan ocos sen resolver o sudoku está resolto. Algúns sudokus, especialmente difíciles, aínda non se dan resolto, como por exemplo os que se presentan nas competicións.

O método de creación de sudokus si que é por forza bruta. Primeiro créase un sudoku resolto e despois vánselle creando ocos distribuidos aleatoriamente. Por cada novo oco compróbase que o sudoku se pode resolver, se non é así, vólvese a meter o número que había antes.

Cada día engádense 4 sudokus á páxina web. Os sudokus están creados coa dificultade normal e cos handicaps 0, 5, 10 e 15. Estes sudokus pódense engadir dun xeito doado a unha web.

Futuro

Teño varias melloras pensadas para as próximas versión:

A versión 0.13 contará cunha nova interface gráfica. A idea que teño na cabeza é que se pareza a esta imaxe:

prototipo6

A versión 0.14 terá máis algoritmos para a resolución de sudokus, intentando que sexa capaz de resolver os sudokus máis difíciles.

Futuras versións:

  1. Dous modos multixogador por internet: cooperativo, onde os números que se atopen se compartirán entre tódolos xogadores, e competitivo, onde o xogador que complete antes o sudoku será o gañador.
  2. Novo método de creación de sudokus máis intelixente coa opción de crear sudokus cun modelo (amosar números nas posicións pedidas).

No tocante á páxina web, quedan varias cousas por facer:

  1. Engaden sudokus coas dificultades easy, normal e hard en vez de co handicap.
  2. Crear varias páxinas web en vez de rederixir ás páxinas de Source Forge.

2 Responses to “10.000 descargas de Python Sudoku”

  1. 1 Dan

    Felicidades ó proxecto e, por suposto, ó programador!

  2. 2 Xosé Otero

    Grazas, grazas! 😀
    E ó traductor tamén :p


Categories

Calendario

Setembro 2006
M T W T F S S
« Ago   Out »
 123
45678910
11121314151617
18192021222324
252627282930  
3K2 theme by Hakan Aydin