পিএইচপি (> = 5.4), 199 197 বাইট
(আরও গল্ফ করে বাই -2)
<?$s=strlen(file_get_contents($argv[1])).'';echo strtr([waning_crescent,waning_gibbous,new_moon,0,waxing_crescent,waxing_gibbous,full_moon,first_quarter,third_quarter][($s[0]+$s[3])%11-2],'_',' ');
এটি চালানোর জন্য:
php -d error_reporting=0 -d short_open_tag=1 <filename> <image_path>
উদাহরণ:
php -d error_reporting=0 -d short_open_tag=1 lunar_phase.php https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Moon_phase_6.svg/240px-Moon_phase_6.svg.png
মন্তব্য:
-d error_reporting=0
বিকল্প নয় আউটপুট নোটিশ / সতর্কবার্তা করতে ব্যবহৃত হয়।
-d short_open_tag=1
সংক্ষিপ্ত ট্যাগ করার জন্য প্রয়োজন হয়।
- আপনি যদি
https
উপরের উদাহরণের মতো URL ব্যবহার করেন তবে ওপেনএসএসএলও সক্ষম করা উচিত।
কিভাবে?
ফাইলের আকার (বাইট) পান এবং এই সূত্রটি দ্বারা এটির জন্য একটি অনন্য নম্বর তৈরি করে:
((<first_bytes_digit> + <fourth_bytes_digit>) % 11) - 2
এই সূত্রটি কেবলমাত্র 3 টি হারিয়ে যাওয়ার সাথে 0 থেকে 8 পর্যন্ত সংখ্যা উত্পন্ন করে।
┌─────────────────┬───────┬─────────┬─────┬────────────────────────┐
│ Phase │ Bytes │ 1st+4th │ %11 │ -2 (position in array) │
├─────────────────┼───────┼─────────┼─────┼────────────────────────┤
│ new moon │ 3451 │ 3+1=4 │ 4 │ 2 │
│ waxing crescent │ 6430 │ 6+0=6 │ 6 │ 4 │
│ first quarter │ 5144 │ 5+4=9 │ 9 │ 7 │
│ waxing gibbous │ 7070 │ 7+0=7 │ 7 │ 5 │
│ full moon │ 5283 │ 5+3=8 │ 8 │ 6 │
│ waning gibbous │ 7067 │ 7+7=14 │ 3 │ 1 │
│ third quarter │ 4976 │ 4+6=10 │ 10 │ 8 │
│ waning crescent │ 6337 │ 6+7=13 │ 2 │ 0 │
└─────────────────┴───────┴─────────┴─────┴────────────────────────┘
পূর্ববর্তী পদ্ধতি:
পিএইচপি (> = 5.4), 251 বাইট
<?foreach([4,8,16,20]as$w){$a+=imagecolorat(imagecreatefrompng($argv[1]),$w*10,120)>1e7;$a&&$w<5?$b=-2:0;}$x=explode('_','full moon_waning gibbous_third quarter_waning crescent_new moon_waxing crescent_first quarter_waxing gibbous');echo$x[$a*++$b+4];
এটি চালানোর জন্য:
php -d error_reporting=0 -d short_open_tag=1 <filename> <image_path>
উদাহরণ:
php -d error_reporting=0 -d short_open_tag=1 lunar_phase.php https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Moon_phase_6.svg/240px-Moon_phase_6.svg.png
মন্তব্য:
-d error_reporting=0
বিকল্প নয় আউটপুট নোটিশ / সতর্কবার্তা করতে ব্যবহৃত হয়।
-d short_open_tag=1
সংক্ষিপ্ত ট্যাগ করার জন্য প্রয়োজন হয়।
- পিএইচপিকে অবশ্যই জিডি থাকতে হবে এবং এটি সক্ষম করা উচিত।
- আপনি যদি
https
উপরের উদাহরণের মতো URL ব্যবহার করেন তবে ওপেনএসএসএলও সক্ষম করা উচিত।
কিভাবে?
এ ছবিতে 4 পিক্সেল রঙের জন্য চেক 40,120
, 80,120
, 160,120
এবং 200,120
সেই রং থেকে চাঁদ ফেজ উপর সিদ্ধান্ত নেয়।