Consejos para jugar golf en Processing

13

¿Alguien tiene algún para el golf en Processing ? Es una extensión gráfica de Java, y es algo difícil de jugar al golf.

TARDIS
fuente
Buena pregunta. Creo que los consejos deberían estar en Community Wiki. Lo marqué para la migración.
Level River St
44
Downvote ??? ¿por qué?
TARDIS
No te preocupes por el voto negativo ... perderás toda la reputación que obtuviste de esta publicación después de que esté marcada como wiki de la comunidad de todos modos ...
user12205
3
@ace: la reputación obtenida antes de que una publicación se marque CW se mantendrá: meta.stackexchange.com/a/11741/229438
ProgramFOX

Respuestas:

7
  • Si no se requiere animación, puede omitir void draw()y poner todo en void setup().
  • A veces no es necesario inicializar el tamaño del lienzo; se inicializará (100, 100)de forma predeterminada.
  • Si necesita usar heighty widthen su código, generalmente es más corto usar sus valores numéricos. Por ejemplo, con un lienzo de tamaño (100, 100), utiliza 99para reemplazar heighty widthpuede ahorrarle 7 bytes.
usuario12205
fuente
3

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

HEGX64
fuente
Esto puede ser un poco defectuoso. Me he dado cuenta de que si se intenta definir una función en modo estático, el proceso puede ser un poco confuso: puu.sh/tpzP8.png
quat
@quat siempre que no defina ningún otro método, todo se colocará en el método de configuración. Si necesita definir métodos, deberá nombrar explícitamente el método de configuración.
HEGX64
2

(R, G, B)Notación de colores

Colores hexadecimales

El 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)

Escala de grises

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 0negro a 255blanco.

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.

Alfa

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).

Resumen: formatos de color

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
Kritixi Lithos
fuente
2

Abreviar constantes

Si alguna vez usa una de las palabras clave con mayúsculas en el procesamiento (como DIFFERENCEo TRIANGLE_FAN), vea si el número al que corresponden es más corto.

Por ejemplo, DIFFERENCEes solo un intequivalente a 32. En lugar de usar DIFFERENCE aquí , podría escribir 32, guardando 8 caracteres.

quat
fuente
2

Alternativa más corta a void keyPressed(){}

void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;}           //26 bytes

Se void draw(){}necesita por defecto para keypoder actualizarse. Si el usuario no ha presionado una tecla desde el inicio del programa, keyse 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.

Kritixi Lithos
fuente
2

Blanco #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.

Kritixi Lithos
fuente
1

Configuración y confirmación de píxeles con set ()

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));
George Profenza
fuente