কয়েকটি টিপস এখানে:
ধ্রুবক:
Esolangs 'ধ্রুবক পৃষ্ঠা নির্দিষ্ট মান তৈরি করতে সবচেয়ে কম উপায়ে একটি অত্যন্ত দরকারী তালিকা রয়েছে। আমি নিজেকে প্রতি প্রোগ্রামে কমপক্ষে দুবার এই পৃষ্ঠাটি পরামর্শ দিচ্ছি।
সমস্ত কিছুর শুরু:
+++[[<+>>++<-]>]
এটি 3 * n ^ 2 ফর্ম্যাটটিতে টেপটি সেট আপ করে, যা দেখতে সুন্দর
3 6 12 24 48 96 192 128 0 0 '
এটা কেন এত গুরুত্বপূর্ণ?
আসুন তালিকাটি নীচে যান:
- 3 এবং 6 বোরিং হয়
- 12: 10 (নিউলাইন) অথবা 13 (ক্যারেজ রিটার্ন) এর কাছাকাছি। কাউন্টারে 0-9 এর জন্যও ব্যবহার করা যেতে পারে
- 24: বর্ণমালার অক্ষরের সংখ্যা 26 Close
- 48: এএসসিআইআই এর জন্য
0
- 96: 97 এর কাছাকাছি, এএসসিআইআই
a
- 196 এবং 128: 196-128 = 64, 65 এর কাছাকাছি, এএসসিআইআই
A
।
এই একটি অ্যালগরিদম থেকে, আমরা ASCII পরিসরে কার্যত প্রতিটি ক্রমের শুরুতে, প্রতিটির জন্য একটি কাউন্টার এবং সহজলভ্য একটি নতুন লাইন।
একটি ব্যবহারিক উদাহরণ:
সমস্ত বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর এবং অঙ্ক মুদ্রণ করা হচ্ছে।
অ্যালগরিদম সহ:
+++[[<+>>++<-]>]<<[-<->]<<<<++[->>+.>+.<<<]<--[>>.+<<-]
ছাড়া:
+++++++++++++[->+++++++>++>+++++>++++>+<<<<<]>+++++>[-<+.>>.+<]>>---->---[-<.+>]
আমরা বেশিরভাগ বাইটগুলি কেবল দ্বিতীয় উদাহরণে টেপটি আরম্ভ করার জন্য ব্যয় করি । এর কয়েকটি এটি প্রথম উদাহরণে অতিরিক্ত চলাফেরা দ্বারা অফসেট করে, তবে এই পদ্ধতির স্পষ্টতই সুবিধা রয়েছে।
একই শিরাতে আরও কয়েকটি আকর্ষণীয় অ্যালগরিদম:
3 * 2 ^, n + 1:
+++[[<+>>++<-]+>]
Tape: 4 7 13 25 49 65 197 129 1 0'
এটি 1 দ্বারা মানগুলি অফসেট করে, যা কয়েকটি জিনিস সম্পাদন করে। এটি 12 টি ক্যারেজ রিটার্ন, 64 টি বড় হাতের বর্ণমালার প্রকৃত শুরু এবং 24 টি 26-এর কাছাকাছি করে তোলে।
2 ^ n হল:
+[[<+>>++<-]>]
Tape: 1 2 4 8 16 32 64 128
64 বড় হাতের অক্ষরের জন্য ভাল, 32 স্থানের জন্য ASCII, এবং 128 কে 26 (130/5 = 26) এর কাউন্টার হিসাবে ব্যবহার করা যেতে পারে। এটি নির্দিষ্ট পরিস্থিতিতে বাইটগুলি সংরক্ষণ করতে পারে যেখানে অঙ্ক এবং ছোট হাতের অক্ষরের প্রয়োজন হয় না।
প্রশ্নের উপযুক্ত অনুসারে বাস্তবায়ন চয়ন করুন:
- নেতিবাচক কোষগুলি প্রায় সর্বদা কার্যকর এবং এগুলি এড়াতে কোনও কারণ নেই (যদি না এটি আপনার বাইকোয়েন্টে পরিবর্তন না করে)
- মোড়কের ঘরগুলির সাথে প্রায় একই জিনিস, আরও বেশি কারণ অনেকগুলি ধ্রুবক মোড়ক ব্যবহার করে।
- স্বেচ্ছাসেবক সেল মাপগুলি অসীম গণিতের সিকোয়েন্সগুলির জন্য দরকারী যেমন ফাইবোনাকি সিক্যুয়েন্সকে অসীমভাবে গণনা করা (
+[[-<+>>+>+<<]>]
) বা বৃহত্তর / নেতিবাচক সংখ্যার প্রক্রিয়াকরণ। Downside হয় যে যেমন কিছু সাধারণ পদ্ধতি, হয় [-]
এবং [->+<]
উপর ওপরেই নির্ভরশীল করা যাবে না, ধরো যদি সংখ্যা নেতিবাচক।
- ইওএফ 0, -1 বা কোনও পরিবর্তন হিসাবে। 0 টি সাধারণত পছন্দনীয়, কারণ আপনি অতিরিক্ত চেক ছাড়াই পুরো ইনপুটটি লুপ করতে পারেন। -1 অ্যারে স্ট্রাকচারগুলি লুপ করার সময় দরকারী। আমি এখনও কোনও পরিবর্তন ছাড়াই একটি ব্যবহার পাইনি :(।
ফ্রিক কী চলছে সে সম্পর্কে নজর রাখুন:
সর্বদা আপনার চারপাশের উপাত্তের সাথে পয়েন্টারটি কোথায় থাকা উচিত সে সম্পর্কে আপনার মন্তব্য থাকতে হবে এবং প্রতিটি কক্ষের সম্ভাব্য মানগুলির সীমাটি জানেন কিনা তা নিশ্চিত হওয়া উচিত। এটি বিশেষত গুরুত্বপূর্ণ যখন আপনি একটি লুপের আগে পয়েন্টারটি বিভক্ত করেন, কারণ আপনি দুটি সম্ভাবনার সাথে একসাথে ফিরে আসতে চাইবেন।
যে কোনও মুহুর্তে, আমার কোডটি অন্য প্রতিটি লাইনে এমন মন্তব্যে ছড়িয়ে পড়েছে যা দেখতে এই রকম হয়:
*0 *dat a_1 ? 0' !0 0*
or
*0 *dat 0' ap1 0 !0 0*
কিছু অতিরিক্ত পরামর্শ প্রতীক বিশেষ অর্থ নির্ধারণ করা হয়। উপরের উদাহরণে, '
যেখানে পয়েন্টারটি রয়েছে, তার *
অর্থ সেই দিকের পুনরাবৃত্তি , যার ?
অর্থ অজানা মানযুক্ত একটি ঘর, !0
যার অর্থ একটি শূন্য নয় _
এমন একটি ঘর, এর বিকল্প -
এবং p
এটির বিকল্প রয়েছে +
। or
বোঝায় যে টেপটি কোনও উপস্থাপনের মতো দেখতে পারে এবং এটি হ্যান্ডেল করা দরকার।
আপনার প্রতীক স্কিমটি অগত্যা খনি হিসাবে একই হতে হবে না (যার কয়েকটি ত্রুটি রয়েছে), এটি কেবল সামঞ্জস্যপূর্ণ হতে হবে। এটি ডিবাগ করার সময়ও অত্যন্ত দরকারী, কারণ আপনি এটিকে চালিয়ে যেতে পারেন এবং আসল টেপটি আপনার যা যা হওয়া উচিত তার সাথে তুলনা করতে পারেন যা আপনার কোডের সম্ভাব্য ত্রুটিগুলি চিহ্নিত করতে পারে।