¿Alguien tiene algún código de golf para el golf en Processing ? Es una extensión gráfica de Java, y es algo difícil de jugar al golf.
¿Alguien tiene algún código de golf para el golf en Processing ? Es una extensión gráfica de Java, y es algo difícil de jugar al golf.
Respuestas:
void draw()
y poner todo en void setup()
.(100, 100)
de forma predeterminada.height
y width
en su código, generalmente es más corto usar sus valores numéricos. Por ejemplo, con un lienzo de tamaño (100, 100)
, utiliza 99
para reemplazar height
y width
puede ahorrarle 7 bytes.Si solo ejecuta código en el método de configuración, entonces no necesita escribir el esquema del método. Por ejemplo, puedes escribir:
rect(10,10,90,90);
en lugar de
void setup {
rect(10,10,90,90);
}
Y siempre que no utilice ningún otro método, todo se colocará en el método de configuración antes de ejecutar
(R, G, B)
Notación de coloresEl procesamiento es muy flexible en formato de color.
fill(255,255,0); //16 bytes
se puede escribir usando notación hexadecimal como
fill(#ffff00); //14 bytes (2 bytes saved)
Aquí hay un uso especial para los colores si todos los valores Rojo, Verde y Azul son iguales (blanco):
fill(255,255,255); //18 bytes
fill(#ffffff); //14 bytes
fill(255); //10 bytes
Los tres parámetros se pueden acortar en un parámetro que contiene el valor de escala de grises: de 0
negro a 255
blanco.
Esto también se puede extender para alfa:
fill(175,175,175,50); //translucent gray
fill(175,50); //8 bytes shorter
Ambos significan el mismo color, pero la última forma es más corta en 8 bytes.
Aunque es obvio, debe señalarse que el parámetro alfa para especificar colores es opcional, ya que los colores tienen un valor alfa predeterminado 255
(100% opaco).
Use el formato de color más corto para expresar su color (recuerde omitir bits innecesarios, dependiendo del contexto del programa, por ejemplo: alfa o escala de grises)
R
: Rojo
G
: verde
B
: azul
A
: alfa
g
: escala de grises
RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
Si alguna vez usa una de las palabras clave con mayúsculas en el procesamiento (como DIFFERENCE
o TRIANGLE_FAN
), vea si el número al que corresponden es más corto.
Por ejemplo, DIFFERENCE
es solo un int
equivalente a 32. En lugar de usar DIFFERENCE
aquí , podría escribir 32
, guardando 8 caracteres.
void keyPressed(){}
void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
Se void draw(){}
necesita por defecto para key
poder actualizarse. Si el usuario no ha presionado una tecla desde el inicio del programa, key
se le da un valor de 0
. Al verificar si es más que 0
(es decir, el usuario ha presionado una tecla), tenemos un código de golf y ahorramos 10 bytes.
#FFFFFF
Relacionado: notación de color
En lugar de usar esto para el blanco:
color(255) //10 bytes
Puedes hacerlo:
color(-1) //9 bytes
y ahorre 1 byte.
Es más eficiente establecer píxeles a través de píxeles [] :
pixels[0] = color(255)
updatePixels();
Sin embargo, eso requiere updatePixels()
y también usar un índice que, según el escenario, requerirá convertir una posición x, y en un índice de píxeles. Para mantener las cosas cortas, a pesar de que es menos eficiente para la CPU (ya que cada llamada actualiza todo el búfer), set () permite que se configure un píxel y se compromete con el búfer de inmediato en una sola llamada.
set(0,0,color(255));