Concurso internacional de programación en lenguaje Karel

RetroMañía 2021
<< Mesa redonda «30 años de la puesta en funcion... 6 of 17 Torneo de Donkey Kong >>

Descripción del concurso / Contest description

Lugar / Place:
No presencial, contribuciones enviadas por email
On-line, contributions sent by email

Horarios / Dates:
Ver reglas del concurso mas abajo
See contest rules below

Concurso internacional de programación en lenguaje Karel

Karel es un lenguaje de programación educacional para principiantes, creado en 1981 por Richard E. Pattis en su libro “Karel The Robot: A Gentle Introduction to the Art of Programming”, y fue usado en sus cursos de programación de la Universidad de Stanford.

Un programa controla el robot Karel que puede moverse por un mundo compuesto por calles y avenidas, detectando muros, y recogiendo emisores, pudieron desarrollar algoritmos para salir de laberintos o realizar ciertas tareas. Los mundos pueden ser definidos por el usuario.

Karel is an educational programming language for beginners, created in 1981 by Richard E. Pattis in his book “Karel The Robot: A Gentle Introduction to the Art of Programming”, and was used in his own programming classes at the Stanford University.

A program controls Karel The Robot who can move in a world built with streets and avenues, detecting walls and picking up beepers, being capable of developing algorithms to escape from labyrinths or perform certain duties. The worlds can be user defined.

Participantes / Contestants

Autor / Author Código fuente e información adicional / Source code & additional information
Abel Naya v1
Javier Gimenez programa
Abel Naya

v2-pretty

En la nueva versión enviada está todo el código fuente en una única línea, y (aunque completamente ilegible para nosotros) el interprete Karel que usamos ejecuta las mismas instrucciones mucho más rápido. Por tanto hemos decidido sangrar el código fuente, por homogeneidad con las otras aportaciones, creando la versión v2-pretty que es la que se evaluará.

De esta forma valoramos en todos los casos la eficiencia del algoritmo sin que afecte la eficiencia del interprete del entorno Karel.

 En breve dejaremos disponibles los códigos fuente recibidos.

Ganadores del concurso / Contest winners

 Los resultados del concurso se anunciarán el viernes 26 de noviembre en el canal de YouTube de RetroAcción ¡Permanece atento!

The contest winners will be announced on Friday November 26 in RetroAcción's YouTube channel. Stay tuned!

Tabla con los resultados de la evaluación de las aportaciones recibidas para el concurso en los cuatro mundos de test, indican en verde, naranja y rojo los puesto 1º, 2º y 3º en cada mundo, por haber colocado más intersecciones con emisores o, en caso de empate, por haberlo hecho en menos tiempo:

Como vemos, por 3 victorias a 1, la versión v2-pretty de Abel Naya resultado la ganadora, seguida de la aportación de Javier Giménez.

Como curiosidad, presentamos cómo habrían quedado los resultados de haber considerado también las versiones de una única línea de Abel y Javier. Como puede apreciarse en las pruebas realizadas, el resultado final no habría cambiado mucho y el campeón y subcampeón habrían sido los mismos, pero os animamos a que probeis vosotros mismos la versión v2-speed de Abel, que siempre coloca todos los emisores y a una velocidad de vértigo. Tambien recomendamos leer los comentarios de su versión v1, que aunque lenta, explica detalladamente la estrategia seguida.

Muchísimas gracias a los dos participantes, os habeis ganado merecidamente vuestros correspondientes premios en metálico y packs de regalos. Y a los asistentes a la resolución del concurso, muchas gracias por vuestra colaboración y esperamos que hayais sentido la misma emoción que hemos sentido nosotros al realizar la evaluación de las aportaciones.

      

Reglas del concurso / Contest rules

Reglas en español Rules in english
  1. El objetivo del concurso es incentivar el aprendizaje y uso del lenguaje de programación Karel.
  2. El programa presentado tendrá que ser inédito y no debe estar a la venta ni disponible públicamente hasta la fecha de la publicación del fallo del jurado.
  3. Las reglas que debe cumplir el programa enviado son las siguientes:
    • El programa Karel enviado se ejecutará en el entorno Karel.js preparado especialmente para el concurso. El participante deberá probar su programa en este entorno, pues es el que será usado por el jurado del concurso.
    • El programa debe estar escrito en el lenguaje Karel original (también llamado Karel Pascal) y se ejecutará en diferentes mundos (secretos) creados para este concurso. Aunque tendrán distintas dimensiones, todos ellos tienen en común que existen muros dispuestos al azar y que todas las esquinas estarán vacías sin emisores. Cada mundo estará completamente rodeado de muros.
    • Karel El Robot comenzará su recorrido en la esquina inferior izquierda de cada mundo, con n emisores en su bolsa (siendo n=número esquinas del mundo). El objetivo es depositar al menos un emisor en el mayor número posible de esquinas, sin chocarse contra un muro, en cuyo caso el programa se dará por finalizado. El jurado parará el programa trascurrido 1 minuto desde el comienzo de su ejecución.
    • Se puede colocar cualquier cantidad de emisores en una esquina, pero solo contará como 1 en el recuento final de esquinas con emisores. También se pueden recoger emisores de las esquinas.
    • Ganará el participante con mayor número de esquinas con emisores en el total de los mundos. En caso de empates se considerará el tiempo de ejecución y el estilo de programación.
  4. Puedes enviar tu contribución por email desde ya mismo, indicando el tema "Concurso programación Karel" e incluyendo el texto con el programa fuente para el concurso. Confirmaremos por email la recepción de cada contribución que recibamos; si no se recibe confirmación en 24h, por favor, contacta de nuevo con RetroAcción.
  5. RetroAcción se reserva el derecho de solicitar pruebas de la autoría y originalidad de los programas participantes.
  6. El jurado estará formado por miembros de RetroAcción.
  7. RetroAcción se reserva el derecho de publicar en esta página web un pantallazo, y/o video del funcionamiento de las contribuciones recibidas.
  8. Tras el fallo del jurado, también se publicarán los ficheros necesarios para que cualquiera pueda descargar y ejecutar los programas participantes en los distintos mundos del concurso.
  9. RetroAcción no se hace responsable y declina toda la responsabilidad legal del contenido de los programas presentados al concurso aunque se reserva el derecho de rechazar contribuciones cuyo contenido o propósito sea considerado inapropiado o que vulnere la legalidad vigente.
  10. La participación en este concurso supone la plena aceptación de todas y cada una de estas bases y del fallo final del jurado. Cualquier cuestión no contemplada en estas bases será resuelta de manera inapelable según criterio de la organización.
  1. The goal of this contest is to encourage the learning and usage of the Karel programming language.
  2. The submitted program shall be previously unreleased and can't be on sale nor publicly available until the jury's decission publication date.
  3. The rules that the sent program shall fulfill are the following:
    • The Karel program needed will run in the Karel.js environment prepared for the contest. The contestant shall test his program in this environment, because it will be the one used by the contest jury.
    • The program shall be written in the original Karel language (also known as Karel Pascal) and it will be executed in different (secret) worlds created for this contest. Although these worlds willl have different sizes, all of them have in common that they will have random walls and that all squares will be empty with no beepers. Each world will be completely surrounded by walls.
    • Karel The Robot will start his journey in the lower left corner of each world, with n beepers in his bag (being n=number of squares of the world). The goal is to leave at least one beeper in the most squares, without hitting a wall (because the program will end). The jury will stop the program after 1 minute time since execution started.
    • Any amount of beepers can be placed in a square but in the final head count they will be counted as just 1 placed beeper. Beepers can also picked up from squares.
    • The contestant that has placed the bigger amount of beepers in all the worlds will be the winner. In case of a draw, execution time and programming style will be taken into account for final results.
  4. You can already send your entry by e-mail with the subject "Karel programming contest", including the text of the source code for the contest. We will acknowledge by email each contribution; if this acknowledgement is not received in 24h, please contact again with RetroAcción.
  5. RetroAcción reserves the right to request proof of authorship and originality of submitted contributions.
  6. The jury will be composed by members of RetroAcción.
  7. RetroAcción reserves the right to publish a screenshot and/or video of the received contributions in action in this contest webpage.
  8. After the contest finishes, all the neccesary entry files will also be published so anyone can run the contest programs in the different contest worlds.
  9. RetroAcción won't be responsible and declines any legal responsibility of the received programs contents, despite keeping the rights to reject contributions whose contents are labeled as inapropriate or violate any laws.
  10. Participation in this contest implies full acceptance of all the rules and accept the final decision of the jury. Any aspect not taken into account in this rules shall be unappealable resolved according to organization judgement.

Fecha límite de entrega

Hasta el jueves 25 de noviembre de 2021 a las 23:59 (CET)

Fecha de decisiones del jurado

Viernes 26 de noviembre de 2021 a las 15:00 (CET)

Submission deadline

Until Thursday November 25, 2021 at 11:59 p.m. (CET)

Jury decission due date

Friday, November 26, 2021 at 3 p.m. (CET)

Premios

Primer puesto: 100€ + lote RetroAcción 2021
Segundo puesto: 50€ + lote RetroAcción 2021

Prizes

First winner: 100€ + RetroAcción 2021 pack
Second winner: 50€ + RetroAcción 2021 pack

El fallo del jurado se hará público en esta misma página web y se comunicará por e-mail a los ganadores. The jury's decission will be made public in this webpage and the results will be communicated to them via e-mail.
Si tienes cualquier duda o quieres enviarnos tu contribución para el concurso, escríbemos a contacto_ra_org. Aconsejamos que contactes con nosotros en caso de que tengas en mente participar en el concurso, y así poder contactar contigo si fuera necesario. If you have any doubt or you want to send us your contribution for the contest, write us tocontacto_ra_org. We recommend to contact us in case you plan to contribute to this contest, to allow us to get back to you if needed.

 

Recursos para el desarrollo / Development resources


<< Mesa redonda «30 años de la puesta en funcion... 6 of 17 Torneo de Donkey Kong >>
RetroMañía 2021