lunes, 31 de enero de 2011

Evaluador Karelotitlán



Ya hace tiempo que me habían pedido un módulo para evaluar problemas de Karel, principalmente porque la versión actual es un poco difícil de usar y porque por alguna razón no admite las instrucciones sal-de-instruccion; o return; (en Pascal y Java respectivamente), al momento de evaluar.

Aunque ya existe un evaluador oficial que soporta esas instrucciones, los mundos y las condiciones de evaluación están en un formato diferente, además de que es mucho menos amigable que el evaluador anterior (al estilo de gcc).

Por eso, aprovechando que tengo el módulo de compulación y evaluación separado en Karelotitlán lo tome y lo metí en un evaluador un poco más fácil de usar. Aún tienes que hacer los mundos y los KEC en Karel, pero hace la evaluación mucho más fácil.



Revisión de compilación

Primero que nada, ya que el compilador de Karelotitlán es un poco diferente al de Karel, puse una sección para que los alumnos a los que se les va a evaluar con esta aplicación puedan comprobar que su programa también compila aquí. La idea es usar en un futuro el compilador oficial y que el programa se encargue de transformar los mundos conocidos en los formatos extraños, pero eso requeriría un poco más de trabajo, tal vez en una segunda versión:



En caso de no compilar, el programa da un resultado un poco más exacto del error, a diferencia de los errores crípticos que se dan en Karel, por lo que corregir errores de compilación es mucho más fácil.




Evaluación individual

Este es el módulo que estaba en la versión de Karel original, pero mucho más fácil de utilizar. En vez de agregar caso por caso y kec por kec, uno simplemente elije la carpeta en donde están los casos y la carpeta en donde están los kec's.

Esto tiene ciertas limitaciones, ya que el número de casos y el número de kec's en las carpetas debe de ser el mismo para que el programa evalúe, y además es recomendable que se llamen igual. Esto es porque el programa ordena alfabéticamente los casos y los kec y los mapea uno a uno.

Al final, se detalla qué pasó en cada caso, ya sea que lo haya tenino bien o que haya fallado en algo, y si falló, dice exactamente la razón.



Evaluación masiva

Ya teniendo la evaluación de un programa no era tan difícil hacerlo masivo, la única diferencia es en lugar de elegir un sólo archivo, se elige una carpeta en donde están todos los programas, además, no es necesario poner el lenguaje en el que están escritos (el programa se da cuenta de ello).

Al final muestra cuántos puntos sacó cada archivo dentro de la carpeta en la que se eligió y en dado caso de que sean muchos, hay una barra de progreso para darse una idea de cuánto falta.



De esta forma es cómo funciona el Evaluador Karelotitlán y como ya mencioné, la idea es que en un futuro no sólo evalúe con el compilador oficial, sino además agregar una nueva versión de Karel mucho más amigable y usable, compatible tanto con los mundos antiguos como con los nuevos.

Ya había empezado este proyecto hace algún tiempo, pero por razones de falta de tiempo lo dejé inconcluso, espero poder retomarlo pronto.

Para quien quiera probarlo y descargarlo, puede hacerlo dando clic aquí.




No hay comentarios:

Publicar un comentario