किसी को भी प्रसंस्करण में गोल्फ के लिए किसी भी कोड गोल्फ सुझाव है ? यह जावा का एक चित्रमय विस्तार है, और गोल्फ के लिए कुछ हद तक मुश्किल है।
किसी को भी प्रसंस्करण में गोल्फ के लिए किसी भी कोड गोल्फ सुझाव है ? यह जावा का एक चित्रमय विस्तार है, और गोल्फ के लिए कुछ हद तक मुश्किल है।
जवाबों:
void draw()सब कुछ छोड़ सकते हैं और डाल सकते हैं void setup()।(100, 100)डिफ़ॉल्ट रूप से आरंभ किया जाएगा ।heightऔर widthअपने कोड में, यह आमतौर पर के बजाय उनके संख्यात्मक मान का उपयोग करने के कम है। उदाहरण के लिए, आकार के एक कैनवास के साथ (100, 100), 99प्रतिस्थापित करने के लिए heightऔर width7 बाइट्स बचा सकता है।यदि आप सेटअप विधि में केवल कोड चलाते हैं तो आपको विधि की रूपरेखा लिखने की आवश्यकता नहीं है। उदाहरण के लिए आप लिख सकते हैं:
rect(10,10,90,90);
के बजाय
void setup {
rect(10,10,90,90);
}
और जब तक आप किसी अन्य तरीके का उपयोग नहीं करेंगे तब तक सब कुछ चलाने से पहले सेटअप विधि में डाल दिया जाएगा
(R, G, B)संकेतनरंग प्रारूप में प्रसंस्करण बहुत लचीला है।
fill(255,255,0); //16 bytes
हेक्साडेसिमल नोटेशन का उपयोग करके लिखा जा सकता है
fill(#ffff00); //14 bytes (2 bytes saved)
यहां रंगों के लिए एक विशेष उपयोग किया जाता है यदि सभी लाल, हरे और नीले रंग के मान समान हैं (सफेद):
fill(255,255,255); //18 bytes
fill(#ffffff); //14 bytes
fill(255); //10 bytes
सभी तीन मापदंडों को ग्रेस्केल मान वाले एक पैरामीटर में छोटा किया जा सकता है: 0काले से 255सफेद तक।
इसे अल्फा के लिए भी बढ़ाया जा सकता है:
fill(175,175,175,50); //translucent gray
fill(175,50); //8 bytes shorter
दोनों का अर्थ समान रंग है, लेकिन बाद वाला तरीका 8 बाइट्स से छोटा है।
हालांकि स्पष्ट है, यह कहा जाना चाहिए कि रंगों को निर्दिष्ट करने में अल्फा पैरामीटर वैकल्पिक है क्योंकि रंग अल्फा के मान 255(100% अपारदर्शी) पर डिफ़ॉल्ट होते हैं ।
अपने रंग को व्यक्त करने के लिए सबसे छोटे रंग प्रारूप का उपयोग करें (अनावश्यक बिट्स को छोड़ना याद रखें- कार्यक्रम के संदर्भ में-उदाहरण के लिए: अल्फा या ग्रेस्केल)
R: लाल
G: हरा
B: नीला
A: अल्फा
g: ग्रेस्केल
RRR,GGG,BBB
#RRGGBB
ggg
RRR,GGG,BBB,AAA
ggg,AAA
यदि आप कभी भी प्रसंस्करण (जैसे DIFFERENCEया TRIANGLE_FAN) में ऑल-कैप्स कीवर्ड में से एक का उपयोग कर रहे हैं , तो देखें कि क्या वे जिस नंबर से मेल खाते हैं वह कम है।
उदाहरण के लिए, DIFFERENCEबस int32 के बराबर है। DIFFERENCE यहाँ का उपयोग करने के बजाय , मैं लिख सकता हूँ 32, 8 वर्णों की बचत।
void keyPressed(){}void draw(){}void keyPressed(){foo;} //36 bytes
void draw(){if(key>0)foo;} //26 bytes
void draw(){}के लिए आदेश में डिफ़ॉल्ट रूप से की जरूरत है keyअद्यतन करने की। यदि उपयोगकर्ता ने कार्यक्रम की शुरुआत से एक कुंजी दबाया नहीं है, तो keyइसका मान दिया जाता है 0। यह जाँचने से कि क्या यह अधिक है 0(यानी उपयोगकर्ता ने एक कुंजी दबाया है), हमारे पास गोल्फ कोड है और 10 बाइट बचा सकते हैं।
#FFFFFFसंबंधित: रंग संकेतन
सफेद के लिए इसका उपयोग करने के बजाय:
color(255) //10 bytes
तुम यह केर सकते हो:
color(-1) //9 bytes
और 1 बाइट बचाएं।
यह पिक्सेल के माध्यम से पिक्सेल सेट करने के लिए अधिक कुशल है [] :
pixels[0] = color(255)
updatePixels();
हालाँकि, कि updatePixels()एक सूचकांक का उपयोग करने की आवश्यकता है और परिदृश्य के आधार पर एक पिक्सेल सूचकांक के लिए एक एक्स, वाई स्थिति परिवर्तित करने की आवश्यकता होगी। चीजों को कम रखने के लिए, भले ही यह सीपीयू कुशल हो (जैसा कि प्रत्येक कॉल पूरे बफर को अपडेट करता है), सेट () एक पिक्सेल को एक कॉल में सीधे बफर को सेट करने और प्रतिबद्ध करने की अनुमति देता है।
set(0,0,color(255));