একটি ট্রিমোট বৃদ্ধি!


12

এটি আমার বন্ধু থমাস। তিনি অর্ধেক গাছ, অর্ধেক ইমোটিকন।

|    |
| :D |
|    |

সে নিঃসঙ্গ। আসুন ওকে কিছু বন্ধু বানাও!


ইনপুট হিসেবে একটি টেক্সট-ভিত্তিক ইমোটিকন দেওয়া (যেমন ಠ_ಠ, :P, >_>, না 😀, 🤓অথবা 🐦), আউটপুট সংশ্লিষ্ট treemote।

একটি ট্রিমোটের দৈর্ঘ্য হ'ল এটি কতগুলি অক্ষর দীর্ঘ হয় (মূলত স্ট্রিংগুলির জন্য সর্বাধিক বিল্টিন দৈর্ঘ্যের ফাংশন)। সুতরাং ಠ_ಠদৈর্ঘ্য 3 হয়েছে।

দৈর্ঘ্যের একটি ট্রিমোটের বাক্য গঠনটি nনিম্নরূপ:

|< 2+n spaces>| * ceil(n/2)
| <emote> | (note the spaces)
|< 2+n spaces>| * ceil(n/2)

সুতরাং 3 দৈর্ঘ্যের যে কোনও ট্রিমোট দেখতে পাবেন:

|     |
|     |
| ಠ_ಠ |
|     |
|     |

তার ceil(n/2)দু'পাশে নিউলাইন বিচ্ছিন্ন ট্রাঙ্ক বিভাগ রয়েছে, প্রত্যেকটির 2 + nভিতরে ফাঁকা জায়গা রয়েছে।

চ্যালেঞ্জ: পাঠ্য-ভিত্তিক ইমোটিকন দেওয়া, সংশ্লিষ্ট ট্রিমোট আউটপুট।


অন্যান্য নিয়ম:

  • এটি , যার অর্থ আমি আপনাকে শর্ট কোড লিখতে চাই।
  • স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
  • আপনার ভাষা যদি সেগুলি পরিচালনা করতে না পারে তবে আপনাকে অবশ্যই অ-এস্কি অক্ষর সমর্থন করতে হবে।

পরীক্ষার কেস:

^_^

|     |
|     |
| ^_^ |
|     |
|     |

\o/

|     |
|     |
| \o/ |
|     |
|     |


(✿◠‿◠)

|        |
|        |
|        |
| (✿◠‿◠) |
|        |
|        |
|        |


D:

|    |
| D: |
|    |


( ͡° ͜ʖ ͡°)


|             |
|             |
|             |
|             |
|             |
|             |
| ( ͡° ͜ʖ ͡°) |
|             |
|             |
|             |
|             |
|             |
|             |

পেছনের নতুন লাইনের অনুমতি আছে?
আর কাপ,

আমরা ধরে নিই যে 1-চর ইমোটিকনগুলির অস্তিত্ব নেই?
অ্যাডম

"পাঠ্য-ভিত্তিক ইমোটিকন" দ্বারা আপনি কি এসকি ইমোটিকন বোঝাতে চান?
ডাউনগোট

@ ডাউনগোট নং দেখুন ಠ_ಠপরীক্ষা কেস।
আর

6
হতে পারে 3 ছাড়া অন্য দৈর্ঘ্যের সাথে একটি পরীক্ষার কেস যুক্ত করুন ...
সুপারজেডি 224

উত্তর:


4

05 এ বি 1 ই , 27 25 বাইট

কোড:

g©Ìð×"|ÿ|
"®;îש„| ¹s¶®J

ব্যাখ্যা:

g                  # Push the length of the input string.
 ©                 # Copy that to the register.
  Ì                # Increment by 2.
   ð×              # Multiply by spaces.
     "|ÿ|\n"       # ÿ is used for interpolation and push the string "|spaces|\n".
                   #
 ®                 # Retrieve the value from the register.
  ;î               # Divide by 2 and round up.
    ×              # Multiply that by "|spaces|".
     ©             # Copy this into the register.
      „|           # Push the string "| ".
         Â         # Bifurcate, pushing the string and the string reversed.
          ¹s       # Push input and swap.
            ¶      # Push a newline character.
             ®J    # Retrieve the value from the register and join everything in the stack.
                   # Implicitly output this.

ব্যবহার সিপি-1252 এনকোডিং। এটি অনলাইন চেষ্টা করুন!


ইনপুটিং ( ͡° ͜ʖ ͡°)মজার ফলাফল দেয়।
শন ওয়াইল্ড

@ শানউইল্ড হ্যাঁ, এটি একটি অদ্ভুত পরীক্ষার কেস, কারণ এটি ( ͡° ͜ʖ ͡°)নিজেই 11 টি অক্ষর দীর্ঘ তবে এটি 8 টি অক্ষর দীর্ঘ দেখায় looks
আদনান

4

পাইথন 3.5, 76 75 73 বাইট:

( ধন্যবাদ নীল একটি টিপ যা 2 বাইট সংরক্ষিত জন্য! )

def i(n):q=len(n);z=('|'+' '*(2+q)+'|\n')*-(-q//2);print(z+'| '+n+' |\n'+z)

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

এছাড়াও, এখানে একটি নন- কেপটিং পাইথন ২.7.৫ সংস্করণ রয়েছে যেহেতু এটি 87 বাইটে বেশি দীর্ঘ ।

def i(n):q=len(n.decode('utf-8'));z=('|'+' '*(2+q)+'|\n')*-(-q/2);print z+'| '+n+' |\n'+z

এটি কারণ পাইথন 2 এর ডিফল্ট এনকোডিং asciiএবং সুতরাং, 128 ইউনিকোড পয়েন্ট রেঞ্জের বাইরে 1 বাইট ( list('ಠ')ফলন ['\xe0', '\xb2', '\xa0']) হিসাবে অক্ষর characters আমি এর জন্য কেবলমাত্র একমাত্র কাজটিই ভাবতে পারি তা হ'ল প্রথমে ইনপুটটি ডিকোড করেই ব্যবহার করা হবে utf-8, এবং তারপরে এই utf-8ডিকোডড স্ট্রিংয়ের সাহায্যে এগিয়ে যাওয়া ।

অনলাইনে এই পাইথন 2 সংস্করণটি ব্যবহার করে দেখুন! (Ideone)


আপনি চারপাশে পেরেনগুলি থেকে মুক্তি পেতে পারেন (- (কিউ // 2)) 2 বাইটের জন্য। আমি মনে করি আপনি পাইথন ২.7 এ স্যুইচ করে আরও দুটি বাইট সঞ্চয় করতে পারবেন। এটির জন্য দ্বিতীয় / ইন // দরকার হয় না, এবং মুদ্রণ বিবৃতিতে কেবল একটি স্পেস প্রয়োজন।
নীল

@ ব্লু হ্যাঁ, আপনি ঠিক বলেছেন, আমি দ্বিতীয় যুগের প্রথম বন্ধনীটি সরিয়ে ফেলতে পারি। যাইহোক, আমি কি দ্বিতীয় প্রয়োজন /মধ্যে //করতে ছাদের নিচের পিঠ নির্মাণ বিভাজন।
আর কাপ,

যেমনটি আমি বলছিলাম, পাইথনে ২.7 সংখ্যার বিভাগটি 1 /
ব্লু

@ ব্লু ওহ, আমি ধরে নিয়েছি আপনি বলেছিলেন যে পাইথন ৩-তে আমার দরকার নেই Well ঠিক আছে, তাহলে আমি পাইথন ২ এ ফিরে যাব the টিপসটির জন্য ধন্যবাদ! :)
আর কাপ,

@ ব্লু যদি এটি হয় তবে আপনি কীভাবে পাইথন 2 এ ভাসমান বিভাগ করবেন?
আর কাপ,

3

ডায়ালগ এপিএল , 37 34 33 বাইট

{↑'|'{⍺⍵⍺}¨b,(⊂⍵),b←' '/⍨⌈0.5×≢⍵}

ক্রোম ব্যবহারকারীরা: পাদটীকা দেখুন *

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

      f←{↑'|'{⍺⍵⍺}¨b,(⊂⍵),b←' '/⍨⌈0.5×≢⍵}

      f,'☺' ⍝ the , is necessary to create a 1 char string instead of a character scalar
|   |
| ☺ |
|   |
      f':D'
|    |
| :D |
|    |
      f'^_^'
|     |
|     |
| ^_^ |
|     |
|     |

* ক্রোম দুটি বর্ণ ≢⍵(U + 2262, U + 2375) ≢⍵(U + 2261, U + 0338, U + 2375) এর পরিবর্তে ̸≡⍵(U + 0338, U + 2262, U + 2375) হিসাবে ভুলভাবে প্রদর্শন করে, তাই এখানে একটি Chrome এর জন্য সংস্করণ প্রদর্শন করুন:{↑'|'{⍺⍵⍺}¨b,(⊂⍵),b←' '/⍨⌈0.5×̸̸≡⍵}


1
আপনার কোডের মধ্যে ইমোটিকন থাকার জন্য +1
মান কালি

3
আহ, {⍺⍵⍺}¨bইমোটিকনটি হ'ল "এপিএল প্রোগ্রামার তার পঞ্চম কাপ কফির থাম্বস আপ দিচ্ছেন" ”
লিন

2

ভি, 60 57 বাইট

I| A |ByWo=ceil(len(""")/2.0)
 dF.d0kwviWr Yu@-pH@-P

দুর্ভাগ্যক্রমে, V এর গাণিতিক ক্রিয়াকলাপের দিক থেকে কিছুই নেই। ডিভাইড এবং ছাদের নিচের পিঠ নির্মাণ ফাংশন আয়তন বহুলাংশে বাইট গণনা স্ফীত।

যেহেতু এটিতে একগুচ্ছ অদ্ভুত ছাপ ছাপানো রয়েছে, তাই এখানে একটি বিপরীত হেক্সডাম্প রয়েছে:

00000000: 497c 201b 4120 7c1b 4279 576f 123d 6365  I| .A |.ByWo.=ce
00000010: 696c 286c 656e 2822 1222 2229 2f32 2e30  il(len("."")/2.0
00000020: 290d 201b 6446 2e64 306b 7776 6957 7220  ). .dF.d0kwviWr 
00000030: 5975 402d 7048 402d 50                   Yu@-pH@-P

ব্যাখ্যা:

I| A |                                #Add surrounding bars
      B                               #Move back
       yW                             #Yank a word
         o                            #Open a new line
          <C-r>=                      #Evaluate

          <C-r>"                      #Insert the yanked text into our evaluation
ceil(len("      ")/2.0)<cr>           #Evaluate ceil(len(text)/2) and insert it

 dF.                                  #Append a space and delete backward to a (.)
                                      #By default, this will be in register "-
    d0                                #Delete this number into register a
      kw                              #Move up, and forward a word
        viWr                          #Replace the emoticon with spaces
             Yu                       #Yank this line, and undo 
                                      #(so we can get the emoticon back)
               @-p                    #Paste this text "- times.
                  H                   #Move to the beginning
                   @-P                #Paste this text "- times behind the cursor.

গাণিতিক অপারেটর থাকলে কত বাইট হত?
আদনান

@ আদনান এটি বলা শক্ত, যেহেতু তারা ঠিক কেমন তা আমি ঠিক জানি না। আশাবাদীভাবে আমি প্রায় 30 বাইট বলতে পারি?
জেমস

2

Vitsy, 43 বাইট

IV2m3mz4m2m
3mV\D4m
V1+2/\[1m]
' || '
}}ZaO

ব্যাখ্যা:

IV2m3mz4m2m

I            Grab the length of the input string.
 V           Save that value to a global final variable.
  2m         Call the method at line index 2.
    3m       Call the method at line index 3.
      z      Push the entire input to the stack.
       4m    Call the method at line index 4.
         2m  Call the method at line index 2.

3mV\D4m

3m           Call the method at line index 3.
  V          Push the global variable to the stack.
   \D        Duplicate the top item on the stack that many times.
     4m      Call the method at line index 4.

V1+2/\[1m]

V            Push the global variable to the stack.
 1+          Add one to the top value.
             REASONING: We want ceil(V/2), and since repeat commands follow the floor value of repeats, we want ceil(V/2)+.5, so we add one to make this work right.
   2/        Divide by two.
     \[1m]   Call method 1 that top value of the stack times.

' || '

' || '       Push ' || ', the string, to the stack.

}}ZaO

}}           Push the bottom item of the stack to the top twice.
  Z          Output everything in the stack.
   aO        Output a newline.

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

নোট করুন, টিআইও-তে একটি বাগের কারণে, ইউনিকোড অক্ষরগুলির সাথে ইনপুট কাজ করবে না। তাদের পরিবর্তে আপনাকে স্থানীয় সংস্করণ ব্যবহার করতে হবে। ধন্যবাদ, @ ডেনিস!



1

রুবি, 57 বাইট

পূর্ণসংখ্যা বিভাগের কৌশলগুলি ব্যবহার করে এবং রুবির putsফাংশনে কুইর্কসের সুবিধা গ্রহণ করে ।

->e{s=e.size+1;puts k=[?|+' '*-~s+?|]*(s/2),"| #{e} |",k}

1

জাভাস্ক্রিপ্ট ES6, 83 78 বাইট

e=>(a=`| ${" ".repeat(n=e.length)} |
`.repeat(Math.ceil(n/2)))+`| ${e} |
${a}`

আপনার দরকার নেই f=, এটি আপনাকে 2 বাইট সংরক্ষণ করে। eটেমপ্লেটের ভিতরে এবং aবাইরে গিয়ে আরও 2 বাইট সংরক্ষণ করুন । পুনরাবৃত্তিতে 2 যোগ করার পরিবর্তে ফাঁকা স্থান সরিয়ে আরও 2 বাইট সংরক্ষণ করুন। বিভাজনে বিট শিফটিংটি ২ দিয়ে বিভক্ত করে অন্য একটি গুচ্ছ সংরক্ষণ করুন
নীল

আমি মনে করি না এটি কাজ করে, এটি কেবল পুনরাবৃত্তির উত্স কোড প্রিন্ট করার চেষ্টা করে
বুলিন্ট

আবার চেষ্টা করুন, আমি এটি @ বুলিন্ট
কনর ওব্রায়েন

1

> <> , 103 বাইট

i:0(?\
}$&1[\~rl:::2%+*:2,
1-:?!\" "$
]{\  \~
?!\$}1-:
~&\
?!\l$:@-[l2)
~]\
}}\" || "
?!\ol
8.>]l?!;ao2

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

এই সমাধানটি প্রতিটি রেখার সমন্বিত পর্যবেক্ষণের ভিত্তিতে তৈরি হয় | <x> |, <x>মাঝের লাইনের প্যাটার্নটি কোথায় এবং অন্যান্য লাইনে একই সংখ্যক স্পেস রয়েছে।

nএসটিডিআইএন থেকে ইনপুট (দৈর্ঘ্য ) পড়ার পরে , প্রোগ্রামটি n*(n+(n%2))স্পেসগুলিকে ঠেলে দেয় । স্ট্যাকটি তখন প্রায় বার হিসাবে অর্ধেক ঘূর্ণিত হয়। এরপরে, nঅক্ষরগুলি বাদ দিয়ে সমস্ত নতুন স্ট্যাকের দিকে টানা হয়, nফাঁকা ফাঁকা ফাঁকা স্ট্যাকগুলি বা নিজেই প্যাটার্নটি রেখে (কেবল মাঝারি স্ট্যাকের মধ্যে)। আউটপুট পদক্ষেপে, বর্তমান স্ট্যাকের সামগ্রীগুলি মুদ্রিত হয় |এবং তার চারপাশে ঘিরে থাকে |


1

সি, 89 বাইট

f;main(int c,char**a){for(c=strlen(*++a)+1;f<(c|1);)printf("|%*s |\n",c,f++==c/2?*a:"");}

নিশ্চিত না যদিও এটি অ-এসকি ইমোটিকন পরিচালনা করবে কিনা ....


আপনি কি এটি অ-এসকিআই ইমোটিকন দিয়ে পরীক্ষা করতে পারবেন?
আর

চেষ্টা করা এবং ফলাফল ভাল ছিল না - strlenপ্রথম শূন্য বাইট অবধি বাইট গণনা করা হয় এবং ফলস্বরূপ অ-এসকিআই ইমোটিকনগুলি তাদের চেয়ে অনেক বেশি বিস্তৃত হিসাবে বিবেচিত হয়।
আরগায়ার

1

পাওয়ারশেল v3 +, 72 বাইট

param($a)$b=("| "+(" "*($l=$a.length))+" |`n")*($l+1-shr1);"$b| $a |";$b

ইনপুট স্ট্রিং নেয় $a। নির্মান $bহিসাবে (খালি নল-শেষ হয়েছে স্ট্রিং (সঙ্গে $a.lengthমাঝখানে স্পেস) এবং একটি trailing সম্পর্কে newline) পুনরাবৃত্তি (দৈর্ঘ্য + 1 টি ডান এক বিট, অর্থাত্ স্থানান্তরিত, দুই এবং ceiling'd দ্বারা বিভক্ত) বার। তারপরে অনুলিপিগুলি $b, তার নিজস্ব পাইপগুলির সাথে ইনপুট স্ট্রিং এবং অবশেষে $bআবার অনুলিপিগুলি দেয় ।

বিট-শিফট -shrঅপারেটরের জন্য v3 + প্রয়োজন ।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\grow-a-treemote.ps1 '>:-|'
|      |
|      |
| >:-| |
|      |
|      |


PS C:\Tools\Scripts\golfing> .\grow-a-treemote.ps1 '>:`-('
|       |
|       |
|       |
| >:`-( |
|       |
|       |
|       |


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