140 বাইটে টেট্রিস প্রয়োগের বিষয়ে প্রোগ্রামিং ওয়েবসাইটগুলিতে সম্প্রতি কিছু বছর আগে (কয়েক বছর আগে) কিছু গুঞ্জন ছিল । ...
দেখা যাচ্ছে যে এটি ছোট হলেও এটি টেট্রিসের একটি সরলিকৃত সংস্করণ, এমনকি একটি সম্পূর্ণ বাস্তবায়নও নয়। জাভাস্ক্রিপ্টের 140 বাইটে কেবল মূল যুক্তির কাজটিই ফিট করে। এটি চালানোর জন্য আপনার আরও ~ 840 টি এইচটিএমএল অক্ষর প্রয়োজন।
আমরা আরও ভাল করতে পারি!
এই চ্যালেঞ্জটি "বাইনারি টেট্রিস" এর একটি সম্পূর্ণ সংস্করণ যথাসম্ভব কম টুইটগুলিতে প্রয়োগ করা।
বাইনারি টেট্রিস বিধি:
- প্রোগ্রামটিতে কমপক্ষে 5 টি কলাম এবং 6 টি সারি কোষ যুক্ত একটি প্লেয়িং ফিল্ড প্রদর্শিত হবে display
- ক্ষেত্রের ব্লকগুলি এবং প্রান্তগুলি স্পষ্টভাবে চিহ্নিত হওয়া পর্যন্ত প্রদর্শনের যে কোনও পদ্ধতি ব্যবহার করা যেতে পারে।
- কমপক্ষে দুই ধরণের ব্লক থাকতে হবে:
#
এবং##
।###
এল এর মতো আকৃতির অতিরিক্ত ব্লক সমর্থন বা অ্যাঙ্গেল ব্লকগুলি আমার দ্বারা উত্সাহিত হবে: পি এবং বাইনারি টেট্রিসের সবচেয়ে সম্পূর্ণ গেম (মূল এবং ঘূর্ণন বৈশিষ্ট্যগুলির মতো সর্বাধিক ব্লক) আমার সুখ এবং একটি সম্ভাব্য অনুগ্রহ অর্জন করবে 50 টি রেপ। - শীর্ষ সারিতে ক্ষেত্রটিতে নতুন ব্লক যুক্ত করা হবে এবং একটি ব্লক সেল অবশ্যই কেন্দ্রের কলামটি দখল করবে।
- একটি নির্দিষ্ট হারে ব্লকগুলি নীচের সারির দিকে নেমে আসে। ব্যবহারকারীদের ইনপুট ছাড়াই ব্লকগুলি অবতরণ করতে হবে।
- যখন ব্লকগুলি মাঠের নীচে বা নীচের অংশে স্পর্শ করে, সেগুলি পড়া বন্ধ করে দেয় এবং স্থির হয়ে যায়। একটি নতুন ব্লক যুক্ত করা হয়েছে।
- সারিটির সমস্ত কলাম যখন ব্লকগুলিতে পূর্ণ হয়, সারিটি খালি হয়ে যায় এবং উপরের সমস্ত নির্দিষ্ট ব্লকগুলি একটি সারি নিচে নামিয়ে দেয়।
- প্রোগ্রামটি অবশ্যই কিপ্রেসগুলিতে প্রতিক্রিয়া জানাবে। এখানে 3 টি অনন্য কী থাকতে হবে যা নিম্নলিখিত ফাংশনগুলি সম্পাদন করে
- শিফট বর্তমান ব্লক 1 বাম কলাম বাম
- বর্তমান ব্লক ডান 1 কলাম শিফট
- 1 টি সারির নিচে বর্তমান ব্লকটি স্থানান্তর করুন
- প্রতিটি টুইটের মধ্যে কেবল 140 টি অক্ষর থাকতে পারে। টুইটগুলিতে রাখা যেতে পারে এমন বহু-বাইট অক্ষর ব্যবহারের অনুমতি রয়েছে।
একটি টুইট মধ্যে কি হতে পারে তার নিয়মগুলি সহজ। আপনি যদি এটি টুইট করতে পারেন তবে আপনি এটি ব্যবহার করতে পারেন।
বর্ণিত ভাষা একই নিয়ম অনুসরণ করে। প্রতিটি বিভাগ অবশ্যই চশমা অনুসরণ করতে হবে। যতক্ষণ কোনও রান টাইম ত্রুটি না ঘটে (এবং বাকিটি স্পেস অনুসরণ করে বৈধ হয়) আপনার উত্তরটি বৈধ গল্ফিং বিধি:
যেহেতু মূল প্রয়োগটি "টুইটযোগ্য" ছিল, তাই এই চ্যালেঞ্জটি একই প্রয়োজন। এন্ট্রি অবশ্যই টুইটারের একটি সিরিজ (140 টির বেশি অক্ষরের লাইন) হিসাবে প্রেরণ করতে সক্ষম হবে।প্রথম টুইটটিতে সংকলক / দোভাষীর নাম, প্রোগ্রামের নাম এবং কোনও কমান্ড লাইনের যুক্তি থাকতে হবে
- এটি ফাইল "P0" হিসাবে সংরক্ষণ করা হবে
- নিম্নলিখিত এন টুইটগুলি লাইন একটি সিরিজ হিসাবে প্রোগ্রাম থাকতে হবে।
- প্রতিটি টুইট টি <এন> নামের একটি ফাইলে সংরক্ষণ করা হবে, যেখানে এন 1..N আছে
- প্রতিটি লাইন পূর্ববর্তী লাইনে যুক্ত হবে এবং সংকলিত বা ব্যাখ্যা করা হবে। এটি অবশ্যই একটি বৈধ অবজেক্ট ফাইল বা প্রোগ্রাম উত্পাদন করতে হবে।
- শেষ লাইনটি যুক্ত না হওয়া পর্যন্ত প্রোগ্রামটি কার্যকর হওয়ার প্রয়োজন নেই।
প্রোগ্রামটি নিম্নলিখিত পদ্ধতিতে পরিচালিত হবে (ছদ্ম-বাশ)
interp,prog,args = split P0 /\s/ touch $prog for file in ./T* do cat $prog file > $prog $interp $prog $args die("FAIL") if $? #detect error done
দোভাষীকে অবশ্যই একটি সাধারণভাবে উপলব্ধ এক্সিকিউটেবল প্রোগ্রাম হতে হবে যা ইতিমধ্যে টেট্রিস প্রয়োগ করে না।
স্কোরিং :
পি 0 সহ কয়েকটি কম টুইটসমূহ। সর্বাধিক সংখ্যক স্পেয়ার অক্ষর দ্বারা বিভক্ত সম্পর্ক (140 * সংখ্যা টুইটগুলি - মোট অক্ষরের সংখ্যা)।
উদাহরণ এন্ট্রি
chrome a.htm
<html><div id="output"></div></html>
<script>cool java script here</script>
স্কোর = 3 (334 অতিরিক্ত)
cc a.c ;a.out
main(){/*cool prog here*/}
স্কোর = 2 (241 অতিরিক্ত)
tetris
স্কোর = 1 (134 অতিরিক্ত) যদি এটি আইনী ছিল, যা এটি নয়
বিশেষ ধন্যবাদ
আমাকে এখানে অ্যাশিলির সম্মতিতে পোস্ট করার অনুমতি দেওয়া হয়েছিল