এটি আশ্চর্যজনকভাবে জটিল, এবং আমি নিশ্চিত নই যে এটি সর্বোত্তম ...
<.@!$?
কোডটি প্যাডিং এবং অনাবৃত করার পরে এটি নিম্নলিখিত হেক্স গ্রিডের প্রতিনিধিত্ব করে:
এটি আমার সাম্প্রতিক ত্রুটি-বিড়াল বিড়াল প্রোগ্রামের মতো একটি অনুরূপ নিয়ন্ত্রণ প্রবাহ ব্যবহার করে , অ্যান্টি-ডায়াগোনালগুলি নিয়ে চলেছে। এটি অর্জনের জন্য আমরা বামদিকে নির্দেশ পয়েন্টার (আইপি) অপসারণের মাধ্যমে শুরু করি, যেখানে বেগুনি পথটি নীচের বাম কোণে প্রায় আবৃত।
?
পূর্ণসংখ্যা হিসাবে ইনপুটটি পড়ে। !
এটি আবার মুদ্রণ। .
শুধু একটি অপ-অপশন। এখন গ্রিডের কোণটি একটি শাখা হিসাবে কাজ করে:
যদি ইনপুটটি ছিল 0
, আইপিটি লাল পথ ধরে চলতে থাকবে, যা কেবলমাত্র প্রোগ্রামটি দিয়ে শেষ করে @
।
যদি ইনপুটটি থাকে 1
, আইপি সবুজ পথে চলতে থাকবে। আবার, .
কেবল একটি অপ-বিকল্প নয়, তবে $
এটি বেফঞ্জের ট্রামপোলিনের সমতুল্য: এটি পরবর্তী নির্দেশনা এড়িয়ে যায়। মোড়ানোর পরে, পরবর্তী নির্দেশটি হ'ল, ?
তবে $
মৃত্যুদন্ড কার্যকর হওয়ার কারণে নীল পথে চলতে থাকে, এর !
আর একটি অনুলিপি মুদ্রণের সাথে শুরু করে 1
। এই লুপটি যা কেবল থাকে !..$
তা এখন অনির্দিষ্ট সময়ের জন্য পুনরাবৃত্তি হয়।
হেক্সাগনির নিয়ন্ত্রণ প্রবাহের একটি গবেষণা ...
আমি বিশ্বাস করি যে উপরের সমাধানটি সর্বোত্তম। আমি একটি নরপশু forcer, যা সব 6-বাইট Hexagony প্রোগ্রাম, যা ধারণ করে পরীক্ষা লিখেছি অন্তত একটি প্রতিটি ?!@
(যা প্রয়োজন; আমিও পরীক্ষা করেছি :
এবং %
স্থানে @
একটি বিভাগ-বাই-শূন্য ত্রুটি সহ বিনষ্ট কিন্তু এটি কোনও সাহায্যই করেনি)। চেকটি সমস্ত প্রোগ্রাম মুদ্রণ করে যা ক) 0
ইনপুট তৈরি করে 0
এবং সমাপ্ত করে এবং খ) কমপক্ষে দুটি 1
টি উত্পাদন করে (এবং অন্য কিছুই নয়) এবং প্রোগ্রামের প্রথম 60 টিকের মধ্যে শেষ হয় না (5 বাইট সমাধানের জন্য 200 টিক) । আমি সন্দেহ করি যে কোনও বৈধ সমাধান এ জাতীয় ছোট গ্রিডে প্রথম 0
বা দ্বিতীয়টিকে সঠিকভাবে মুদ্রণের জন্য 200 টিরও বেশি টিক্স লাগবে 1
, তাই আমি মনে করি না যে আমি কোনও সম্ভাব্য সমাধানটি বাদ দিয়েছি।
5 বাইটের জন্য অনুসন্ধানের কোনও ফল পাওয়া যায় নি, তবে 6 বাইটের 57 টি ফলাফল (ব্যবহার করে @
; যদি আমরা একই পরিমাণ বাইটে পরিষ্কারভাবে সমাধান করতে পারি তবে কোনও ত্রুটি দিয়ে শেষ করার দরকার নেই)। এই 57 1
টির মধ্যে 6 টি মিথ্যা ধনাত্মক ছিল যা প্রকৃতপক্ষে মাত্র দুটি টি মুদ্রণ করেছিল এবং তারপরে আর কোনও মুদ্রণ ছাড়াই অসীম লুপে প্রবেশ করেছিল। একটি সমাধান দু'বার তালিকাভুক্ত হয়েছিল কারণ এতে দুটি !
কমান্ড রয়েছে। এটি হ'ল 50 টি বৈধ সমাধান।
সমাধানগুলির মধ্যে একটি নির্দিষ্ট পরিমাণ অবক্ষয় রয়েছে যেখানে এক বা দুটি অক্ষর যথেষ্ট নয়, উদাহরণস্বরূপ যেহেতু তারা কার্যকরভাবে কোনও বিকল্প নেই। সমাধানগুলি যথাযথভাবে স্বতন্ত্র প্রোগ্রামগুলির 23 সেটগুলিতে বিভক্ত করা যেতে পারে (কিছু ক্ষেত্রে দুটি সেটের মধ্যে কেবলমাত্র একক চরিত্রের পার্থক্য রয়েছে, তবে এটি নিয়ন্ত্রণ প্রবাহকে যথেষ্ট পরিবর্তন করে, তাই আমি সেগুলি পৃথকভাবে গণনা করেছি)। দুটি গ্রুপ এমনকি অপ্রত্যাশিত উপায়ে একাধিক নির্দেশ পয়েন্টার ব্যবহার করে। যেহেতু আমি কখনই শাখা এবং আয়নাগুলি ব্যবহার করার এই বেশিরভাগ উপায় নিয়ে আসতে পারিনি, তারা হেক্সাগনীতে কী ধরণের নিয়ন্ত্রণ প্রবাহ সম্ভব তা নিয়ে খুব আকর্ষণীয় অধ্যয়ন করে এবং আমি অবশ্যই ভবিষ্যতের গল্ফগুলির জন্য কিছু নতুন কৌশল শিখেছি।
সামগ্রিক নিয়ন্ত্রণ প্রবাহ প্রায় সবসময় একই: একটি সংখ্যা পড়ুন, এটি মুদ্রণ করুন। যদি এটির 0
কোনও উপায় খুঁজে পাওয়া যায় তবে এর প্রান্তের মানটি নির্ধারণের সময় @
লুপিং না !
রাখলে 1
। এখানে উল্লেখযোগ্য চারটি ব্যতিক্রম রয়েছে:
- একটি সমাধান (দুটি সহ একটি
!
) 1
গ্রিডের মাধ্যমে পুনরাবৃত্তির জন্য দুটি গুলি প্রিন্ট করে, সুতরাং সংখ্যাগরিষ্ঠ প্রোগ্রামের চেয়ে দ্বিগুণ দ্রুত প্রিন্ট করে। আমি এটি x2
নীচে দিয়ে চিহ্নিত করেছি ।
- কয়েক সমাধান (যাদের যা ধারণ করে
o
) প্রতিস্থাপন 1
একটি সঙ্গে 111
(চরিত্র কোড o
), তাই তারা মুদ্রণ তিন 1
পুনরাবৃত্তির প্রতি গুলি তাদের যত দ্রুত তিনবার সম্পর্কে প্রিন্ট প্রোগ্রাম সংখ্যাগরিষ্ঠ যেমন করে। আমি x3
নীচে দিয়ে চিহ্নিত করেছি ।
- দুটি সমাধান সংযোজন একটি
1
প্রতিটি পুনরাবৃত্তির প্রান্ত মান (তাই 1
-> 11
-> 111
-> ...)। এগুলি খুব দ্রুত প্রিন্ট করে তবে শেষ পর্যন্ত এগুলির স্মৃতিশক্তি চলে যায়। আমি OoM
নীচে দিয়ে চিহ্নিত করেছি ।
- দুটি সমাধান একটি খুব টান লুপ প্রবেশ করে যা কেবল উপরের দিকে পিছনে ফিরে আসে এবং
!
প্রতিটি অন্যান্য টিকের (প্রতিটি 5 বা তার পরিবর্তে) মুদ্রণ করে, যা তাদের সামান্য দ্রুত (এবং আরও পরিষ্কার) করে তোলে। আমি ><
নীচে দিয়ে চিহ্নিত করেছি ।
সুতরাং এখানে পুরো চিড়িয়াখানাটি রয়েছে:
#1 #5 #12 #19
?!/$.@ ?$!>$@ .?!/$@ |!|?$@ # ><
?!/$1@ # OoM ?$!|$@ =?!/$@
?!/$=@ #20
?!/$\@ #6 #13 $@.?<!
?!/$o@ # x3 ?/!<|@ .?/!$@ $@1?<! # OoM
?!/$!@ # x2 =?/!$@ $@=?<!
#7 $@o?<! # x3
#2 ?\!<|@ #14
?!>$)@ \!?__@ #21
?!>$1@ #8 _>_!?@
?!>$o@ # x3 ?<!>$@ # >< #15
?!|$)@ \_?!$@ #22
?!|$1@ #9 <!@.$?
?!|$o@ # x3 ?\$!@$ #16 <!@/$?
\_?!_@ <!@=$?
#3 #10 <$@!$?
?!|)$@ ?~#!@) #17 <.@!$?
?!|1$@ ?~#!@1 $$?\@! </@!$?
?!|o$@ # x3 <=@!$?
#11 #18
#4 ?$)\@! \$?\@! #23
?_!<@> ?$1\@! <<@]!?
?$o\@! # x3
নীচে কয়েকটি সংখ্যক প্রতিনিধি গোষ্ঠীর জন্য একটি সংক্ষিপ্ত পদচারণা। বিশেষত 10 এবং 23 টি গ্রুপ পরীক্ষা করে দেখার মতো। অন্যান্য গ্রুপগুলিতে আরও অনেক আকর্ষণীয় এবং কখনও কখনও সংশ্লেষযুক্ত পাথ রয়েছে তবে আমি মনে করি এটির শেষে আমি আপনাকে যথেষ্ট বিরক্ত করেছি। যে কেউ সত্যিকার অর্থে হেক্সাগনি শিখতে চায় তাদের পক্ষে এগুলি অবশ্যই তদন্ত করার মতো, কারণ তারা আয়নাগুলির আরও বেশি সম্ভাব্য ব্যবহারগুলি প্রদর্শন করে $
।
1 নং দল
এটি আমার আসল সমাধানের চেয়ে বেশি বিস্তৃত নয়, তবে পথগুলি বিভিন্ন দিকে চলে। এটি একটি একক কক্ষে সর্বাধিক সংখ্যক তারতম্যের জন্যও অনুমতি দেয়, কারণ ডান-সর্বাধিক কোনও অপটিকে 5 টি পৃথক কমান্ড দিয়ে প্রতিস্থাপন করা যেতে পারে যা কাঠামো পরিবর্তন না করেই এখনও এটিকে বৈধ করে তোলে:
গ্রুপ 2
এটি একটি বেশ আকর্ষণীয়, কারণ এটি কেবল অনুভূমিকভাবে চলে। মোড়কের পরে >
, আইপিটি তত্ক্ষণাত্ উল্টে, কোণে শাখা নিয়ে। এটি সম্পূর্ণরূপে দৃশ্যমানভাবে কোনও চিত্র নয়, তবে আমাদের ক্ষেত্রে 1
আমরা প্রথম সারিতে আবার ট্র্যাভার করছি, তবে এবার পিছনে। এর অর্থ হ'ল আমরা ?
আবার প্রবেশ করলাম যা এখন ফিরে আসে 0
(ইওএফ)। এটি )
মুদ্রণ 1
গুলি রাখতে (বৃদ্ধি) দিয়ে স্থির করা হয়েছে। এই 5 বৈচিত্র আছে, যেমন )
এটাও হতে পারে 1
বা o
, এবং >
এছাড়াও হতে পারে |
:
গ্রুপ 3
এটি আগেরটির সাথে প্রায় একই রকম দেখায় তবে এটি নরকের মতো অগোছালো। উপরের দিকে আঘাত করা |
এবং তারপরে নীচে বা উপরের সারিটি একই রকম tra তবে লুপের ক্ষেত্রে, $
এখন আয়নার )
উপরে চলে যায় । সুতরাং আমরা ডানদিকে ফিরোজা পথ অনুসরণ করি, এখন ইনক্রিমেন্টটি চাপুন, @
আমরা |
আবারও প্রায় জড়ানোর আগে উপরের দিকে তাকাতে হবে এবং তারপরে আবার শীর্ষে সবুজ পথে ফিরে যেতে পারি।
গ্রুপ 4
আমি ভাবলাম এটি বিশেষত নিফটি:
_
উপরের ডান কোণায় থাকা আয়না প্রাথমিকভাবে একটি নো-অপ, তাই আমরা মাধ্যমে মুদ্রিত !
এবং আঘাত <
। 0
পাথ এখন অনুভূমিক আয়না হিট এবং বন্ধ। 1
পাথ একটি সত্যিই মজার গ্রহনক্ষত্রের নির্দিষ্ট আবক্র পথ লাগে যদিও: এটি ডাউন পথচ্যুত করতে, এর গোপন !
, অনুভূমিক দিকে পুনঃনির্দেশিত পরার এবং তারপর ফিরে গোপন !
আবার । এরপরে এটি এই রম্বস আকারে চলতে থাকে, পুনরুক্তি প্রতি প্রতিবার (প্রতিটি তৃতীয় টিক) মুদ্রণ করে।
গ্রুপ 8
এটি একটি সত্যই টাইট মুদ্রণের লুপ সহ দুটি সমাধানগুলির মধ্যে একটি:
<
শাখা হিসাবে কাজ করে। দু'বার মোড়ানোর পরে, 0
হিট @
। 1
অন্যদিকে, প্রথমে এড়িয়ে যায় ?
, তারপরে আবার >
এটি প্রেরণ করে $
, যাতে এটি স্কিপ হয় @
। তারপরে আইপিটি ফিরোজা পথে psেকে দেয়, যেখানে এটি পিছনে এবং সামনে >
এবং সামনে <
(মাঝখানে প্রান্তটি মোড়ানো) b
গ্রুপ 10
দুটি নির্দেশের পয়েন্টার ব্যবহার করে এমন দুটি গ্রুপের একটি এবং এটি একেবারেই সুন্দর। হেক্সাগনির 6 টি রয়েছে - প্রত্যেকে ঘড়ির কাঁটার প্রান্ত বরাবর একটি পৃথক কোণ থেকে শুরু হয় তবে তাদের মধ্যে কেবলমাত্র একবারে সক্রিয় রয়েছে।
যথারীতি আমরা পড়ি ?
। এখন ~
ইউনারী অস্বীকৃতি: এটি সক্রিয় 1
একটি মধ্যে -1
। পরবর্তী, আমরা আঘাত #
। আইপিগুলির মধ্যে স্যুইচ করার এটি একটি উপায়: এটি বর্তমান প্রান্ত মান মডিউল 6 নেয় এবং সংশ্লিষ্ট আইপিতে স্যুইচ করে (আইপিগুলি 0
ঘড়ির কাঁটার দিক থেকে সংখ্যায়িত করা হয়)। সুতরাং যদি ইনপুটটি হয় 0
, তবে আইপি কেবল একই থাকে এবং বিরক্তিকর সাথে সরাসরি সামনে ভ্রমণ করে !@
। তবে যদি ইনপুটটি ছিল 1
, তবে বর্তমান মানটি -1
যা হয় 5 (mod 6)
। সুতরাং আমরা আইপিতে স্যুইচ করি যা খুব একই কক্ষে শুরু হয় (সবুজ পথ)। এখন #
কোনও অপ-অফ এবং ?
স্মৃতি প্রান্তটি সেট করে 0
। )
ইনক্রিমেন্ট তাই !
প্রিন্ট a 1
। ~
এটি নিশ্চিত করতে এখন আমরা আবার আঘাত করেছি#
এখনও একটি অপ-অফ (আমাদের আইপি 1 এ স্যুইচ করার বিপরীতে যা প্রোগ্রামটি শেষ করে দেবে)। এই ছোট প্রোগ্রামটিতে সবকিছু কীভাবে একসাথে ফিট হয় তা মনের ভাব প্রকাশ করছে।
গ্রুপ 22
কেবল লক্ষ্য করার জন্য, এটিই আমার আসল সমাধানটি রয়েছে সেই গ্রুপটি It এটি বৃহত্তর গ্রুপ হিসাবেও ঘটে।
গ্রুপ 23
এটি একাধিক আইপি ব্যবহার করে অন্য গ্রুপ। আসলে এই 3 টি বিভিন্ন আইপি ব্যবহার করে । উপরের ডান দিকের কোণটি কিছুটা গোলমাল, তবে আমি আপনাকে এর মাধ্যমে চলতে চেষ্টা করব:
সুতরাং, আপনি যে <
শুরুটি আগে দেখেছেন: উত্তর-পূর্বকে প্রতিফলিত করে, ?
ইনপুট পড়ে। ]
আইপিগুলির মধ্যে পরিবর্তন করার এখন আর একটি উপায়: এটি পরবর্তী আইপিতে ঘড়ির কাঁটার ক্রমে নিয়ন্ত্রণ দেয়। সুতরাং আমরা ফিরোজা পথের উপর নিয়ন্ত্রণ স্যুইচ করি যা উত্তর (পূর্বের কোণে) দক্ষিণ-পূর্ব দিকে যেতে শুরু করে (এটি দেখতে খুব শক্ত)। এটি তত্ক্ষণাত প্রতিফলিত হয় <
যাতে এটি দক্ষিণ-পূর্ব কোণে আবৃত হয়, উত্তর-পশ্চিম দিকে যায়। এটা তোলে এছাড়াও হিট ]
তাই আমরা স্যুইচ পরবর্তী আইপি। এটি পূর্ব কোণে শুরু হয়ে ধূসর পথ, দক্ষিণ-পশ্চিম দিকে যাচ্ছে। এটি ইনপুট মুদ্রণ করে, তারপরে উত্তর-পূর্ব কোণে মোড়ানো। <
অনুভূমিকের দিকে পথটি প্রতিস্থাপন করে যেখানে এটি অন্যের দ্বারা প্রতিবিম্বিত হয় <
। এখন ডান হাত<
একটি শাখা হিসাবে কাজ করে: যদি ইনপুটটি হয় 0
, আইপি উত্তর-পূর্ব দিকে চলে যায় এবং এটি মোড়ক করে @
। যদি ইনপুটটি থাকে 1
, আইপিটি সরান !
, লেফ-থ্যান্ডে আবৃত হয় <
যেখানে এটি প্রতিবিম্বিত হয় ... এখন কোণায়, এটি পিছনে আবৃত হয় !
, ডানদিকে <
বিচ্ছিন্ন হয়ে যায়, বাম দ্বারা প্রতিবিম্বিত হয় <
এবং পথগুলি শুরু হয় উপর ...
বেশ গণ্ডগোল, তবে একটি সুন্দর জগাখিচুড়ি। :)
টিমভির আশ্চর্যজনক হেক্সাগনি কলরারের সাহায্যে চিত্রগুলি তৈরি করা হয়েছে ।