Adakah yang punya tips kode-golf untuk bermain golf di Pemrosesan ? Ini adalah ekstensi grafis dari java, dan agak sulit untuk bermain golf.
Adakah yang punya tips kode-golf untuk bermain golf di Pemrosesan ? Ini adalah ekstensi grafis dari java, dan agak sulit untuk bermain golf.
Jawaban:
void draw()dan memasukkan semuanya ke dalam void setup().(100, 100)secara default.heightdan widthdalam kode Anda, biasanya lebih pendek untuk menggunakan nilai numeriknya. Misalnya, dengan kanvas ukuran (100, 100), gunakan 99untuk mengganti heightdan widthdapat menghemat 7 byte.Jika Anda hanya menjalankan kode dalam metode pengaturan maka Anda tidak perlu menulis garis besar metode. Misalnya, Anda dapat menulis:
rect(10,10,90,90);
dari pada
void setup {
rect(10,10,90,90);
}
Dan selama Anda tidak menggunakan metode lain maka semuanya akan dimasukkan ke dalam metode pengaturan sebelum dijalankan
(R, G, B)Notasi warnaPemrosesan sangat fleksibel dalam format warna.
fill(255,255,0); //16 bytes
dapat ditulis menggunakan notasi heksadesimal sebagai
fill(#ffff00); //14 bytes (2 bytes saved)
Berikut ini adalah penggunaan khusus untuk warna jika semua nilai Merah, Hijau dan Biru sama (putih):
fill(255,255,255); //18 bytes
fill(#ffffff); //14 bytes
fill(255); //10 bytes
Ketiga parameter dapat disingkat menjadi satu parameter yang berisi nilai skala abu-abu: dari 0hitam ke 255putih.
Ini dapat diperluas untuk alpha juga:
fill(175,175,175,50); //translucent gray
fill(175,50); //8 bytes shorter
Keduanya berarti warna yang sama, tetapi cara yang terakhir lebih pendek sebesar 8 byte.
Meskipun jelas, harus dinyatakan bahwa parameter alpha dalam menentukan warna adalah opsional karena warna default ke nilai alpha 255(100% buram).
Gunakan format warna terpendek untuk mengekspresikan warna Anda (ingat untuk meninggalkan bit yang tidak perlu - tergantung pada konteks program - misalnya: alpha atau skala abu-abu)
R: Merah
G: hijau
B: biru
A: alpha
g: abu-abu
RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
Jika Anda pernah menggunakan salah satu kata kunci semua-huruf besar dalam Memproses (seperti DIFFERENCEatau TRIANGLE_FAN), lihat apakah nomor yang sesuai dengan mereka lebih pendek.
Sebagai contoh, DIFFERENCEhanya sebuah intyang sama dengan 32. Alih-alih menggunakan di DIFFERENCE sini , saya bisa menulis 32, menyimpan 8 karakter.
void keyPressed(){}void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
Itu void draw(){} dibutuhkan secara default agar keydiperbarui. Jika pengguna belum menekan tombol sejak awal program, keydiberi nilai 0. Dengan memeriksa apakah lebih dari 0(yaitu pengguna telah menekan tombol), kami memiliki kode golfier dan menyimpan 10 byte.
#FFFFFFTerkait: Notasi Warna
Alih-alih menggunakan ini untuk putih:
color(255) //10 bytes
kamu bisa melakukan ini:
color(-1) //9 bytes
dan simpan 1 byte.
Lebih efisien mengatur piksel melalui piksel [] :
pixels[0] = color(255)
updatePixels();
Namun, itu memerlukan updatePixels()dan juga menggunakan indeks yang tergantung pada skenario akan memerlukan konversi posisi x, y ke indeks piksel. Agar semuanya singkat, meskipun CPU kurang efisien (karena setiap panggilan memperbarui seluruh buffer), set () memungkinkan piksel untuk mengatur dan berkomitmen untuk buffer langsung dalam satu panggilan.
set(0,0,color(255));