এএসসিআইআই আর্ট এইচ গাছগুলি


9

একটি এইচ ট্রি একটি ফ্র্যাক্টাল গাছ কাঠামো যা একটি লাইন দিয়ে শুরু হয়। প্রতিটি পুনরাবৃত্তিতে টি শাখা সমস্ত শেষ পয়েন্টে যুক্ত করা হয়। এই চ্যালেঞ্জে আপনাকে প্রতি দ্বিতীয় এইচ গাছ স্তরের একটি ASCII উপস্থাপনা তৈরি করতে হবে ।

প্রথম স্তরের কেবল তিনটি হাইফেন-বিয়োগ অক্ষরগুলি রয়েছে:

---

পরবর্তী স্তরগুলি পুনরাবৃত্তভাবে নির্মিত হয়:

  • পূর্ববর্তী স্তর থেকে 2x2 ম্যাট্রিক্স অনুলিপি তৈরি করুন, তিনটি স্পেস বা রেখার দ্বারা পৃথক করে।
  • অনুলিপিগুলির কেন্দ্রগুলি ASCII আর্ট লাইনের সাথে এইচ আকারে সংযুক্ত করুন -অনুভূমিক রেখার |জন্য, উল্লম্ব রেখার জন্য এবং +যখনই লাইন একে অপরের সাথে মিলিত হয়।

দ্বিতীয় স্তর

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

তৃতীয় স্তর

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

বিধি

  • ইনপুট একটি পূর্ণসংখ্যা হিসাবে উপরে (বর্ণনা হওয়া ASCII শিল্প এইচ গাছের স্তর প্রতিনিধিত্বমূলক হয় না প্রকৃত এইচ গাছ স্তর), নয়তো zero- অথবা এক ইন্ডেক্স।
  • আউটপুট নমনীয়। উদাহরণস্বরূপ, আপনি ফলাফল মুদ্রণ করতে পারেন বা একটি নতুন লাইন-বিচ্ছিন্ন স্ট্রিং, প্রতিটি লাইনের জন্য স্ট্রিংয়ের তালিকা, বা অক্ষরের 2D অ্যারে ফিরিয়ে দিতে পারেন।
  • আপনি ব্যবহার করা আবশ্যক -, |, +এবং স্থান অক্ষর।
  • ট্রেলিং স্পেস এবং তিনটি পর্যন্ত অবধি সাদা-স্পেস লাইন অনুমোদিত।

এটি কোড গল্ফ। বাইটস মধ্যে সংক্ষিপ্ত উত্তর।


উত্তর:


7

ক্যানভাস , 20 19 বাইট

ø⁸«╵[↷L⇵;l⇵└┌├-×╋‼│

এখানে চেষ্টা করুন!

ব্যাখ্যা:

ø                    push an empty canvas
 ⁸«╵[              repeat input*2 + 1 times
     ↷               rotate clockwise
      L⇵             ceil(width/2)
        ;l⇵          ceil(height/2); leaves stack as [ ⌈½w⌉, canvas, ⌈½h⌉ ]
           └┌        reorder stack to [ canvas, ⌈½w⌉, ⌈½h⌉, ⌈½w⌉ ]
             ├       add 2 to the top ⌈w÷2⌉
              -×     "-" * (2 + ⌈w÷2⌉)
                ╋    in the canvas, at (⌈w÷2⌉; ⌈h÷2⌉) insert the dashes
                 ‼   normalize the canvas (the 0th iteration inserts at (0; 0) breaking things)
                  │  and palindromize horizontally

7

কাঠকয়লা , 22 বাইট

P-²FNF²«⟲T²+×⁺²κX²ι←‖O

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। 0-ইন্ডেক্স। ব্যাখ্যা:

P-²

প্রাথমিক তিনটি মুদ্রণ করুন -, কার্সারকে মাঝখানে রেখে দিন।

FN

প্রদত্ত বারের জন্য পুনরাবৃত্তি করুন।

F²«

প্রত্যেকের জন্য দু'বার পুনরাবৃত্তি করুন H। প্রতিটি লুপ Hপূর্ববর্তী লুপ থেকে কিছুটা বড় তৈরি করে তবে আমরা কেবল বিকল্প Hগুলি চাই ।

⟲T²

চিত্রটি ঘোরান।

+×⁺²κX²ι←

পরের লাইনের অর্ধেক আঁকুন।

‖O

পদক্ষেপটি সম্পূর্ণ করতে প্রতিফলিত করুন।

প্রতিটি পুনরাবৃত্তির ফলাফল নিম্নরূপ:

---

|   |
+---+
|   |

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

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

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

যদি আপনি অবাক হন যে 5-তম স্তরটি Hকেমন দেখায়, দ্রুত জুম-আউট এক নজরে: i.imgur.com/EGapcrS.png
পল


0

পার্ল 6 , 118 বাইট

{map ->\y{map {' |-+'.comb[:2[map {$^b%%1*$b&&6>=$^a/($b+&-$b)%8>=2},$^x/¾,y/2,y,$x/3-$_]]},2..^$_*6},2..^$_*4}o*R**2

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

0-ইন্ডেক্স। 2D বর্ণের অ্যারে প্রদান করে। মূল ধারণাটি হ'ল অভিব্যক্তি

b = y & -y   // Isolate lowest one bit
b <= x % (4*b) <= 3*b

নিদর্শন উত্পন্ন

--- --- --- ---
 -----   ----- 
--- --- --- ---
   ---------   
--- --- --- ---
 -----   ----- 
--- --- --- ---

ব্যাখ্যা

{ ... }o*R**2  # Feed $_=2**$n into block
map ->\y{ ... },2..^$_*4  # Map y=2..2**n*4-1
map { ... },2..^$_*6      # Map $x=2..2**n*6-1
' |-+'.comb[:2[ ... ]]    # Choose char depending on base-2 number from two Bools
map { ... }  # Map coordinates to Bool
  # Horizontal lines
  ,$^x  # Modulo 8*¾=6
  ,y/2    # Skip every second row
  # Vertical lines
  ,y      # Modulo 8
  ,$x/3   # Skip every third column
   -$_    # Empty middle column
# Map using expression
$^b%%1*$b&&  # Return 0 if $b is zero or has fractional part
6>=$^a/($b+&-$b)%8>=2  # Pattern with modulo 8
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.