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.height
et width
dans 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 99
pour remplacer height
et width
peut 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 0
noir au 255
blanc.
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 DIFFERENCE
ou TRIANGLE_FAN
), vérifiez si le nombre auquel ils correspondent est plus court.
Par exemple, DIFFERENCE
est juste un int
qui 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 key
valeur 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.
#FFFFFF
Connexes: 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));