Quelqu'un a-t -il des conseils pour jouer au golf dans le traitement ? C'est une extension graphique de java, et est quelque peu difficile à jouer au golf.
Quelqu'un a-t -il des conseils pour jouer au golf dans le traitement ? C'est une extension graphique de java, et est quelque peu difficile à jouer au golf.
Réponses:
void draw()et tout mettre void setup().(100, 100)par défaut.heightet widthdans votre code, il est généralement plus court d'utiliser à la place leurs valeurs numériques. Par exemple, avec un canevas de taille (100, 100), utilisez 99pour remplacer heightet widthpeut vous faire économiser 7 octets.Si vous exécutez uniquement du code dans la méthode d'installation, vous n'avez pas besoin d'écrire le plan de la méthode. Par exemple, vous pouvez écrire:
rect(10,10,90,90);
au lieu de
void setup {
rect(10,10,90,90);
}
Et tant que vous n'utilisez pas d'autres méthodes, tout sera mis dans la méthode de configuration avant de s'exécuter
(R, G, B)Notation des couleursLe traitement est très flexible en format couleur.
fill(255,255,0); //16 bytes
peut être écrit en utilisant la notation hexadécimale comme
fill(#ffff00); //14 bytes (2 bytes saved)
Voici une utilisation spéciale pour les couleurs si toutes les valeurs Rouge, Vert et Bleu sont identiques (blanc):
fill(255,255,255); //18 bytes
fill(#ffffff); //14 bytes
fill(255); //10 bytes
Les trois paramètres peuvent être raccourcis en un seul paramètre contenant la valeur de l'échelle de gris: du 0noir au 255blanc.
Cela peut également être étendu pour alpha:
fill(175,175,175,50); //translucent gray
fill(175,50); //8 bytes shorter
Les deux signifient la même couleur, mais cette dernière façon est plus courte de 8 octets.
Bien qu'évident, il convient de préciser que le paramètre alpha dans la spécification des couleurs est facultatif car les couleurs sont définies par défaut sur une valeur alpha de 255(100% opaque).
Utilisez le format de couleur le plus court pour exprimer votre couleur (n'oubliez pas de laisser de côté les bits inutiles - en fonction du contexte du programme - par exemple: alpha ou niveaux de gris)
R: Rouge
G: vert
B: bleu
A: alpha
g: niveaux de gris
RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
Si vous utilisez un des mots clés en majuscules dans le traitement (comme DIFFERENCEou TRIANGLE_FAN), vérifiez si le nombre auquel ils correspondent est plus court.
Par exemple, DIFFERENCEest juste un intqui est égal à 32. Au lieu d'utiliser DIFFERENCE ici , je pourrais écrire 32, en sauvant 8 caractères.
void keyPressed(){}void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
Le void draw(){}est nécessaire par défaut pour keyêtre mis à jour. Si l'utilisateur n'a pas appuyé sur une touche depuis le début du programme, la keyvaleur est donnée 0. En vérifiant s'il est supérieur à 0(c'est-à-dire que l'utilisateur a appuyé sur une touche), nous avons le code golfier et économisons 10 octets.
#FFFFFFConnexes: Notation de couleur
Au lieu d'utiliser ceci pour le blanc:
color(255) //10 bytes
tu peux le faire:
color(-1) //9 bytes
et enregistrez 1 octet.
Il est plus efficace de définir des pixels via des pixels [] :
pixels[0] = color(255)
updatePixels();
Cependant, cela nécessite updatePixels()et également l'utilisation d'un index qui, selon le scénario, nécessitera la conversion d'une position x, y en un index de pixels. Pour faire court, même s'il est moins efficace en termes de CPU (car chaque appel met à jour le tampon entier), set () permet à un pixel de se mettre en place et de le mettre en mémoire tampon immédiatement en un seul appel.
set(0,0,color(255));