31 de Enero, 2012

Mi web para hacer crucigramas

Hace ya algún tiempo que buscaba crucigramas en español, y no encontré nada que realmente me gustara.

Sin estar muy convencido empecé a jugar con algoritmos para generar mis propios crucigramas, hasta que hace dos días hice pública mi web para hacer crucigramas en español (¡ta-daaa!).

Aún quedan cosas interesantes por añadir, y algunas por mejorar, pero la base está ya ahí: se pueden hacer crucigramas (¡oh!).

El proyecto consta de 3 elementos diferenciados:

  • El backend sobre MySQL donde se generan los crucigramas. He usado el ORM de Django, aunque esta parte corre desde cron y no es visible para el usuario.
  • El frontend, sobretodo la administración, en Django. Es lo que uso a diario en mi trabajo, y la verdad es que es la parte más sosa y menos divertida de desarrollar :).
  • Un cliente web hecho en Javascript y jQuery.

Precisamente esa última parte es lo que me ha llevado más tiempo, pese a que en realidad es muy sencilla. Digamos que no me queda tan claro que Javascript tenga alguna parte buena, y ha sido todo un reto dedicarle tiempo libre a esta parte :(.

A destacar que casi he conseguido que el cliente funcione al 100% en dispositivos con pantalla táctil (sin teclado), aunque no era una prioridad. Esta es una de las cosas que quiero mejorar el las próximas semanas.

Otra parte que debería mejorar es la generación de los crucigramas. Sobretodo porque en mis pruebas partía de unos datos de entrada reducidos, y en el entorno de producción los datos son distintos, sobretodo en lo que se refiere al volumen de los mismos :D.

Porque esa es la parte interesante de todo el proyecto: he pre-procesado alrededor de 30.000 definiciones de Wikcionario (un proyecto similar a la Wikipedia), y utilizo dichas definiciones para generar los crucigramas de una forma automática :).

Las definiciones se distribuyen bajo una licencia Creative Commons, y lo mismo he hecho yo con los crucigramas.

El diseño de la web es muy sencillo, así como su mecanismo: un crucigrama al día, y un navegador basado en un calendario para poder ir a los crucigramas de días anteriores.

Hay programados crucigramas para las próximas dos semanas (incluyendo unos especiales para los sábados :P), así que ese es el plazo que me doy para mejorar el algoritmo de generación y (quizás) las cosas que faltan en el proyecto :).

No está nada mal que mi primer proyecto personal del año venga tan pronto, que desde los motivadores del año pasado, no le había dado suficiente continuidad a ninguna idea.

Anotación por Juan J. Martínez, clasificada en: python, django.

Hay 2 comentarios

Gravatar

O me estoy perdiendo algo o solamente te ha faltado publicar el código fuente ;). Imagino que algún día se podrá “entrar” y guardar los resultados por usuario y demás…

Enhorabuena :)

por r0sk, en 2012-02-03 12:30:05

Gravatar

Faltan cosas… anoche precisamente mejoré (creo) el algoritmo que genera los crucigramas, y todo el tema de las cuentas de usuario “no está”.

El código fuente, por ahora, no es público (más allá del JS, claro está :D).

por Juanjo, en 2012-02-03 12:33:05

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: