Czy ktoś ma jakieś code-golf wskazówki dotyczące gry w golfa w przetwarzaniu ? Jest to graficzne rozszerzenie javy i jest nieco trudne do gry w golfa.
Czy ktoś ma jakieś code-golf wskazówki dotyczące gry w golfa w przetwarzaniu ? Jest to graficzne rozszerzenie javy i jest nieco trudne do gry w golfa.
Odpowiedzi:
void draw()
i włożyć wszystko void setup()
.(100, 100)
domyślnie zainicjowane .height
i width
w kodzie, jest zwykle krótszy zamiast używać ich wartości numerycznych. Na przykład w obszarze roboczym o rozmiarze (100, 100)
używanym 99
do zamiany height
i width
pozwalającym zaoszczędzić 7 bajtów.Jeśli uruchamiasz kod tylko w metodzie instalacyjnej, nie musisz pisać konspektu metody. Na przykład możesz napisać:
rect(10,10,90,90);
zamiast
void setup {
rect(10,10,90,90);
}
I dopóki nie użyjesz żadnych innych metod, wszystko zostanie umieszczone w metodzie instalacji przed uruchomieniem
(R, G, B)
Notacja kolorówPrzetwarzanie jest bardzo elastyczne w kolorze.
fill(255,255,0); //16 bytes
można zapisać za pomocą zapisu szesnastkowego jako
fill(#ffff00); //14 bytes (2 bytes saved)
Oto specjalne zastosowanie dla kolorów, jeśli wszystkie wartości czerwony, zielony i niebieski są takie same (biały):
fill(255,255,255); //18 bytes
fill(#ffffff); //14 bytes
fill(255); //10 bytes
Wszystkie trzy parametry można skrócić do jednego parametru zawierającego wartość skali szarości: od 0
czerni do 255
bieli.
Można to również rozszerzyć dla wersji alfa:
fill(175,175,175,50); //translucent gray
fill(175,50); //8 bytes shorter
Oba oznaczają ten sam kolor, ale ten drugi sposób jest krótszy o 8 bajtów.
Chociaż oczywiste, należy stwierdzić, że parametr alfa przy określaniu kolorów jest opcjonalny, ponieważ kolory są domyślnie ustawione na wartość alfa 255
(100% nieprzezroczysta).
Użyj najkrótszego formatu kolorów, aby wyrazić swój kolor (pamiętaj, aby pominąć niepotrzebne bity - w zależności od kontekstu programu - na przykład: alfa lub skala szarości)
R
: Czerwony
G
: zielony
B
: niebieski
A
: alfa
g
: skala szarości
RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
Jeśli kiedykolwiek używasz jednego z kluczowych słów kluczowych w Przetwarzaniu (takich jak DIFFERENCE
lub TRIANGLE_FAN
), sprawdź, czy liczba, której odpowiadają, jest krótsza.
Na przykład, DIFFERENCE
jest to tylko liczba int
równa 32. Zamiast używać DIFFERENCE
tutaj , mógłbym pisać 32
, oszczędzając 8 znaków.
void keyPressed(){}
void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
void draw(){}
Potrzebna jest domyślnie w celu key
aktualizacji. Jeśli użytkownik nie nacisnął żadnego klawisza od początku programu, key
zostanie podana wartość 0
. Sprawdzając, czy jest więcej niż 0
(tzn. Użytkownik nacisnął klawisz), mamy kod golfera i oszczędzamy 10 bajtów.
#FFFFFF
Powiązane: Notacja kolorów
Zamiast używać tego dla białego:
color(255) //10 bytes
możesz to zrobić:
color(-1) //9 bytes
i zapisz 1 bajt.
Bardziej wydajne jest ustawianie pikseli za pomocą pikseli [] :
pixels[0] = color(255)
updatePixels();
Wymaga to jednak updatePixels()
także użycia indeksu, który w zależności od scenariusza będzie wymagał konwersji pozycji x, y na indeks pikseli. Krótko mówiąc, pomimo mniejszej wydajności procesora (ponieważ każde wywołanie aktualizuje cały bufor), set () pozwala ustawić piksel i zatwierdzić buforowanie od razu w jednym wywołaniu.
set(0,0,color(255));