এএসসিআইআই বোরোমায়ান রিংগুলি


24

Borromean রিং তিন চেনাশোনা একটি অদ্ভুত সেট, যেমন যে তাদের যে কোনো একটি অপসারণের অন্য দুটি লিঙ্ক মুক্ত করবে লিঙ্ক আছেন:

এখানে চিত্র বর্ণনা লিখুন

আপনি কয়েকটি রাবার ব্যান্ড এবং একটি বাইদার রিং দিয়ে নিজের জন্য একটি সেট তৈরি করতে পারেন । আরও রাবার ব্যান্ডের সাথে কোনও ব্রুনিয়ার লিঙ্ক তৈরি করা সহজ ।

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা বোরোরোমিন রিংয়ের এই অসি-শিল্পের উপস্থাপনাটিকে আউটপুট করে (মুদ্রণ করে বা ফেরত দেয়):

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

রেখাগুলির পেছনের স্থান থাকতে পারে এবং সেখানে একটি নতুন ট্র্যাকলাইন থাকতে পারে।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


2
আমাকে বলতেই হবে যে এটি প্রত্যাশিত আউটপুটটি কতটা সহজ
বিটা ডেকে

3
আমি কিছুটা হতাশ। ভেবেছিলাম চ্যালেঞ্জটি হ'ল সেই আকারের পূর্ণসংখ্যার আকার এবং আউটপুট রিং নেওয়া।
ব্ল্যাকলাইট জ্বলজ্বলে

হ্যাঁ, আমিও ভেবেছিলাম (প্রোগ্রামটি একটি ইনপুট হিসাবে গ্রহণ করে এবং তারপরে ব্রুনিয়ান লিঙ্কটি বহু উপাদানগুলির সাথে আঁকায়, তবে এটি অনন্য নয়, সম্ভবত বহু সংখ্যক ক্রসিংস?)। এই জাতীয় প্রোগ্রামটিতে আসলে অনুসন্ধান করতে হবে (বা কমপক্ষে ট্রায়াল এবং ত্রুটি - এই রিংগুলি ইন্টারলক করুন এবং যদি আমি একটি অপসারণ করি তবে কি ফ্রি যাবেন?) কেবল একটি নির্দিষ্ট ছবি আঁকার পরিবর্তে ...
অ্যালেক্সি

উত্তর:


7

সিজেম, 53 51 50 49 বাইট

সাধারণ পুরানো বেস রূপান্তর ...

"FÓîÞ¤ÛY­ËB[¢O²êÍÓ
}²|äG"299b4b"+ -|"f=B/N*

সমস্ত অক্ষর বর্ধিত ASCII পরিসীমা (ASCII কোড 1 থেকে 255) তে ভাল, তাই অক্ষরের সংখ্যা == বাইট সংখ্যা।

এটি এখানে অনলাইনে চেষ্টা করুন এবং আসল কোডটি এখানে পাবেন


শুধু কৌতূহলী, আপনার অনুসন্ধানে নতুন লাইনটি কোথায়?
মালটিসেন

@ মাল্টেসেন আমার কাছে নেই B/N*11 টি অক্ষর দ্বারা বিভক্ত হয়ে নিউলাইনটিতে যোগ দেয়
অনুকূলটি

এটাই কূওল।
মালটিসেন

6

পাইথ - 51 বাইট

আমি নিশ্চিত যে কেউ এই দ্রুত পরাজিত করতে পারবে, তবে কেবল একটি বেস কম্প্রেশন উত্তরটি আমাকে অলস বোধ করছে। আমি শীঘ্রই একটি গুরুতর উত্তর লেখার চেষ্টা করব।

s@L"
 +-|"jC" zB²;¶Ê ¿ïÁ»#-ÌClHõy%|ap"5

এটি এখানে অনলাইনে চেষ্টা করে দেখুন

s              Reduce on string concatenation
 @L            Map second arg to index first arg
  "..."        String of all chars (Pyth allows literal newlines)
  j            Base conversion to list
   C           Base conversion 256 -> 10
    "..."      Base 256 string
   5           To Base 5

4

পাইথ, 49 বাইট

jbc11s@L"+ -|"jC"Tª]UʨWÕÝ_K¨}ÝÝ÷K¨Ý]Òê]UÕ*¡"4

প্রদর্শন.

এটি বেস 4 টি এনকোডিং ব্যবহার করে এবং স্ট্রিংটিকে একাদশীতে ছড়িয়ে দেয়, তারপরে সেগুলিকে নতুন লাইনে যোগ দেয়।


3

রুবি, 110

-2.upto(8){|i|s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9
6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}
puts s}

স্ট্রেট বেস রূপান্তর থেকে কিছু আলাদা।

Ungolfed:

-2.upto(8){|i|                                           #for each line
  s=" "*(i%6)+"+-----+"*(1-i%2)+" "*9                    #load s with "+-----+" (if required!) padded appropriately with leading spaces and with nine trailing spaces.   
  6.times{|j|"@d me?K[RR@"[i+2].ord>>j&1>0&&s[j*2]=?|}   #replace characters with | as necessary, according to the 6-bit number encoded by each character in the magic string.
  puts s}                                                #print the line.

3

রুবি, 117 বাইট

বিজয়ী নয়, তবে আমি ভেবেছিলাম এটি একটি সুন্দর পদ্ধতি:

puts'    --
    |     |
--  |
|   | |   |
| -||
| | | | | |
| | -|
| |   | |
-||
  |     |
  --'.gsub /-./,'+\0---+ '

2

BrainFuck, 361 বাইট

এখানে একটি সামান্য ব্রেইনফাক প্রোগ্রাম রয়েছে, কেবল চর দ্বারা মুদ্রণযোগ্য।

+++++++++[->>>>++++++++++++++<+++++<+++++<++++<]>----....>--.>.....>-->++++++++++<<<.>>>.<<<<....>>>.<<<.....>>>.>.<<<.>.....<.<...>>>.>.<.<<<...>>>.<<<.>>>.<<<...>>>.>.<.<<<.>.>.>.<...<.<.>>>.>.<.<<<.>>>.<<<.>>>.<<<.>>>.<<<.>>>.<<<.>>>.>.<.<<<.>>>.<<<.>.>.>.<...<.>>>.<.<<<.>>>.<<<...>>>.<<<.>>>.>.<<<.>.>.<...<.<.>>>.>.<<<<..>>>.<<<.....>>>.>.<<<<..>.>.....<.

1

স্টাক , 109 অক্ষর

&iiiqi{1" "}{211}{c"| "}{fcc}{o"+-|"}{p"+--"}{r"---+"}{ec;}22pr;22c22epr21ec2f2ecor1effcefor;f2ceor1e2c22e2pr

আউটপুট:

Executing D:\codegolf\Staq borromean rings.txt

    +-----+
    |     |
+-----+   |
|   | |   |
| +-|---+ |
| | | | | |
| | +-|---+
| |   | |
+-|---+ |
  |     |
  +-----+

Execution complete.
>

0

পাইথন 3, 139 বাইট

এটি সরাসরি না করে এটি সরাসরি মুদ্রণের জন্য আমি কাছে পেতে পারি (যা 134 বাইট হবে) আসলে এটি না করেই আমি কীভাবে আরও সংক্ষিপ্ত করব তা নিশ্চিত নই।

a='+-----+'
b='+-|---+'
c=' '*4
d='| '
e=c+d
print(c+a,e*2,a+e[1:],"|   | "*2,d+b+" |",d*6,d+d+b,"| |   "*2,b+" |",e[2:]+e,"  "+a,sep='\n')
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.