দ্য জেলহাউসে এখন


18

চ্যালেঞ্জ

প্রদত্ত একটি পূর্ণসংখ্যা দেওয়া n(যেখানে 4<=n<=10**6) ইনপুট হিসাবে একটি ASCII আর্ট "কারাগারের দরজা" তৈরি করে * নীচের উদাহরণ থেকে চিহ্নগুলি ব্যবহার করে n-1প্রশস্ত এবং nউচ্চ অক্ষরগুলি পরিমাপ করুন।


উদাহরণ

╔╦╗
╠╬╣
╠╬╣
╚╩╝

ব্যবহৃত অক্ষরগুলি নিম্নরূপ:

┌───────────────┬─────────┬───────┐
│ Position      │ Symbol  │ Char  │
├───────────────┼─────────┼───────┤
│ Top Left      │    ╔    │ 9556  │
├───────────────┼─────────┼───────┤
│ Top           │    ╦    │ 9574  │
├───────────────┼─────────┼───────┤
│ Top Right     │    ╗    │ 9559  │
├───────────────┼─────────┼───────┤
│ Right         │    ╣    │ 9571  │
├───────────────┼─────────┼───────┤
│ Bottom Right  │    ╝    │ 9565  │
├───────────────┼─────────┼───────┤
│ Bottom        │    ╩    │ 9577  │
├───────────────┼─────────┼───────┤
│ Bottom Left   │    ╚    │ 9562  │
├───────────────┼─────────┼───────┤
│ Left          │    ╠    │ 9568  │
├───────────────┼─────────┼───────┤
│ Inner         │    ╬    │ 9580  │
└───────────────┴─────────┴───────┘

বিধি

  • আপনি যে কোনও যুক্তিসঙ্গত, সুবিধাজনক উপায়ে ইনপুট নিতে পারবেন যতক্ষণ না এটি স্ট্যান্ডার্ড আই / ও বিধি দ্বারা অনুমোদিত
  • এই চ্যালেঞ্জের উদ্দেশ্যে, যে ভাষাগুলিতে "দরজা" তৈরির জন্য ব্যবহৃত চিহ্নগুলিতে বহু-বাইট অক্ষর রয়েছে, সেগুলি প্রতিটি একক বাইট হিসাবে আপনার স্কোরের দিকে গণনা করা যেতে পারে।
  • অন্যান্য সমস্ত অক্ষর (একক- বা বহু-বাইট) সাধারণ হিসাবে গণনা করা উচিত।
  • আউটপুটে কোনও পিছনের স্থান নাও থাকতে পারে তবে একেবারে প্রয়োজনীয় হলে একটি ট্রেলিং নিউলাইন অনুমোদিত।
  • এটি তাই সর্বনিম্ন বাইট গণনা জয়।

পরীক্ষার মামলা

Input: 4
Output:
╔╦╗
╠╬╣
╠╬╣
╚╩╝

Input: 8
Output:
╔╦╦╦╦╦╗
╠╬╬╬╬╬╣
╠╬╬╬╬╬╣
╠╬╬╬╬╬╣
╠╬╬╬╬╬╣
╠╬╬╬╬╬╣
╠╬╬╬╬╬╣
╚╩╩╩╩╩╝

Input: 20
Output:
╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣
╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝

* হ্যাঁ, আমি সচেতন যে যত বড় এটি কারাগারের দরজার মতো কম দেখায়! : ডি


4
আপনি এক্স এবং y উভয় মাত্রা ইনপুট করতে পারলে এটি ভাল হত
বিটা ডেসে

15
আপনার পরামর্শ দেওয়ার জন্য এটি স্যান্ডবক্সে বেশি দীর্ঘ ছিল।
শেগি

আমার প্রোগ্রাম ধারণ করতে পারে এমনকি নালা তার codepage নেই? যদি তা না হয় তবে কি "'Z“ζএক বাইট ব্যয় হিসাবে অনুমোদিত (বা 2)? (9580 টিপুন, ইউনিকোডে রূপান্তর করুন)?
ডিজাইমা

@ ডিজাইমা এই চ্যালেঞ্জের উদ্দেশ্যে, যে ভাষাগুলিতে "দরজা" ব্যবহার করা প্রতীকগুলি একাধিক বাইট নেয়, সেগুলি প্রতিটি স্কোরকে একক বাইট হিসাবে গণনা করা যেতে পারে।
Okx

@ ওকএক্স `╬` - কোনও বাইট পরিমাণে নিন্দনীয় নয়, "'Z“ζএকটি বাইট সমান "╬"
জাভা স্ক্রিপ্টের

উত্তর:


9

জাভা 8, 156 151 148 118 বাইট

n->{String a="╔",b="╠",c="╚";for(int i=n;i-->3;a+="╦",b+="╬")c+="╩";a+="╗\n";for(b+="╣\n";n-->2;)a+=b;return a+c+"╝";}

একটি বন্দর তৈরি করে -30 বাইট @ রজনগুল সি # (.NET কোর) উত্তরটির, আমি 5 বাইট গল্ফ করার পরে।

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

পুরাতন 148 বাইট উত্তর:

n->{String r="╔";int i=n,j;for(;i-->3;r+="╦");r+="╗\n╠";for(i=n;i-->2;r+="╣\n"+(i>2?"╠":"╚"))for(j=n;j-->3;r+="╬");for(;n-->3;r+="╩");return r+"╝";}

-5 বাইট ধন্যবাদ @ রজনগুলকে

ব্যাখ্যা:

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

n->{                   // Method with integer parameter and String return-type
  String r="╔";        //  Result String (starting with the top-left corner)
  int i=n,j;           //  Indexes `i` and `j`
  for(;i-->3;          //  Loop (1) `n`-3 times:
      r+="╦"           //   Append result with top edges
  );                   //  End of loop (1)
  r+="╗\n╠";           //  Append result with the top-right corner, new-line and left edge
  for(i=n;i-->2        //  Loop (2) `n`-2 times
      ;                //     After every iteration:
      r+="╣\n"         //   Append result with right edge and new-line
      +(i>2?"╠":"╚"))  //    + either the left edge or bottom-left corner
    for(j=n;j-->3;     //   Inner loop (3) `n`-3 times:
        r+="╬"         //    Append result with middle section
    );                 //   End of inner loop (3)
                       //  End of loop (2) (implicit / single-line body)
  for(;n-->3;          //  Loop (4) `n`-3 times:
    r+="╩"             //   Append result with bottom edges
  );                   //  End of loop (4)
  return r+"╝";        //  Return result with its bottom-right corner
}                      // End of method

আপনি কি কোনও বাইটগুলিকে হার্ডকোডিংয়ের পরিবর্তে পলায়ন / চর কোড দিয়ে সংরক্ষণ করতে পারেন?
TheLethalCoder

@ দ্য লেথাল কোডার সম্ভবত, তবে যেহেতু চ্যালেঞ্জের বিধি বিধানের রাষ্ট্রটি আমরা প্রতীকগুলি 1 টি বাইট হিসাবে গণনা করতে পারি, সম্ভবত এটি এর চেয়ে সংক্ষিপ্ততর হয় (সুতরাং প্রকৃত 176 এর পরিবর্তে 156 বাইট-কাউন্ট)। তবে চর-কোডগুলি দিয়ে এটি আরও খাটো করার জন্য কিছু বিষয় নির্দ্বিধায় ব্যবহার করুন।
কেভিন ক্রুজসসেন

আহ আমি নিয়মের সেই অংশটি মিস করেছি।
TheLethalCoder

2
( -->) অপারেটরে যাওয়ার জন্য +1 ।
রাজনগুল

1
আপনি যদি ব্যবহার করেন i-->3, i-->2এবং j-->3´ you can save 5 bytes by removing the n- = 3` এবং n+1
রাজনগুল

7

কাঠকয়লা , 34 - 5 = 29 বাইট

A⁻N³γUB╬↓×╠γ╠¶╚×╩γ‖BOγ‖BO↑⁺γ

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

ReflectOverlapOverlap(0)এর সমতুল্য হওয়া উচিত ReflectMirror()তবে পরিবর্তে চারকোল কেবল তার ReflectTransform()পরিবর্তে করে, অন্যথায় এই সমাধানটিও কার্যকর হবে n=3। এখানে একটি কার্যপ্রণালী যা n=338 - 5 = 33 বাইটের জন্য কী হবে তা দেখায় :

A⁻N³γUB╬↓×╠γ╠¶╚×╩γ¿γ‖BOγ‖M‖BO↑⁺γ¹

আরও ভাল, যদি ReflectOverlapOverlap(0)কাজ করা হয় তবে আমি সমর্থন করাতে বিরক্ত করি না n=3, তবে আমি 31 - 4 = 27 বাইটের জন্য এটি করতে পারতাম:

A⁻N³γUB╬↓×╠γ╚×╩γ‖BOγ‖BO↑⁻γ¹

1
হুম, জানতাম না কাঠকয়লা এছাড়াও / আয়না প্রতিফলিত করতে এবং এই ধরনের। " চারকোলের বাইট কাউন্টার কোনও কারণে কাজ করছে না। " চারকোলের বাইট কাউন্টারটি কাজ করছে না কারণ এই চরিত্রগুলি এর কোড-পৃষ্ঠার অংশ নয়? চ্যালেঞ্জের নিয়ম অনুসারে আপনি তাদের 1 টি বাইট হিসাবে গণনা করতে পারেন তবে এটি সত্যই 27
কেভিন ক্রুইজসেন

আপনি কে অপারেটরটি ব্যবহার করেন তার উপর এটি নির্ভর করে। (আমাকে ফিরে যেতে হবে এবং প্রত্যেকবার ডাবল-চেক করতে হবে; তাদের বেশ কয়েকটি রয়েছে এবং এটি বিভ্রান্তিকর হয়ে
নীল

@ নীল ওফস, এটি একটি বাগ, এএএসপি ঠিক করে দেবে। এটি সন্ধানের জন্য ধন্যবাদ!
ASCII- কেবল

@ নীল এছাড়াও কিছু কারণে এটি ভেঙে গেছে যখন এন = 4
এএসসিআইআই-



6

হাস্কেল, 75 বাইট

w i(a:b:c)=a:(b<$[4..i])++c
f n=concat$w(n+1)$w n<$>["╔╦╗\n","╠╬╣\n","╚╩╝"]  

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

ফাংশনটি wএকটি পূর্ণসংখ্যার iএবং একটি তালিকা নেয় যেখানে aপ্রথমটি হয়, bদ্বিতীয় উপাদানটি এবং cবাকী তালিকাগুলি এবং একটি নতুন তালিকা তৈরি করে a, তারপরে i-3অনুলিপিগুলি bঅনুসরণ করে cwপ্রথমে তালিকার প্রতিটি উপাদানটিতে প্রথমে প্রয়োগ করুন ["╔╦╗\n","╠╬╣\n","╚╩╝"]এবং তারপরে ফলাফলের তালিকায় আবার ( iবাড়িয়ে দেওয়া 1)। একটি একক তালিকায় সংঘবদ্ধ হন।


<$ অপারেটর কী? এটা ঠিক >> যুক্তি উল্টানো সঙ্গে?
আনিশ দুর্গ

@ আনিশদুর্গ: <$মূলত : এর Data.Functorএবং এটিকে .োকানো হয়েছে Prelude। এটি প্রায় হিসাবে একই >>a <$ bপ্রতিটি উপাদান প্রতিস্থাপন bসঙ্গে a, যেহেতু b >> aআশা aএকটি তালিকা এবং যোগসূত্র দৈর্ঘ্য হতে bকপি a[1,2] >> "aa"-> "aaaa", "aa" <$ [1,2]-> ["aa","aa"]। নোট: 'x' <$ [1,2]সমান [1,2] >> "x"
নিমি

5

Vim, 29 বাইট

3<C-x>C╔╦╗
╠╬╣
╚╩╝<Esc>h<C-v>kkx@-Pjyy@-p

যেহেতু নিয়ন্ত্রণের অক্ষর রয়েছে তাই এখানে একটি এক্সএক্সডি ডাম্প রয়েছে:

00000000: 3318 43e2 9594 e295 a6e2 9597 0de2 95a0  3.C.............
00000010: e295 ace2 95a3 0de2 959a e295 a9e2 959d  ................
00000020: 1b68 166b 6b78 402d 506a 7979 402d 70    .h.kkx@-Pjyy@-p

এটি অনলাইন চেষ্টা করুন! (ভিজিটর ইন্টারপ্রেটারের কাছে বহিরাগত চরিত্রগুলির সাথে সমস্যা রয়েছে বলে মনে হয়, যাতে সেই লিঙ্কটি আরও জাগতিক ব্যবহার করে))

ব্যাখ্যা

3<C-x>     " Decrement the number by 3
C╔╦╗
╠╬╣
╚╩╝<Esc>   " Cut the number (goes in @- register) and enter the "template"
h<C-v>kkx  " Move to the middle column, highlight and cut it
@-P        " Paste @- copies of the cut column
jyy        " Move to the middle line and copy it
@-p        " Paste @- copies of the copied line

নিশ্চিত করার জন্য: এটি কি কেবলমাত্র টিআইও দোভাষী যা প্রতীকগুলিতে দম বন্ধ করছে?
শেগি

@ শেগি হ্যাঁ, এটি ল্যাটিন -১ সম্পর্কে একটি পাইথন ত্রুটি নিক্ষেপ করেছে, ভিম ত্রুটি নয়। (আমি কেবল ভি পৃষ্ঠাটি ব্যবহার করেছি কারণ টিআইওর একটি সরল ভিম পৃষ্ঠা নেই, এবং আমি মনে করি ভি ল্যাটিন -১ ব্যবহার করে)) আমার মেশিনের ভিমে অক্ষরগুলির সাথে কোনও সমস্যা নেই।
জর্ডান

5

GNU সেড, 74 + 1 = 75 বাইট

-rপতাকা জন্য +1 বাইট । একটি আনরি নম্বর হিসাবে ইনপুট নেয়।

s/1111(1*)/╔╦\1╗\n;\1╠╬\1╣\n╚╩\1╝/
:
s/(.)1/\1\1/
t
s/;([^;\n]+)/\1\n\1/
t

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

ব্যাখ্যা

এটি বেশ সহজ। ধরুন ইনপুটটি 6 (একরকম 111111)। প্রথম লাইনটি চারটি ড্রপ করে 1এবং বাকী ইনপুটটিকে এতে রূপান্তর করে:

╔╦11╗
;11╠╬11╣
╚╩11╝

তৃতীয় লাইনটি একটি লুপে প্রতিটিটিকে এর 1আগে থাকা চরিত্রের সাথে প্রতিস্থাপন করে । এটি আমাদের কলামগুলি তৈরি করে:

╔╦╦1╗
;11╠╬11╣
╚╩11╝

╔╦╦╦╗
;11╠╬11╣
╚╩11╝

...

╔╦╦╦╗
;;;╠╬╬╬╣
╚╩╩╩╝

লক্ষ্য করুন যে এটি অক্ষরটিও নকল করেছে ;। অবশেষে, পঞ্চম লাইনটি, একটি লুপে, প্রতিটি ;অক্ষরের পরিবর্তে রেখার অনুলিপিটি প্রতিস্থাপন করে :

╔╦╦╦╗
;;╠╬╬╬╣
╠╬╬╬╣
╚╩╩╩╝

╔╦╦╦╗
;╠╬╬╬╣
╠╬╬╬╣
╠╬╬╬╣
╚╩╩╩╝

╔╦╦╦╗
╠╬╬╬╣
╠╬╬╬╣
╠╬╬╬╣
╠╬╬╬╣
╚╩╩╩╝

4

জেলি , 33 বাইট

... এটা কি 33? - এটির বাইট স্ট্রিং লিটারালগুলি (কোড পৃষ্ঠা সূচী) থেকে ইউনিকোড অক্ষরে রূপান্তর করতে 5 টির জন্য ব্যয় হয়।

_2µ“€ðБẋ“¡Ø¤“©ßµ‘js3x€2¦€’+⁽"7ỌY

ফলাফল মুদ্রণ একটি সম্পূর্ণ প্রোগ্রাম।

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

কিভাবে?

_2µ“€ðБẋ“¡Ø¤“©ßµ‘js3x€2¦€’+⁽"7ỌY - Main link: n
_2                                - subtract 2
  µ                               - start a new monadic chain with n-2 on the left
   “€ðБ                          - code page indexes [12, 24, 15] (middle row characters)
        ẋ                         - repeat n-2 times (make unexpanded middle rows)
         “¡Ø¤“©ßµ‘                - code page indexes [[0,18,3],[6,21,9]] (top & bottom)
                  j               - join (one list: top + middles + bottom)
                   s3             - split into threes (separate into the unexpanded rows)
                          ’       - decrement n-2 = n-3
                        ¦€        - sparsely apply to €ach:
                       2          -   at index 2
                     x€           -   repeat €ach (expand centre of every row to n-3 chars)
                            ⁽"7   - literal 9556
                           +      - addition (0->9556; 12->9568; etc...)
                               Ọ  - cast to characters (╠; ╔; etc...)
                                Y - join with newlines
                                  - implicit print

@ শেগি - আমি স্ট্রিং লিটারেলের ভিতরে বর্ণগুলি উপস্থাপন করতে 9 বাইট ব্যবহার করছি - এগুলি কোড পৃষ্ঠা সূচক। Yশেষে 5 বাইট আগে +⁽"7Ọএগুলিতে 9556 যোগ করে এবং তারপরে অক্ষরে ক্যাসেট দেয়। তারা কি (5) বিনামূল্যে? আমি মনে করি এটির মতোই আমি ইউনিকোডের অক্ষরগুলি সরাসরি ব্যবহার করতে পারি। (আমি কোড পৃষ্ঠা সূচকগুলির চেয়ে প্রকৃত অক্ষরগুলিও ব্যবহার করতে পারি এবং আরও বাইটের জন্য ম্যাপিং ব্যবহার করতে পারি)।
জোনাথন অ্যালান

নাঃ। আলোচনার পরে, সিদ্ধান্ত নেওয়া হয়েছিল যে কেবল চরটি সর্বদা 1 হিসাবে গণনা করা যেতে পারে, অন্য কোনও উপস্থাপনা নয়।
এরিক আউটগলফার

3

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

n=int(input())-3
print("╔"+"╦"*n+"╗\n"+("╠"+"╬"*n+"╣\n")*-~n+"╚"+"╩"*n+"╝")

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


আপনি এটিকে শুরু করে কিছুটা গল্ফ করতে পারেন n-3:n=int(input())-3;print("╔"+"╦"*n+"╗\n"+("╠"+"╬"*n+"╣\n")*(n+1)+"╚"+"╩"*n+"╝")
কেভিন ক্রুইজসেন

এছাড়াও, n+1সমান -~n
লিকি নুন

3

ডায়ালগ এপিএল, 71 বাইট

{('╔',('╠'⍴⍨⍵-2),'╚'),((⍵-3)\⍪('╦',('╬'⍴⍨⍵-2),'╩')),'╗',('╣'⍴⍨⍵-2),'╝'}

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


আপনি অবশ্যই এটি গল্ফ করতে পারেন। যেমন আপনি সর্বদা (some expr)f Yসঙ্গে প্রতিস্থাপন করতে পারেন Y f⍨ some expr
28 এডম

@ আদম আমি জানি, এটি চলছে, আমি বর্তমানে কম্পিউটারে নেই
উরিল

3

জাপট , 60 52 49 48 36 বাইট

"╔{Uµ3 ç'╦}╗{UÄ ç"
╠{ç'╬}╣"}
╚{ç'╩}╝

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

অন্য সংস্করণ (47 বাইট + -Rপতাকা)

"8{Uµ3 ç'J};{UÄ ç"D{ç'P}G"}>{ç'M}A"c_+9500ÃòU+2

-Rপতাকাটির প্রয়োজন (ইনপুট ক্ষেত্রে যুক্ত)। এটি অনলাইন চেষ্টা করুন!

এটা কিভাবে কাজ করে?

যেহেতু আমি মূলত 'ডোর-ক্যারেক্টারস' এর দাম এক বাইটের বেশি দাম ধরেছিলাম, তাই আমি বুঝতে পেরেছিলাম যে আমি কয়েকটি বাইটগুলি এনকোড করে বাঁচাতে পারি। তারপরে, আমি ক্যারেক্টার কোডগুলি থেকে 9500 বিয়োগ করেছি, যা আমাকে অক্ষরগুলি দিয়ে রেখেছিল 8J; DPG >MA, যার জন্য প্রতিটি প্রতি বাইট ব্যয় হয়। তারপরে, আমি প্রতিটি চরিত্রের কোডে 9500 যোগ করতে পারলাম এবং সব ঠিকঠাক হবে।

 "8{   Uµ 3 ç'J}  ;{   UÄ  ç"D{   ç'P}  G"}  >{   ç'M}  A"c_+9500Ã òU+2
 "8"+((U-=3 ç'J)+";"+((U+1 ç"D"+(Uç'P)+"G")+">"+(Uç'M)+"A"c_+9500} òU+2
 "8"+           +";"+                      +">"+      +"A"              # Take this string of characters
     ((U-=3 ç'J)                                                        # Repeat "J" input - 3 times
                     ((    ç              )                             # Repeat the string
                            "D"+(Uç'P)+"G"                              # "D" + input-3 times "P" + "G"
                       U+1                                              # Input - 2 times
                                                (Uç'M)                  # Repeat "M" input - 3 times
                                                          c_     }      # Take the character code of every character
                                                            +9500       # Add 9500 to it
                                                          c_     }      # And convert it back to a character
                                                                   òU+2 # Split this string on every (input)th character
                                                                        # Print the resulting array, joined with newlines.

ওহ, হ্যাঁ, আপনি ঠিক বলেছেন।
লুক



2

সুইফট, 161 বাইট

let f:(String,Int)->String={String(repeating:$0,count:$1)};var p={i in print("╔\(f("╦",i-3))╗\n\(f("╠\(f("╬",i-3))╣\n",i-2))╚\(f("╩",i-3))╝")}

আন golfed:

let f:(String,Int)->String = {
    String(repeating:$0,count:$1)
}
var p={ i in
    print("╔\(f("╦",i-3))╗\n\(f("╠\(f("╬",i-3))╣\n",i-2))╚\(f("╩",i-3))╝")
}

আপনি এই উত্তরটি এখানে চেষ্টা করে দেখতে পারেন


2

কিউবিআইসি , 78 বাইট

[:-3|X=X+@╦`]?@╔`+X+@╗`[b-2|Y=Z[b-3|Y=Y+@╬`]?@╠`+Y+@╣`}[b-3|W=W+@╩`]?@╚`+W+@╝`

ভাগ্যক্রমে, বাইরে ঘরের দরজাতে ব্যবহৃত সমস্ত চিহ্নগুলি কিউব্যাসিক কোডেজে রয়েছে।

ব্যাখ্যা

            The TOP
[:-3|       FOR a = 1 to n-3 (-1 for the width, -2 for beginning and end)
X=X+@╦`]    Build out X$ with the parts of the middle-top
?@╔`+X+@╗`  Then print that preceded and followed by the corners
┘           Syntactic linebreak

            The MIDDLE
[b-2|       FOR c = 1 to n-2 (all the middle rows)
Y=Z         Reset Y$ to ""
            Build up the middle rows in the same way as the top,
            just with different symbols and once for each middle row
[b-3|Y=Y+@╬`]?@╠`+Y+@╣`
}           Close the FOR loop
            The BOTTOM
            The same as the top, just with different symbols
[b-3|W=W+@╩`]?@╚`+W+@╝`

নমুনা আউটপুট

Command line: 7

╔╦╦╦╦╗
╠╬╬╬╬╣
╠╬╬╬╬╣
╠╬╬╬╬╣
╠╬╬╬╬╣
╠╬╬╬╬╣
╚╩╩╩╩╝

1
এমন ভাষা ব্যবহারের জন্য +1 যা তাদের ডিফল্ট কোড পৃষ্ঠাতে আসলে বাইট অক্ষর হিসাবে থাকে।
জোশুয়া

আপনি কি একটি টিআইও (বা সমমান) যুক্ত করতে পারেন?
শেগি


1
ও আচ্ছা! আমি শেষ পর্যন্ত মনে রাখবেন, আমি প্রতিশ্রুতি! : ডি
শেগি

@ শেগি ভাল, ধারণাটি সম্পর্কে খুব অভ্যস্ত হয়ে উঠবেন না। আমি সবেমাত্র কিউবাসিক চলমান ডসবক্সের একটি কার্যকরী এমস্ক্রিপ্টেন-বিল্ড পেয়েছি। আমি আগামী মাসে
কিউবিআইসির

2

পিএইচপি , 131 বাইট, 113 অক্ষর

for($z=str_split("╔╠╚╦╬╩╗╣╝",3);$i<$a=$argn;)echo str_pad($z[$b=$i++?$i<$a?1:2:0],3*$a-3,$z[$b+3]),$z[$b+6],"\n";

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

পিএইচপি , 133 বাইট, 115 অক্ষর

for(;$i<$a=$argn;)echo str_pad(["╔","╠","╚"][$b=$i++?$i<$a?1:2:0],3*$a-3,["╦","╬","╩"][$b]),["╗","╣","╝"][$b],"\n";

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


2

জাভাস্ক্রিপ্ট (ES6), 86 বাইট

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

n=>(g=i=>--i?`╬╣╠╩╝╚╦╗╔
`[(j=i%n)?!--j+2*!(n-j-2)+3*(i<n)+6*(i>n*n-n):9]+g(i):'')(n*n)

কিভাবে?

আমরা গ্রিডের প্রতিটি প্রান্তে একটি ওজন নির্ধারণ করি: ডানদিকে 1, বাম দিকে 2, নীচে জন্য 3 এবং শীর্ষে 6। ওজনের যোগফলটি ব্যবহার করতে অক্ষরটির সূচক দেয়।

8666667    0 1 2 3 4 5 6 7 8
2000001    ╬ ╣ ╠ ╩ ╝ ╚ ╦ ╗ ╔
2000001
2000001
2000001
2000001
2000001
5333334

ডেমো


2

জাভাস্ক্রিপ্ট (ES6), 80 74 বাইট

n=>`╔${"╦"[a="repeat"](n-=3)}╗${`
╠${"╬"[a](n)}╣`[a](n+1)}
╚${"╩"[a](n)}╝`

আপনি এই 80 বাইট তৈরি করে প্রতিটি বাইট হিসাবে প্রতীকগুলি গণনা করতে পারেন। এবং কয়েকটি বাইট সংরক্ষণের জন্য আপনি টেমপ্লেট লিটারেলের আরও ভাল ব্যবহার করতে সক্ষম হবেন;)
শেগি

আপনি কেবলমাত্র একটি বাইট হিসাবে প্রতীকগুলি গণনা করতে পারেন যদি আপনি কোনও ES6 বাস্তবায়ন পেতে পারেন যা সিপি 437 ইনপুট নেটিভ নেবে।
ব্যবহারকারী 5090812

@ ব্যবহারকারী 5090812, এটি এই চ্যালেঞ্জের জন্য নির্দিষ্ট একটি ভাতা।
শেগি

@ ব্যবহারকারী 5090812 সেই বাস্তবায়ন খুঁজে পাওয়ার দরকার নেই, কারণ চ্যালেঞ্জটি নিয়ম করে বলে " এই চ্যালেঞ্জের উদ্দেশ্যে," দরজা "এর জন্য ব্যবহৃত চিহ্নগুলিতে একাধিক বাইট লাগে এমন ভাষাগুলিতে, তারা প্রতিটি স্কোরকে একক বাইট হিসাবে গণ্য হতে পারে। "সুতরাং এটির 98 এর পরিবর্তে 80 বাইটের বাইট-কাউন্ট রয়েছে (যদি আমি সঠিকভাবে গণনা করি)।
কেভিন ক্রুইজসেন

ঠিক আছে, এটি একটি খারাপ নিয়ম। চরিত্রগুলি সংরক্ষণ করার জন্য আরও ভাল উপায় সন্ধান করার জন্য এটি সমস্ত প্ররোচনা সরিয়ে দেয়।
লুক

2

রুবি, 54 52 বাইট

-2 বাইট Ymbirtt ধন্যবাদ।

->n{?╔+?╦*(n-=3)+"╗
"+(?╠+?╬*n+"╣
")*-~n+?╚+?╩*n+?╝}

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

Ungolfed

এটি অত্যন্ত বিরক্তিকর:

->n{
   ?╔ + ?╦ * (n-=3) + "╗\n" + 
  (?╠ + ?╬ * n      + "╣\n") * -~n + 
   ?╚ + ?╩ * n      + ?╝
}

আপনি (n+1)লিখে কিছুটা ছোট করতে পারেন -~n- অপারেটর অগ্রাধিকার আপনাকে বন্ধনীগুলিও সংরক্ষণ করবে।
ymbirtt

2

জাভা 8, 102 + 101 বাইট

java.util.function.BiFunction<String,Integer,String>r=(c,n)->"".valueOf(new char[n]).replace("\0",c);

n->{n-=3;return "╔"+r.apply("╦",n)+"╗\n"+r.apply('╠'+r.apply("╬",n)+"╣\n",-~n)+"╚"+r.apply("╩",n)+"╝";}

এটি একই দৈর্ঘ্যের আরেকটি স্ট্রিং রিপিটার:

java.util.function.BiFunction<String,Integer,String>r=(c,n)->{String p=c;for(;--n>0;p+=c);return p;}

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


খারাপ নয়, আপনি আমার পদ্ধতির উত্তরটির চেয়েও কম করতে পারেন। সবার আগে আপনি জাভা 7 পদ্ধতিটি ব্যবহার করে এটির পরিবর্তে 78 + 72 বাইটে (মোট 150 টি) কমিয়ে দিতে পারেন BiFunction: n->{n-=3;return"╔"+r("╦",n)+"╗\n"+r("╠"+r("╬",n)+"╣\n",-~n)+"╚"+r("╩",n)+"╝";}এবং String r(String c,int n){return c.valueOf(new char[n]).replace("\0",c);} অনলাইনে চেষ্টা করে দেখুন। এবং দ্বিতীয় পদ্ধতিটিও String r(String c,int n){String r=c;for(;n-->1;r+=c);return r;}(
by৩

সংশোধন, আপনি এটিকে এমনকি 130 বাইটে নামিয়ে আনতে পারেন : n->"╔"+r("╦",n-=3)+"╗\n"+r("╠"+r("╬",n)+"╣\n",-~n)+"╚"+r("╩",n)+"╝"এবং String r(String c,int n){String r=c;for(;n-->1;r+=c);return r;} অনলাইনে এটি ব্যবহার করে দেখুন।
কেভিন ক্রুজসসেন

2

সি # (.নেট কোর) , স্কোর 123 (141 বাইট) স্কোর 118 (136 বাইট)

n=>{string a="╔",b="╠",c="╚";for(int i=3;i++<n;a+="╦",b+="╬")c+="╩";a+="╗\n";for(b+="╣\n";n-->2;)a+=b;return a+c+"╝";}

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

-5 বাইট ধন্যবাদ @ কেভিন ক্রুজসেনকে thanks

ব্যাখ্যা:

n => 
{
    string a = "╔", b = "╠", c = "╚"; //Initialize the first, last and the middle lines with the starting character.
    for (int i = 3; i++ < n;          //Loop n-3 times
        a += "╦", b += "╬")           //Add the middle character to the first and middle line.
        c += "╩";                     //Add the middle character to the last line.
    a += "╗\n";                       //Add the end character to the first line.
    for (b += "╣\n";                  //Add the end character to the first line.
        n-- > 2;)                     //Loop n-2 times.
        a += b;                       //Add the middle line to the first line.
    return a + c + "╝";               //Add the last line and the final character and return.
}

1
ভাল উত্তর, আমার কাছ থেকে +1। আমি জানি এটা অনেক দিন হয়ে গেছে, কিন্তু আপনি পরিবর্তন করে গলফ আরও 5 বাইট করতে b+="╣\n";c+="╝";for(;n-->2;)a+=b;return a+c;};করতে for(b+="╣\n";n-->2;)a+=b;return a+c+"╝";} অনলাইন জন্য এটি ব্যবহার করে দেখুন।
কেভিন ক্রুজসসেন

@ কেভিন ক্রুজসেন: আপনাকে ধন্যবাদ।
রাজনগুল

2

স্ট্যাক্স , 23 বাইট

÷ÅoB↔╒╢Fm|╦a⌐á5µ┐»♫÷d╕Ñ

এটি চালান এবং এটি ডিবাগ করুন

এখানে বর্ণহীন সংস্করণ's মজাদারভাবে, স্ট্যাক্সের জন্য আক্ষরিক অক্ষর ব্যবহার না করা আসলে এটি ছোট কারণ কারণ তাদেরকে আক্ষরিক হিসাবে অন্তর্ভুক্ত করার ফলে উত্স প্যাকিং প্রতিরোধ হবে।

"2Pfj_EQGG]T"!  packed representation of the 9 characters
3/              split into groups of 3
GG              call into trailing program twice
m               print each row
}               trailing program begins here
1|xv\           [1, --x - 1]; x starts as original input
:B              repeat each element corresponding number of times
                effectively, this repeats the internal row of the matrix
M               transpose door; this way it expands the two dimensions

এটি চালান


1

গণিত, 106 বাইট

(T[a_,b_,c_]:=a<>Table[b,#-3]<>c;w=Column;w[{T["╔","╦","╗"],w@Table[T["╠","╬","╣"],#-2],T["╚","╩","╝"]}])&

আপনি কি একটি টিআইও যোগ করতে পারেন (বা সমমানের)?
শেগি

1
এতে যান sandbox.open.wolframcloud.com/app/objects কোড পেস্ট করুন (Ctrl + V), শেষ এবং Shift + এ [8] জুড়তে প্রবেশ
J42161217

প্রতিটি লাইনের মধ্যে একটি অতিরিক্ত লাইন বিরতি রয়েছে বলে মনে হয়, আমি কি আউটপুটি রেকর্ডিংয়ের পরিবর্তে আউটপু রেন্ডারিংয়ে সমস্যা বলে বলব?
শেগি

@ শেগি ওল্ফ্রাম মেঘ সমস্ত চরিত্রকে মজাদার-বিকৃত উপায়ে প্রদর্শন করে যাতে এই জাতীয় কাজগুলি উপস্থাপনের পক্ষে এটি সর্বোত্তম উপায় নয় here কোনও অতিরিক্ত লাইন নেই এবং গণিতের উপর সবকিছু ঠিক আছে বলে মনে হচ্ছে। আপনার পরীক্ষার কেসটি চেক করতে কপি করুন এবং আটকান I আমি করেছি এবং সেগুলি দেখতে অভিন্ন দেখাচ্ছে
J42161217


1

ব্যাচ, 126 বাইট

@set s=
@for /l %%i in (4,1,%1)do @call set s=%%s%%Î
@echo É%s:Î=Ë%»
@for /l %%i in (3,1,%1)do @echo Ì%s%¹
@echo È%s:Î=Ê%¼

সিপি 437 বা সিপি 850 এ কাজ করে। এই কোড পৃষ্ঠাতে এটি দেখতে দেখতে:

@set s=
@for /l %%i in (4,1,%1)do @call set s=%%s%%╬
@echo ╔%s:╬=╦%╗
@for /l %%i in (3,1,%1)do @echo ╠%s%╣
@echo ╚%s:╬=╩%╝

1

রেটিনা , 56 50 বাইট

.+
$*╬╣
^╬╬╬
╠
.?
$_¶
T`╠╬╣`╔╦╗`^.*
T`╠╬╣`╚╩╝`.*¶$

এটি অনলাইন চেষ্টা করুন! A s এর বর্গক্ষেত্র তৈরি করে এবং পরে প্রান্তগুলি ঠিক করে (বিশেষত তিনটি কলম মুছে ফেলা হয় যখন পক্ষগুলি যুক্ত করা হয়)।


1

পাওয়ারশেল , 67 বাইট

'╔'+'╦'*($x=$args[0]-3)+'╗';,('╠'+'╬'*$x+'╣')*($x+1);'╚'+'╩'*$x+'╝'

ইনপুট নেয় $args[0], বিয়োগ করে 3, এতে সংরক্ষণ করে $x, এটি মধ্যম বিভাগের যথাযথ সংখ্যার আউটপুট দেওয়ার জন্য দরজার শীর্ষের নির্মাণে ব্যবহার করে। তারপরে আমরা মাঝারি সারিগুলি আউটপুট করছি, যার মধ্যে আমাদের $x+1রয়েছে। অবশেষে, নীচের সারিটি শীর্ষ সারির অনুরূপ। এগুলির সবগুলি পাইপলাইনে রেখে গেছে, এবং অন্তর্ভুক্ত নিখরচায় Write-Outputউপাদানগুলির মধ্যে একটি নতুন লাইন সন্নিবেশ করায়।

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




আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.