আর্মিস্টাইস ডে চ্যালেঞ্জ


28

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

একটি ইনপুট দেওয়া হয়েছে n, 11/11তার nএকক লম্বা এএসসিআইআই-আর্ট রেন্ডিপুট আউটপুট দেয় । বিশেষত, প্রতিটি 1উল্লম্ব পাইপ ||দ্বারা গঠিত, স্ল্যাশ স্ল্যাশ দ্বারা গঠিত //, এবং প্রতিটি অক্ষর দুটি স্পেস পৃথক পৃথক। নোট করুন যার অর্থ আউটপুট প্রস্থের বিভিন্নতা রয়েছে - উদাহরণস্বরূপ, n=3নীচে দেখুন, স্ল্যাশের "নীচে" কীভাবে 1তার বাম দিকে দুটি ফাঁকা আছে , কিন্তু 1তার ডানদিকে চারটি ফাঁক রয়েছে , যাতে স্ল্যাশের শীর্ষটি রয়েছে যথাযথভাবে লাইনগুলি আপ করা হয় এবং 1এর ডানদিকে থেকে দুটি স্পেস space

n = 1
||  ||  //  ||  ||


n = 2
||  ||   //  ||  ||
||  ||  //   ||  ||


n = 3
||  ||    //  ||  ||
||  ||   //   ||  ||
||  ||  //    ||  ||


n = 4
||  ||     //  ||  ||
||  ||    //   ||  ||
||  ||   //    ||  ||
||  ||  //     ||  ||


n = 5
||  ||      //  ||  ||
||  ||     //   ||  ||
||  ||    //    ||  ||
||  ||   //     ||  ||
||  ||  //      ||  ||

ইত্যাদি।

ইনপুট

একটি একক ধনাত্মক পূর্ণসংখ্যা কোনো সুবিধাজনক বিন্যাসে , n > 0

আউটপুট

11/11উপরোক্ত নিয়ম এবং উদাহরণ অনুসরণ করে একটি ASCII- শিল্প উপস্থাপনা । শীর্ষস্থানীয় / পিছনের নিউলাইনগুলি বা অন্যান্য সাদা স্থান pচ্ছিক, যদি অক্ষরগুলি যথাযথভাবে সরে যায় line

বিধি

  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য। যদি কোনও ফাংশন হয় তবে আপনি আউটপুটটি মুদ্রণের পরিবর্তে ফিরিয়ে দিতে পারেন।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

উত্তর:


4

জেলি , 24 বাইট

⁾| Ḥẋ2µ,Ṛðj
⁶ẋṖ;⁾//ṙḶÇ€Y

TryItOnline!

কিভাবে?

⁾| Ḥẋ2µ,Ṛðj - Link 1, join two "11"s with: middle
⁾|          - string literal: "| "
   Ḥ        - double          "||  "
    ẋ2      - repeat twice    "||  ||  "
      µ     - monadic chain separation
       ,    - pair with
        Ṛ   - reversed       ["||  ||  ","  ||  ||"]
         ð  - dyadic chain separation
          j - join with input "||  ||  middle  ||  ||"

⁶ẋṖ;⁾//ṙḶÇ€Y - Main link: n       e.g. 5
⁶            - literal ' '        ' '
 ẋ           - repeat n times     "     "
  Ṗ          - remove last entry  "    "
   ;         - concatenate with
    ⁾//      - literal "//"       "    //"
        Ḷ    - lowered range(n)   [0,1,2,3,4]
       ṙ     - rotate left        ["    //","   // ","  //  "," //   ","//    "]
         Ç€  - call last link (1) as a monad for €ach
           Y - join with line feeds

21

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

n=>" ".repeat(n).replace(/./g,"||  ||  $'//$`  ||  ||\n")

2
কী ... আমার উত্তরটি ভুলে যাও, এটি বুদ্ধিমান। আমার প্রতি
এককবার

এটা চটচটে। চমৎকার উত্তর.
অ্যাডমবর্কবর্ক

কেউ কি রেজেক্সে $'এবং এর ব্যাখ্যা দিতে পারে $`? আমি এর আগে কখনও দেখিনি এবং আরও ভাল করে বুঝতে এটি পছন্দ করবে।
রবার্ট হিকম্যান

1
@ রবার্টহিকম্যান তারা ম্যাচের পরে এবং তার আগে স্ট্রিংয়ের অংশটি উল্লেখ করে ( $&ম্যাচটি নিজেই হবে)।
নিল

@ নীল, ধন্যবাদ! আপনি প্রতিদিন নতুন কিছু শিখেন :)
রবার্ট হিকম্যান

7

05 এ বি 1 ই , 24 বাইট

<ðׄ//J¹FD"  ||"2׊««,À

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

ব্যাখ্যা

                          # implicit input n
<ð×                       # push n-1 spaces
   „//J                   # join with "//"
       ¹F                 # input times do:
         D                # duplicate top of stack
          "  ||"2×        # push "  ||  ||"
                  Â       # push "||  ||  "
                   Š      # move the top of the stack down 2 places on the stack
                    ««    # concatenate the top 3 elements of the stack
                      ,   # print with newline
                       À  # rotate top of stack left

পূর্ববর্তী 26 বাইট সংস্করণ

F"||  "2שð¹N-<ׄ//ðN×®RJ,

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


2
এটা দ্রুত ছিল!!
অ্যাডমবর্কবার্ক

" "×"//"«.s¦R"|| || "s«vyû}», দেখা যাচ্ছে যে প্যালেন্ড্রোমাইজ করা এখন আরও সুস্পষ্ট কারণের জন্য উপযুক্ত ফিট নয় ... এবং আপনি আমার বাইটোকন্টকে দ্রুত হিট করলেন h
ম্যাজিক অক্টোপাস আরন

6

পার্ল, 45 বাইট

-9 বাইটস @ গ্যাব্রিয়েল বেনামিকে ধন্যবাদ

-nপতাকাটির জন্য 47 বাইট কোড + 1 বাইট ।

say$@="||  "x2,$"x$_,"//",$"x++$.,$@while$_--

-nEপতাকা সহ চালান :

perl -nE 'say$@="||  "x2,$"x$_,"//",$"x++$.,$@while$_--' <<< 5

পরিবর্তন করে 4 বাইট সংরক্ষণ "|| ||"করার "|| "x2এবং তারপর বাঁক (2+$_)মাত্র মধ্যে$_
গ্যাব্রিয়েল Benamy

আমি আপনার কাছে ড্রপ করতে পারেন মনে +( .. )প্রায় $@নিয়োগ। এটি কমপক্ষে আমার কম্পিউটারে কাজ করে।
গ্যাব্রিয়েল বেনামি

@ গ্যাব্রিয়েল বেনামি আমি সত্যিই +( .. )ধন্যবাদ বাদ দিতে পারি । তবে পরিবর্তন করতে পারবেন না "|| ||"করার "|| "x2কারণ আমি মধ্যে দুই শূণ্যস্থান প্রয়োজন ||
দাদা

"|| "পাইপের পরে দুটি স্পেস রয়েছে (এটি কোনও কারণে এখানে সঠিকভাবে উপস্থাপন করা হচ্ছে না), এবং আপনি সেই স্ট্রিংটির অনুলিপি করছেন "|| || "যা থেকে অতিরিক্ত 2 স্পেসের যত্ন নেয়$"x(2+$_)
গ্যাব্রিয়েল বেনামি

@ গ্যাব্রিয়েল বেনামি ওহ ধন্যবাদ, এসই ফর্ম্যাট করা || যখন সেখানে দু'জন ছিল তখন কেবল একটি স্থান দেখায় ।
দাদাকে

5

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

f=(n,i=n)=>i--?`||  ||  ${" ".repeat(i)}//${" ".repeat(n+~i)}  ||  ||
`+f(n,i):""

পুনরাবৃত্তির পন্থা সম্ভবত সংক্ষিপ্ততম হতে পারে না


.map সংস্করণ (88 বাইট):

n=>[...Array(n)].map((_,i)=>`||  ||  ${" ".repeat(n+~i)}//${" ".repeat(i)}  ||  ||`).join`
`

অ্যারে বোঝাপড়া (86 বাইট):

n=>[for(_ of Array(i=n))`||  ||  ${" ".repeat(--i)}//${" ".repeat(n+~i)}  ||  ||`].join`
`

for লুপ সংস্করণ (89 বাইট):

n=>{for(a="",i=n;i--;a+=s+" ".repeat(i+2)+`//${" ".repeat(n-i+1)+s}
`)s="||  ||";return a}

.replace সংস্করণ (85 বাইট):

n=>`||  ||  q  ||  ||
`[r="repeat"](n).replace(/q/g,_=>" "[r](--i)+"//"+" "[r](n+~i),i=n)

4

রেটিনা, 29 বাইট

.+
$* 
.
xx$'//$`  xx¶
x
||  

আমার জাভাস্ক্রিপ্ট সমাধান পোর্ট। পরে $*স্পেস এবং দুটি স্পেস নোট করুন ||


3

ভি , 30 বাইট

4i||  2Bi//  Àé XÀ«ñÄf/é Elx

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

যথারীতি এখানে একটি হেক্সডাম্প রয়েছে:

0000000: 3469 7c7c 2020 1b32 4269 2f2f 2020 1bc0  4i||  .2Bi//  ..
0000010: e920 58c0 abf1 c466 2fe9 2045 6c78       . X....f/. Elx

আমি মনে করি আপনি প্রাথমিক অংশটি এতে পরিবর্তন করতে পারেন 5i|| <esc>3b2r/। আপনি যদিও কিছুটা আলাদা জায়গায় থাকবেন, এবং আমি ভি পড়তে পারি না তাই আমি নিশ্চিত নই যে বিষয়টি গুরুত্বপূর্ণ।
nmjcman101

3

ব্যাচ, 130 বাইট

@set s=xx//  xx
@set l=@for /l %%i in (2,1,%1)do @call
%l% set s=%%s://= //%%
%l%:l
:l
@echo %s:x=^|^|  %
@set s=%s: //=// %

আমার জাভাস্ক্রিপ্ট সমাধানের বন্দর নয়। যেহেতু |ব্যাচগুলিতে কৌশলগুলি পরিচালনা করা শক্ত, তাই আমি xস্থানধারক হিসাবে গুলি ব্যবহার করি এবং আউটপুটগুলিতে তাদের প্রতিস্থাপন করি, এটি সহজেই আমার কোডের আকারও হ্রাস করে। ( কমান্ড লাইনে পাস করা হয়) এর sজন্য কাঙ্ক্ষিত আউটপুটটিতে সেট করে শুরু হয় , এর আসল মানটির জন্য প্রথম লাইনটি পাওয়ার জন্য স্পেসগুলি সন্নিবেশ করানো হয় , তারপরে স্ট্রিং মুদ্রণের মাধ্যমে লুপগুলি প্রতিবার একটি অক্ষর দ্বারা বাম স্ল্যাশ স্থানান্তরিত করে।n=1nn


3

বেকন , 71 বাইট

এক লাইনে একটি সম্পূর্ণ বেসিক প্রোগ্রাম।

INPUT n:FOR x=1 TO n:?"||  ||",SPC$(n-x+2),"//",SPC$(x+1),"||  ||":NEXT

নিস! স্থানটি সরিয়ে নেওয়া কি সম্ভব 1 TO?
ডিএলস্ক

3

কমন লিস্প, 216 বাইট

আমি ব্যাট থেকে সরাসরি জানাতে যাচ্ছি যে এটি চ্যালেঞ্জের একটি ভয়াবহ সমাধান। তবুও, এটি কাজ করে, এবং আমি ক্লান্ত হয়ে পড়েছি।

(defun arm (n) (format t "~{||  || ~v,,,vA//~v,,,vA ||  ||~%~}" (butlast (butlast (butlast (butlast (butlast (butlast (loop for i from 1 to (+ n 1) append `(,(- (+ n 1) i) #\Space #\Space ,i #\Space #\Space))))))))))

ব্যবহার:

* (arm 4)
||  ||     //  ||  ||
||  ||    //   ||  ||
||  ||   //    ||  ||
||  ||  //     ||  ||

কোনও কারণে, বুদ্ধিমান কিছু করার পরিবর্তে, আমি formatকলটির অভ্যন্তরে একটি লুপ নিয়ে এটির কাছে যাওয়ার সিদ্ধান্ত নিয়েছি । এই লুপটি শেষের দিকে অন্যান্য প্রকৃত লুপটি নির্মাণের মাধ্যমে ফিরে আসা সামগ্রীর মধ্য দিয়ে শেষ হয় এবং শেষ ছয়টি উপাদান মুছে ফেলা হয় (এভাবে পুনরাবৃত্তি করা হবে butlast)। এই লুপটি নির্মাণ করে ফিরে আসা মানের সামগ্রীতে স্ল্যাশগুলির সামনের জন্য প্যাডিং কাউন্ট, প্যাডিং অক্ষর (স্পেস), স্ল্যাশের পিছনের জন্য প্যাডিং গণনা এবং শেষ পর্যন্ত একই প্যাডিং অক্ষর রয়েছে।

আমি বরং লিস্পে নতুন, এবং আমি বুঝতে পারি যে এখানে অবশ্যই উন্নতির জন্য অনেক জায়গা আছে।


আপনার সমাধানটি গল্ফ করার চেষ্টা করা উচিত (অবিরত শ্বেতক্ষেত্রটি বাদ দেওয়া, শনাক্তকরণ শনাক্তকারী)
বিড়াল

পিপিসিজিতে আপনাকে স্বাগতম!
অ্যাডমবর্কবার্ক

3

পাইথন 2, 76 75 71 বাইট

এখনও একটি সংক্ষিপ্ত সংস্করণে কাজ করা, খুব খারাপ না যদিও।

n=input()
k='||  ||'
for i in range(n):print k,(n-i)*' '+'//'+' '*-~i,k

একটি ত্রুটি ধরার জন্য mbomb007 ধন্যবাদ!


1 বাইট সংক্ষিপ্ত:x='|| '*2;print x+(n-i)*' '+'//'+' '*i+x[::-1]
mbomb007

@ mbomb007 আপনার 11 টি দশকের মধ্যে দুটি স্পেস দরকার, এটি 1 টি নয় That এটি সমান করে তুলবে।
কেড

এটি কেবল এসই এলোমেলো করছে। এটি এখনও একটি বাইট সংক্ষিপ্ত। repl.it/EViJ
mbomb007

@ mbomb007 সেই repl.it পৃষ্ঠা অনুসারে //শেষ সারিতে তিনটি স্পেস আগে এবং //প্রথম সারিতে দুটি স্পেস থাকবে । উভয় ক্ষেত্রে এটি দুটি স্পেস হওয়া উচিত।
কেদ

তারপরে আপনার বর্তমান প্রোগ্রামটি ভুল, কারণ এটি আপনার কাজটিই করে।
mbomb007

2

আর, 86 বাইট

কেবল একটি সরল forলুপ পদ্ধতির:

x="||  ||";n=scan();for(i in 1:n)cat(x,rep(" ",2+n-i),"//",rep(" ",1+i),x,"\n",sep="")

2

রেটিনা , 40 বাইট

.+
x $&$* //  x
;{:`x
||  ||
   //
  // 

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

ব্যাখ্যা

.+
x $&$* //  x

এটি ইনপুটটিকে Nরূপান্তরিত করে

x S//  x

যেখানে স্পেসের Sসাথে Nমিল রয়েছে।

;{:`x
||  ||

এখানে দুটি জিনিস ঘটছে। ;{:ইঙ্গিত দেয় যে স্ট্রিং পরিবর্তন করতে ব্যর্থ হওয়া পর্যন্ত এই পর্যায়ে এবং শেষটি একটি লুপে চালানো উচিত। :ইঙ্গিত দেয় যে এই পর্যায়ের ফলাফল প্রতিটি পুনরাবৃত্তির পরে মুদ্রিত করা উচিত এবং ;ইঙ্গিত দেয় যে লুপের চূড়ান্ত ফলাফল (এবং তাই পুরো প্রোগ্রামটির) মুদ্রণ করা উচিত নয় । মঞ্চটি নিজেই প্রথম পুনরাবৃত্তির xসাথে এরগুলি প্রতিস্থাপন করে || ||(এবং এর পরে কিছুই করে না), যাতে এখন আমাদের প্রয়োজনীয় আউটপুটটির প্রথম লাইন থাকে (এবং এটি মুদ্রণ))

   //
  // 

অবশেষে, এটি //একটি চরিত্রকে বামে স্থানান্তরিত করে , শর্ত থাকে যে সেখানে এখনও কমপক্ষে তিনটি ফাঁকা স্থান বাকি রয়েছে //। এরপরে আমরা পূর্বের পর্যায়ে ফিরে আসি (যা এখন কেবলমাত্র বর্তমান লাইনটি মুদ্রণ করে, যেহেতু আর কোনও xগুলি নেই) এবং তারপরে পুনরাবৃত্তি করি।




1

রুবি, 76 74 73 বাইট

x="||  ||";n=gets.to_i;puts (1..n).map{|i|x+" "*(n-i+2)+"//"+" "*(i+1)+x}

একটি ফাংশন হিসাবে এটি সংজ্ঞা গণনা করে 73 72 বাইট নেয় :

def f n,x="||  ||";(1..n).map{|i|x+" "*(n-i+2)+"//"+" "*(i+1)+x}*?\n;end

1

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

$a=read-host;1..$a|%{$s="||  ";$s*2+" "*($a-$_)+"// "+" "*$_+$s*2}

সাইটে স্বাগতম!
ডিজেএমসিএমহেম

@ ডিআরএমসিএমলেক্স কেবল ভাবছিলাম, আমি এই উত্তরটি দেখেছি এবং আপনি যা করেছেন ঠিক তেমনই করতে যাচ্ছি, তবে এটি বলেছিল যে আমি আমার সম্পাদনায় যথেষ্ট পরিবর্তন করি নি। আপনি কিভাবে এটি করতে সক্ষম হন?
nedla2004

@ nedla2004 একবার আপনার 1,000 খ্যাতি হয়ে গেলে, (বা সম্পূর্ণ স্নাতকৃত সাইটের জন্য 2,000) আপনি পুরো সম্পাদনা পুরস্কার পাবেন । ততক্ষণে আপনার সমস্ত সম্পাদনা কমপক্ষে characters টি অক্ষর হতে হবে এবং আরও ব্যবহারকারীদের দ্বারা পর্যালোচনা করা হবে। যেহেতু আমার এক হাজারেরও বেশি প্রতিনিধি রয়েছে, ততক্ষনে আমাকে ছোট সম্পাদনাগুলি জমা দেওয়ার অনুমতি দেওয়া হচ্ছে।
ডিজেএমসিএমহেম

পিপিসিজিতে আপনাকে স্বাগতম! পরিবর্তে কমান্ড-লাইন ইনপুট নিয়ে আপনি একটি দম্পতি বাইট সংরক্ষণ করতে পারেন read-host-param($a)1..$a|%{$s="|| ";$s*2+" "*($a-$_)+"// "+" "*$_+$s*2}
অ্যাডমবর্কবার্ক

আপনাকে স্বাগতম, সম্পাদনা এবং কমান্ড লাইনের পরামর্শের জন্য ধন্যবাদ!
বেন

1

সি #, 150 বাইট

Golfed:

string A(int n){string a="",b= "||  ||";for(int i=0;i<n;i++)a+=b+"  //  ".PadLeft(5+n-i,'\0')+string.Concat(Enumerable.Repeat(" ",i))+b+"\n";return a;

Ungolfed:

public string A(int n)
{
  string a = "", b = "||  ||";
  for (int i = 0; i < n; i++)
    a += b + "  //  ".PadLeft(5 + n - i, '\0') + string.Concat(Enumerable.Repeat(" ", i)) + b + "\n";
  return a;
}

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

Console.WriteLine(new ArmisticeDayChallenge().A(11));

আউটপুট:

||  ||            //  ||  ||
||  ||           //   ||  ||
||  ||          //    ||  ||
||  ||         //     ||  ||
||  ||        //      ||  ||
||  ||       //       ||  ||
||  ||      //        ||  ||
||  ||     //         ||  ||
||  ||    //          ||  ||
||  ||   //           ||  ||
||  ||  //            ||  ||

1

গ্রোভি, 63৩ টি চর / বাইট

এএসসিআইআই আর্ট স্ট্যান্ডার্ড আউটপুটটিতে মুদ্রণের জন্য বেনামি ক্লোজ এবং সাধারণ লুপগুলি ব্যবহার করে গ্রোভির সাথে আমার এই প্রচেষ্টা:

{n->n.times{println'|| '*2+' '*(n-it-1)+'//'+' '*it+' ||'*2}}

আপনি এটি এখানে অনলাইনে চেষ্টা করতে পারেন । কেবল "কনসোলে সম্পাদনা করুন" এবং তারপরে "স্ক্রিপ্ট সম্পাদন করুন" ক্লিক করুন।

একই চেষ্টা করে এবং মুদ্রণের পরিবর্তে একটি স্ট্রিং ফিরিয়ে দিয়ে আমি 71১ বাইটের নিচে নামতে পারিনি:

{n->a='';n.times{a+='|| '*2+' '*(n-it-1)+'//'+' '*it+' ||'*2+'\n'};a}


0

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

a="||  ||"
def m(n):
    for e in range(n):print(a," "*(n-e),"//"," "*(e+1),a)

এখনও ছোট করার চেষ্টা করছি ...


পিপিসিজিতে আপনাকে স্বাগতম! আপনি কি forএকই লাইনে উপরে স্থানান্তর করতে সক্ষম হতে পারেন def? (এই ভালো লেগেছে: def m(n):for e in range(n):print(a," "*(n-e),"//"," "*(e+1),a)) এ ছাড়া, আপনি দুই বাইট প্রতিস্থাপন সংরক্ষণ করতে পারবেন (e+1)সঙ্গে -~e
ETH প্রোডাকশন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.