Entradas para el mes Septiembre de 2006

Plugin del wordpress mejorado

Miércoles 6 de Septiembre de 2006 a las 23:57

Para mostrar el código coloreado en el blog utilizo un plugin para el wordpress llamado iG:Syntax Hiliter. Este plugin es muy útil e interesante ya que permite colorear el código de múltiples lenguajes de programación. Sin embargo presenta una serie de deficiencias que he intentado solucionar.

Por un lado, es un poco incómodo leer el código en la ventana que se muestra ya que no suele caber todo y se necesita una barra de scroll horizontal lo que dificulta su lectura. Para solucionarlo le he realizado unas modificaciones para permitir abrir una nueva ventana del navegador con el código coloreado. En la parte superior izquierda del recuadro que muestra el código ahora aparece la opción “Maximizar”, que abre una ventana de las mismas dimensiones que la pantalla con el código

Por otro lado, en el código en VB.Net, que es el que yo utilizo, no coloreaba correctamente muchas palabras. Así que también le hice unos cambios en el fichero que colorea el código en VB.Net.

Lo he probado en el Firefox y en el Internet Explorer y funciona correctamente, de todas formas si encontráis algún bug por favor comunicádmelo.

Lo podéis ver por ejemplo en los siguientes post:

Autómata finito determinista para reconocer constantes numéricas
Coloreando el código en el editor

Si alguien esta interesado en el plugin modificado que me lo pida y se lo envío. El plugin original se distribuye bajo la licencia GNU GPL, espero no infringirla. Si no es así por favor comunicádmelo.

El original se pueden encontrar en la siguiente dirección: iG:Syntax Hiliter

Se agradecen recomendaciones de otros plugins interesantes para el wordpress.

La abadía del crimen

Martes 5 de Septiembre de 2006 a las 23:56

Este juego es considerado por muchos el mejor juego desarrollado en España. Fue toda una revolución cuando se publicó en el año 1988.

Esta basado en la novela “El nombre de la rosa” de Umberto Eco, de la que también se hizo una película. Inicialmente el juego iba a tener el mismo nombre que la novela, pero no pudo ser así por no llegarse a un acuerdo.

El juego se desarrolla en una abadía, donde nos meteremos en la piel de Guillermo de Occam y Adso. Con los cuales tendremos que participar en los distintos actos rutinarios que desarrollan los monjes en la abadía a la vez que investigamos una serie de crímenes a lo largo de los siete días en que se desarrolla la aventura.

Fue desarrollado por Paco Menéndez, todo un referente en el mundo de la programación de videojuegos y que lamentablemente ya no está entre nosotros. Los gráficos son obra de Juan Delcán.

Fué distribuido por Opera Soft y se publicaron versiones para MSX, Spectrum, Amstrad y posteriormente salieron versiones para PC, MSX 2 e incluso para la Game Boy Advance.

La dificultad es muy elevada y es muy complicado terminárselo sin hacer uso de las guías que se publicaron en su época.

Esta es la apariencia que tenía el juego en el MSX:

La abadía del crimen. MSX.
La abadía del crimen. MSX.

Hace poco tiempo ha salido al mercado una nueva versión, extremadamente fiel al original, para móviles. Esta versión esta desarrollada en J2ME.

De esta obra de arte se han hecho diferentes remakes y nuevas versiones debido al éxito que tuvo y el impacto que causó.

Unos links interesantes:

Visor java del mapa Applet de java que muestra el mapa de la abadía por pantallas.

Remake para PC

Proyecto en 3D basado en el juego original

Coloreando el código en el editor

Lunes 4 de Septiembre de 2006 a las 23:56

Una funcionalidad muy fácil de implementar y que resulta interesante es la de colorear en el editor de código que estoy creando las palabras del script dependiendo del tipo de palabra del que se trate.

Teniendo implementado el analizador léxico desarrollar esta funcionalidad es trivial. Para empezar lanzamos el analizador léxico y recibimos la colección de palabras que componen el script. Para cada una de ellas tendremos el tipo de palabra de que se trata y su posición en el script, indicada por su línea y columna. Con esta información simplemente seleccionaremos en el control RichTextBox que contiene el código las palabras que queramos resaltar y establecemos el color deseado según el tipo de palabra.

Se ha decidido colorear las palabras reservadas y las constantes lógicas (verdadero y falso) de azul, las cadenas de caracteres de color morado y los errores de color rojo. El resto de palabras permanecerán de color negro.

Esta es la apariencia que muestra el código una vez coloreado:

 

Texto coloreado.
Texto coloreado.

 

La palabra entera no la colorea de azul porque no es un tipo valido, el tipo es "numerica".

El código empleado en VB.NET es el siguiente:

 

VB.NET:
  1. ''' <summary>
  2.     ''' Colorea las palabras del script existente en una RichTextBox.
  3.     ''' </summary>
  4.     ''' <param name="rtxt"></param>
  5.     ''' <param name="r"></param>
  6.     ''' <remarks></remarks>
  7.     Private Sub ColorearCodigo(ByVal rtxt As RichTextBox, ByVal r As ResultadoAnalizadorLexico)
  8.         Dim p As Palabra
  9.  
  10.         For Each p In r.Palabras
  11.             If p.Tipo = TipoPalabra.Palabra_Reservada Or p.Tipo = TipoPalabra.Erronea Or p.Tipo = TipoPalabra.CTE_Logica Or p.Tipo = TipoPalabra.CTE_Cadena Then
  12.                 'Quitamos 1 tanto a la línea como a la columna por que están en base 1 y el richtexbox maneja base 0
  13.                 rtxt.SelectionStart = rtxtCodigo.GetFirstCharIndexFromLine(p.Linea - 1) + p.Columna - 1
  14.                 rtxt.SelectionLength = p.Palabra.Length
  15.             End If
  16.             Select Case p.Tipo
  17.                 Case TipoPalabra.Palabra_Reservada, TipoPalabra.CTE_Logica
  18.                     rtxt.SelectionColor = Color.Blue
  19.                 Case TipoPalabra.Erronea
  20.                     rtxt.SelectionColor = Color.Red
  21.                 Case TipoPalabra.CTE_Cadena
  22.                     rtxt.SelectionColor = Color.Purple
  23.             End Select
  24.         Next
  25.     End Sub

Estado del proyecto a 03/09/2006

Domingo 3 de Septiembre de 2006 a las 23:58

A día de hoy (03/09/2006) esta es la funcionalidad que esta finalizada en motor de aventuras gráficas:

Y poco más. Todavía me queda un largo camino hasta finalizar el proyecto.

Ahora mismo estoy terminando de desarrollar el analizador sintáctico y posteriormente me pondré con el semántico. Mi prioridad es finalizar cuanto antes el lenguaje de script.

 

De nuevo online

Domingo 3 de Septiembre de 2006 a las 18:29

Después de estar dos días cerrado, por fin este sitio vuelve a estar en funcionamiento, esta vez con dominio propio.
El proveedor de hosting me ha cerrado la página sin dar ningún tipo de explicación ni responder a ninguno de los mails que le he enviado.

Para evitar que esto volviera a suceder en un futuro me he decidido por tener un dominio propio y un hosting de pago que me de más seguridad de que no me dejarán sin servicio de buenas a primeras.

Restaurando los datos de la base de datos he tenido algunos problemas con los acentos debido a las diferentes codificaciones de los caracteres, pero afortunadamente también está solucionado este tema.

He de pedir a aquellos que tengan enlazado este sitio que actualicen los links por favor.