Su trabajo, si decide no rechazarlo, es escribir un programa que "golfice" un código dado en el idioma que elija.
Funcionalidad básica:
- Eliminar espacios en blanco extraños
- Eliminar comentarios
Funcionalidad 'avanzada':
- Combinar declaraciones (
int x; int y; int z;
aint x, y, z;
) - Use variaciones más cortas de las estructuras de control básicas (
while(1)
se reemplaza porfor(;;)
) - Mover código (
i = 0; while(i < 10) { /* ... */ ++i; }
afor(i = 0; i < 10; ++i) { /* ... */ }
) - Etc
popularity-contest
metagolf
Mateen Ulhaq
fuente
fuente
Respuestas:
Python con Python
Hace un montón de cosas, como cambiar el nombre de las variables, eliminar espacios en blanco y comentarios innecesarios, y poner todo lo que pueda en una línea. No siempre funciona completamente con una sintaxis de Python más sofisticada y continuaré actualizando con cualquier corrección.
Código:
Probado en un viejo programa de dibujo fractal que tenía ( 4672 a 1889 ):
Original:
Golfizado:
Ejecutar sobre sí mismo (creando una quine muy larga) ( 9951 a 5323 ):
fuente
import*
lugar deimport *
. Supongo que eso también funcionará en Python 2.BrainFuck - 489 Personajes
Elimina todos los caracteres no ejecutables. Respeta los comentarios desde # hasta el final de la línea.
Naturalmente, se ejecuta a través de sí mismo de esta fuente:
fuente
<>
que no hace nadaBrainfuck golfista en Bash (v3)
Este es un trabajo en progreso, lo seguiré actualizando si puedo.
Lee de un archivo (el nombre del archivo debe ser el primer argumento de la línea de comandos).
Por ahora todo lo que hace es
<>+-.,[]
<>
,><
,+-
,-+
>>>><<<<<
termina , repite todo el procedimiento, por lo que se reduce a<
Código
Cómo funciona
Después de eliminar todos los caracteres no ejecutables, hace lo siguiente. El contador de visitas se establece
-1
en el inicio: cuenta cuántas operaciones de golf se llevaron a cabo cada vez que se ejecuta el bucle externo.<>
,><
,+-
o-+
, suma 1 alhits
contador y volver al paso 1.fuente
HQ9 + golfista en Bash (v3)
Sé que HQ9 + es inútil, pero también podría enviarle cinco líneas. Se lee de
entrada estándarun archivo. La ruta al archivo debe ser el primer argumento de la línea de comandos.Caracteristicas
HhQq9+
)+
(incrementa un número pero no hay forma de imprimir ese número)hq
a mayúsculas (no golf)Código
fuente
/dev/stdin
como primer argumento :)Java con Java
Toma el nombre del archivo como un argumento de línea de comando y edita el archivo en su lugar.
while(true)
afor(;;)
private
yfinal
Cuando el programa se ejecuta en sí mismo, su tamaño se reduce de 7792 a 4366.
fuente
Perl, partes 1 - 2
(elimina comentarios e ignora los
#
caracteres entre comillas dobles)(elimina todo el espacio en blanco después de los corchetes y
=
signos)No intenté jugar golf este código. Tal vez, cuando esté hecho, podría jugar golf.
Entrada de ejemplo
Salida
A continuación, eliminará espacios entre símbolos y caracteres alfanuméricos.
fuente
Golfista Java en Perl
WIP en este momento, aunque ahora tiene un código bastante bueno.
caracteristicas:
Código
fuente