Mini-Concurso de programacion en C, parte 2: Las 8 reinas.
El concurso empezará el 5 de Mayo y terminará el 20. Hasta el 5 se irán modelando las reglas, condiciones y premios del concurso según vuestros comentarios.
De momento el concurso esta planteado así:
El problema de las 8 reinas consiste en situar 8 reinas en un tablero de ajedrez sin que ninguna se toque entre si.
Cada participante debe implementar un algoritmo que encuentre las 92 soluciones posibles.
Ejemplo de una solucion valida.
+---+---+---+---+---+---+---+---+
| | | | X | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | X | | |
+---+---+---+---+---+---+---+---+
| | | | | | | | X |
+---+---+---+---+---+---+---+---+
| | X | | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | | | X | |
+---+---+---+---+---+---+---+---+
| X | | | | | | | |
+---+---+---+---+---+---+---+---+
| | | X | | | | | |
+---+---+---+---+---+---+---+---+
| | | | | X | | | |
+---+---+---+---+---+---+---+---+
Se dará una función main.c con la estructura básica para que todos podamos probar los programas cómodamente.
Las categorias son las siguientes:
Algoritmo más rápido:
Gana el algoritmo que encuentre las 92 soluciones en el menor tiempo( menor numero de instrucciones ejecutadas ).
Requisitos:
C30: PIC24. Compilador MPLAB C30, sin optimizaciones. No esta permitido el ensamblador incrustado.
CCS: PIC24. Compilador CCS. ""
Algoritmo más sencillo
Gana el que implemente el algoritmo más simple, más comprensible, mejor organizado...
Algoritmo más lioso
Gana el más absurdo, el más loco, el que realiza calculos complicando lo más posible sin necesidad...
No esta permitido añadir código "inútil", todo el código debe ser util para el algoritmo, pero si es posible implementar nuestras propias funciones para
punto flotante o declarar todas las variables dinamicamente, utilizar switch en lugar de if, utilizar goto...todo aquello que nunca deberíamos hacer.
Algoritmo mas robusto
Despues de compilar el programa se remmplazan unas cuantas instrucciones, escogidas al azar, por NOPs y se ejecuta el programa para ver que pasa.
El algoritmo debe estar preparado para poder sobrevivir a estas u otras posibles "putadas"...
Cada concursante tendrá que votar los programas de los demás en las tres ultimas categorías.
El concurso finalizara el 20 de Mayo.
Sobre los premios...son solo algo simbólico para darle gracia al concurso:
Algoritmo más lioso:
2º Premio Pagina web con muchos proyectos interesantes de electrónica. Link
1º Premio Librería para trabajar con matrices en C30. Archivo matrices.c
Algoritmo más sencillo:
2º Premio Documental sobre ciencia y tecnología. VideoLink
1º Premio Pagina web con animaciones interactivas en flash. Link
Algoritmo más rapido:
2º Premio Foto de el interior de un procesador Pentium 4 (4000x4000 pixels). Link
1º Premio Pack de 16 libros de programacion para sistemas empotrados. Link en rapidshare.
Algoritmo más robusto:
2º Premio Entrevista a Bill Gates mostrando el nuevo Windows Paradise. VideoLink en youtube
1º Premio Versión moderna del juego The Increible Machine. Link en rapidshare.
El día 5 se colgaran las reglas oficiales y el archivo main.c con el esqueleto del programa.
Bueno, esto es lo que se me ocurre. Hasta el 5 de Mayo hay tiempo añadir o modificar cualquier cosa.
Quien este interesado en participar que se apunte añadiendo un post al hilo.