Có ai có bất kỳ mã golf lời khuyên cho việc chơi golf trong chế biến ? Nó là một phần mở rộng đồ họa của java, và hơi khó chơi golf.
Có ai có bất kỳ mã golf lời khuyên cho việc chơi golf trong chế biến ? Nó là một phần mở rộng đồ họa của java, và hơi khó chơi golf.
Câu trả lời:
void draw()
và đặt mọi thứ vào void setup()
.(100, 100)
theo mặc định.height
và width
trong mã của mình, thường sử dụng các giá trị số của chúng thường ngắn hơn. Ví dụ: với một khung có kích thước (100, 100)
, sử dụng 99
để thay thế height
và width
có thể giúp bạn tiết kiệm 7 byte.Nếu bạn chỉ chạy mã trong phương thức thiết lập thì bạn không cần viết phác thảo phương thức. Ví dụ bạn có thể viết:
rect(10,10,90,90);
thay vì
void setup {
rect(10,10,90,90);
}
Và miễn là bạn không sử dụng bất kỳ phương pháp nào khác thì mọi thứ sẽ được đưa vào phương thức thiết lập trước khi chạy
(R, G, B)
Ký hiệu màu sắcXử lý rất linh hoạt trong định dạng màu sắc.
fill(255,255,0); //16 bytes
có thể được viết bằng cách sử dụng ký hiệu thập lục phân như
fill(#ffff00); //14 bytes (2 bytes saved)
Dưới đây là cách sử dụng đặc biệt cho màu sắc nếu tất cả các giá trị Đỏ, Xanh lục và Xanh lam giống nhau (trắng):
fill(255,255,255); //18 bytes
fill(#ffffff); //14 bytes
fill(255); //10 bytes
Tất cả ba tham số có thể được rút ngắn thành một tham số có chứa giá trị thang độ xám: từ 0
đen sang 255
trắng.
Điều này cũng có thể được mở rộng cho alpha:
fill(175,175,175,50); //translucent gray
fill(175,50); //8 bytes shorter
Cả hai đều có cùng màu, nhưng cách thứ hai ngắn hơn 8 byte.
Mặc dù rõ ràng, cần phải nói rằng tham số alpha trong việc chỉ định màu là tùy chọn vì màu được mặc định là giá trị alpha 255
(mờ 100%).
Sử dụng định dạng màu ngắn nhất để thể hiện màu của bạn (nhớ bỏ đi các bit không cần thiết - phụ thuộc vào ngữ cảnh của chương trình - ví dụ: alpha hoặc thang độ xám)
R
: Đỏ
G
: xanh lá cây
B
: xanh dương
A
: alpha
g
: thang độ xám
RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
void keyPressed(){}
void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
Cái void draw(){}
này là cần thiết theo mặc định key
để được cập nhật. Nếu người dùng không nhấn phím kể từ khi bắt đầu chương trình, key
sẽ được cung cấp một giá trị là 0
. Bằng cách kiểm tra xem nó có nhiều hơn 0
(tức là người dùng đã nhấn một phím), chúng tôi có mã golfier và lưu 10 byte.
#FFFFFF
Liên quan: Ký hiệu màu
Thay vì sử dụng màu trắng này:
color(255) //10 bytes
bạn có thể làm được việc này:
color(-1) //9 bytes
và lưu 1 byte.
Hiệu quả hơn khi đặt pixel qua pixel [] :
pixels[0] = color(255)
updatePixels();
Tuy nhiên, điều đó đòi hỏi updatePixels()
và cũng sử dụng một chỉ mục tùy thuộc vào kịch bản sẽ yêu cầu chuyển đổi vị trí x, y thành chỉ mục pixel. Để giữ mọi thứ ngắn gọn, mặc dù nó ít hiệu quả CPU hơn (vì mỗi cuộc gọi cập nhật toàn bộ bộ đệm), set () cho phép một pixel được đặt và cam kết đệm ngay lập tức trong một cuộc gọi.
set(0,0,color(255));