এএসসিআইআই মেমি অ্যারো জেনারেটর


13

বিশেষ উল্লেখ

একটি নম্বর দেওয়া হয়েছে n, একটি ASCII "মেমের তীর" (প্রতীকটির চেয়ে বড়, >) আকারের আউটপুট দিন n

n সর্বদা 0 এর চেয়ে বড় ধনাত্মক পূর্ণসংখ্যার হবে।

উদাহরণ

n = 2

\
 \
 /
/

n = 5

\
 \
  \
   \
    \
    /
   /
  /
 /
/

কোডের উদাহরণ

ক্রিস্টালে লিখিত একটি নমুনা প্রোগ্রাম এখানে দেওয়া হয়েছে যা সঠিক ফলাফল দেয়। এটি হিসাবে চালান ./arrow 10

arrow.cr:

def f(i)
        i.times { |j|
                j.times { print ' ' }
                puts "\\"
        }
        i.times { |j|
                (i-j-1).times { print ' ' }
                puts '/'
        }
end

f(ARGV[0].to_i)

বিধি

  • এটি । সংক্ষিপ্ত উত্তর জেতে। তবে, আমি কোনও উত্তর নির্বাচন করব না, কারণ সংক্ষিপ্ত উত্তরটি সময়ের সাথে সাথে পরিবর্তিত হতে পারে।
  • স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।

1
আপনি কি নিশ্চিত যে এটি কোনও সদৃশ নয় (এটি কি আপনি স্যান্ডবক্স দিয়েছিলেন)? আমি মনে করি এটি হওয়ার সম্ভাবনা রয়েছে তবে এটি অনুসন্ধান করা কিছুটা প্রায় অসম্ভব।
আমার সর্বনাম

1
nশূন্য হতে পারে?
xnor

6
আমি মনে করি এটি সাধারণ প্রতীকটিকে "মেমের তীর" বলা খুব নির্বোধ। তারা অবশ্যই কমেডি শেভরনস ons
ছড়িয়ে ছিটিয়ে


1
@ আর্টেমিসফাউল আমি ভেবেছিলাম তারা আকর্ষণীয় বৃদ্ধি পেয়েছে
dkudriavtsev

উত্তর:






4

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 66 বাইট

n=>new int[n*2].Select((a,b)=>"".PadLeft(b<n?b:n*2+~b)+"\\/"[b/n])

@ সোমোনকে একটি বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে।

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



4

সি 64 মিনি / সি 64 বেসিক (এবং অন্যান্য সিবিএম বেসিক রূপগুলি), 52 টোকেনাইজড বেসিক বাইট ব্যবহার করা হয়েছে

 0INPUTN:N=N-1:FORI=0TON:PRINTTAB(I)"\":NEXT:FORI=NTO0STEP-1:PRINTTAB(I)"/":NEXT

এখানে বিস্তারের জন্য অপ্রকাশিত সংস্করণ:

 0 INPUT N
 1 LET N=N-1
 2 FOR I=0 TO N
 3  PRINT TAB(I);"\"
 4 NEXT I
 5 FOR I=N TO 0 STEP -1
 6  PRINT TAB(I);"/"
 7 NEXT I

Nশূন্যরেখায় লাইন শূন্যের মধ্যে যে সংখ্যাটি প্রবেশ করানো হয় তা হ্রাস হ্রাস হওয়ায় TABকমান্ডটি শূন্য হয়; FOR/NEXTলাইন দুই লুপ চার এবং পাঁচটি মাধ্যমে সাত তারপর আউটপুট উচ্চ এবং নিম্ন অংশ যদি মাধ্যমে memeযথাক্রমে তীর (ক স্থানান্তরিত দ্বারা প্রতিনিধিত্ব Mএবং স্থানান্তরিত Nগ্রাফিক্স মোডে উৎস )

কমোডোর সি 64 মেমি তীর


1
আপনি কি জানেন যে কমোডোর বেসিকটিতে সমস্ত কীওয়ার্ড সংক্ষেপে সংক্ষেপিত হতে পারে? : এখানে একটি লিঙ্ক c64-wiki.com/wiki/BASIC_keyword_abbreviation উদাহরণস্বরূপ, forহতে পারে fO( f- shoft o), printহয় ?ইত্যাদি
gaborsch

1
কোড গল্ফে 52 বাইট বিভ্রান্ত করছে, বাইনারিগুলি গণনা করা হয় না, কেবল উত্স কোড। এটি কিছুটা হ'ল: 0inputn:n=n-1:fOi=0ton:?tA(i)"\":nE:fOi=0ton:?tA(i)"/":nE- এটি 57 বাইট লাগে।
গ্যাবর্স

1
যেমনটি এখানে আলোচনা করা হয়েছে -> কোডগলফ.মেটা.স্ট্যাকেক্সেঞ্জার / প্রশ্নস / ১১৫৫৩ / I আমি ব্যবহৃত টোকেনগুলি গণনা করি কারণ এটি কতটা স্মৃতি ব্যবহৃত হচ্ছে তার প্রতিনিধিত্বমূলক।
শন বেবারস

1
ওহ, আমি এটি জানতাম না। এই সম্পর্কে কোন সিদ্ধান্ত আছে? এমনকি উত্তরও সেখানে গৃহীত হয়নি।
গ্যাবর্স

1
আমার প্রথম কম্পিউটারটি একটি সি 16 ছিল, আমি তার উপর প্রচুর সমাবেশ করেছি, তাই কোনও অপরাধ নয়, আমি কমোডোরকে ভালবাসি। সি 16 এর প্রতি লাইনে বেসিক 3,5, 80 টি অক্ষর ছিল, আমারও রম তালিকা সহ একটি বই ছিল, যাতে টোকেনাইজেশন এবং তালিকা কীভাবে কাজ করে তা আমি ঠিক জানি,
গ্যাবোর্স

4

মারিওল্যাং , 719 677 বাইট

+
+
+
+
+
+         ((((+)+++++)))<
+>======================"
+)++++++)+++++++++++((-[!)
========================#=-
) ![-    <+;)+++)---)++++)<
)=#======"=================
) >)+)+((!
+ "======#
         <))))).(((((((<
 ========">============"
>)+)+((-[!+))        -[!((((((((.)).))))+(-[!)
"========#=============#====================#<
!)                                          <
#==========================================="
                  >(((((.)))>
                  "========<"========
 ![-)).))).(((((((![-    ))+![-((+)+)<((![<
 #================#=========#========"==#="===
 >                                   !  >-!
 "===================================#  "=#

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

এটি প্রত্যাশার চেয়ে শক্ত ছিল ...


4

ব্রেনফাক , 125 বাইট

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

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

++++++++++[->+>+++++++++>+++<<<]>>++>++>    ; Initialize with " \"
,                                           ; Get input
[->                                         ; loop and decrement n 
    [->+<<<.>>]                             ; output number of spaces, copy n
    <<<.                                    ; output \
    <.                                      ; output newline
    >>>>                                    
    >[-<+>]<+                               ; copy copy of n back to original place 
<]
<<[--<<+>>]<<+>>                            ; change "\" to "/"
>>>                             
[                                           ; second loop for bottom half
 -                                          ; decrement n
 [-<+<.>>]                                  ; output n spaces
 <<<<<.>.                                   ; output \ and newline
 >>>[->+<]>                                 ; copy n back
]

4

রুবি , 111 99 77 73 68 64 57 57 বাইট

-12 ধন্যবাদ বাইট বেঞ্জামিন Urquhart চাই, -43 ধন্যবাদ manatwork এবং -2 ধন্যবাদ বাইট মূল্য কালি

->i{s=[];puts (0...i).map{|j|s=(p=' '*j)+?/,*s;p+?\\},s}

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

ব্যাখ্যা:

f=->i{                      # instead of a function, use a lambda
  s=[]                      # needs a helper variable *now*, for scope
  puts(                     # puts takes arbitrary num of args; \n after each
    (0...i).map{|j|         # not from 0 to i but from 0 to i-1 (*three* dots)
      s=(
        p=' '*j             # p will remain in scope inside of .map,
      )
      +?/                   # character literal instead of string
      ,*s                   # essentially appending to the array

      p+?\\                 # p is what's returned by .map, not s!

    },                      # up until here, 1st arg to display
    s                       # NOW, as the *2nd* arg, s is displayed
  )
}

বিকল্প (তবে দীর্ঘ) সমাধান

একটি বন্ধু এই উত্তরটি পড়েন এবং তারপরে আরও কয়েকটি পদ্ধতির সাথে আসতে চেষ্টা করেছিলেন। এগুলি এখানেও রেখে দেওয়া হচ্ছে যাতে তারা বিস্তৃত ইন্টারভেজে হারিয়ে না যায়।

ইনজেকশন এবং আনশিফ্ট, 72 বাইট

->n{puts (0...n).inject([]){|s,i|i=' '*(n-1-i);s.unshift i+?\\;s<<i+?/}}

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

ডাউনটো, ইনজেকশন এবং আনশিফ্ট, 80 বাইট

->n{puts n.downto(1).map{|i|' '*(i-1)}.inject([]){|s,i|s<<i+?/;s.unshift i+?\\}}

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

আকর্ষণীয়, দুটি অ নেস্টেড লুপস, 127 বাইট

->n{
r=->s,c{s[0..-(c+1)],s[-c..-1]=s[c..-1],s[0..c-1];s};
n.times{|i|puts r[' '*n+?\\,n-i]}
n.times{|i|puts r[' '*n+?/,i+1]}
}

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


সেই সাদা জায়গার অনেকটা সরিয়ে দেওয়া যায় না?
বেনজামিন আরউখার্ট

1
হ্যাঁ, মোট 12 বাইট, আপনাকে ধন্যবাদ! এই প্রথম আমি কোনও কোড গল্ফ গেমটিতে কিছু জমা দিয়েছিলাম ...
সিক্সটিফাইভ

তারপরে আপনি রুবিতে গল্ফ করার টিপস বা <সমস্ত ভাষায়> গল্ফ করার টিপস আকর্ষণীয় পেতে পারেন ।
manatwork

আপনি প্যাডিংয়ের জন্য অভ্যন্তরীণ লুপগুলি প্রতিস্থাপন করতে পারেন String#rjust( এটি অনলাইনে চেষ্টা করুন! )
manatwork

এখানে আমি এটি 57 টি অক্ষরে হ্রাস করতে উপরে উল্লিখিত 2 সংগ্রহের কয়েকটি টিপস প্রয়োগ করেছি: এটি অনলাইনে চেষ্টা করুন!
manatwork


3

টি-এসকিউএল কোড, 80 বাইট

DECLARE @ INT=3

,@z INT=0
x:PRINT
space(@-abs(@-@z-.5))+char(92-@z/@*45)SET
@z+=1IF @z<@*2GOTO x

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

টি-এসকিউএল কোয়েরি, 96 বাইট

এই কাজটি অনলাইনে করার জন্য আমাকে কিছু ছোটখাট পরিবর্তন করতে হয়েছিল। একটি সারি শুরুর ফাঁকা স্থানগুলি স্নিপেটে প্রদর্শিত হবে না। আমি পরিবর্তে ascii 160 ব্যবহার করছি। ম্যানেজমেন্ট স্টুডিওতে চলাকালীন, পাঠ্য হিসাবে ফলাফল প্রদর্শন করার জন্য সেটিংস পরিবর্তন করা সম্ভব হয়, যার ফলস্বরূপ এই পোস্ট হওয়া স্ক্রিপ্টটিতে সঠিক স্থান তৈরি হতে পারে।

DECLARE @ INT=3
SELECT space(@-abs(@-number-.5))+char(92-number/@*45)FROM
spt_values WHERE number<@*2and'p'=type

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



2

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

↘N‖M↓

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

↘N

একটি সংখ্যা ইনপুট করুন এবং \সেই দৈর্ঘ্যের এর একটি তির্যক রেখা মুদ্রণ করুন ।

‖M↓

উল্লম্বভাবে রেখাটি প্রতিবিম্বিত করুন।


2

এপিএল (এনএআরএস), 40 টি চর, 80 বাইট

{f←{⍺,⍨⍵⍴' '}⋄⊃('\'f¨k),('/'f¨⌽k←¯1+⍳⍵)}

পরীক্ষা:

  h←{f←{⍺,⍨⍵⍴' '}⋄⊃('\'f¨k),('/'f¨⌽k←¯1+⍳⍵)}
  h 2
\ 
 \
 /
/ 
  h 5
\    
 \   
  \  
   \ 
    \
    /
   / 
  /  
 /   
/    





1

টুইগ, 115 বাইট

স্ট্রিংটি পেছনের দিকে তৈরি করে, শেষে "ফিরে" আসে।

সমস্ত ফলাফল উত্পাদন করতে একটি ম্যাক্রো ব্যবহার করে।

{%macro a(N,s="")%}{%for i in N..1%}{%set s=('%'~i~'s
'~s~'%'~i~'s
')|format('\\','/')%}{%endfor%}{{s}}{%endmacro%}

এই ম্যাক্রোটি একটি ফাইলে থাকতে হবে এবং এর মতো আমদানি করতে হবে:

{% import 'macro.twig' as a %}

{{ a.a(<value>) }}

আপনি এটি চেষ্টা করতে পারেন https://twigfiddle.com/5hzlpz এ ("কাঁচা ফলাফল দেখান" এ ক্লিক করুন)।


1

Haskell, , 52 49 বাইট

-3 বাইট শ্রোতচিলিজম ও'জাইককে ধন্যবাদ

unlines.g
g 0=[]
g n="\\":map(' ':)(g$n-1)++["/"]

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


1
এর g$n-1পরিবর্তে আপনি একটি বাইট সংরক্ষণ করতে পারেন g(n-1)। এছাড়াও আপনি গণনা প্রয়োজন হবে না f=যেহেতু fকখনোই রেফারেন্সড হয়।
অ্যাডহক গার্ফ হান্টার

1

এমএটিএল, 14 13 12 বাইট

Xy92*t45-Pvc

1 লুইস মেন্ডোকে ধন্যবাদ বাইট সংরক্ষণ করেছে

ব্যাখ্যা

        % Implicitly grab the input as an integer
Xy      % Create an identity matrix this size
92*     % Multiply by 92 (ASCII for '\')
t       % Duplicate the matrix
45-     % Subtract 45 from every element yielding 47 (ASCII for '/') on the diagonal
        % and -45 everywhere else
P       % Vertically flip this matrix
v       % Vertically concatenate the two matrices
c       % Convert to characters (negative numbers are replaced with a space)
        % Implicitly display the result

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


লুইস মেন্ডো আপডেট হয়েছে! ধন্যবাদ!
সোয়েভার

1

পাইথন 3 , 90 83 বাইট

lambda n:'\n'.join([' '*i+'\\'for i in range(n)]+[' '*(n+~i)+'/'for i in range(n)])

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

-7 বাইটস @ স্কুইডকে ধন্যবাদ


83 বাইট , তবে আমার মনে হচ্ছে এটি এখনও নিচে যেতে পারে
ইনস্টল করুন মনিকা

1
আমি আশা করি এই সম্ভব ছিল।
আর্টেমিস এখনও


ওহ হ্যাঁ আমি সে সম্পর্কে ভুলে গেছি। আপনি এটি জমা দিতে হবে!
আর্টেমিস এখনও

1

রকস্টার, 133 বাইট

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

F takes N,S
If N is 0
Give back N

Say S+"\"
Let T be S+" "
Let M be N-1
F taking M,T
Say S+"/"

Listen to X
F taking X,""

যেহেতু রকস্টার স্ট্রিং অপারেশনের জন্য বিখ্যাত নয়, তাই এটি করতে তুলনামূলকভাবে প্রচুর কোড লাগে (পুনরাবৃত্তভাবে আরও দীর্ঘতর ছিল)।

তীরের আকারটি ইনপুট হিসাবে নেওয়া হয়।


1

পিএইচপি ,79 63 61 বাইট

function f($x,$s=''){if($x)echo"$s\\
",f($x-1,"$s "),"$s/
";}

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

পিএইচপি মধ্যে পুনরাবৃত্তি।

@ মানটওয়ার্ক দ্বারা -12 বাইটস



@ মান্যাটওয়ার্ক খুব সুন্দর!
640KB

1

\ / \ /> , By৪ বাইট

jp100o
-84*}!o:?!x1
@+:q:p=?x:o~$:0(pa"\/"q?$~}}:
x2-:p$1-y$:0(?
.{suh?!;2

ব্যাখ্যা: (স্টার্ট পয়েন্টের ভিত্তিতে লাইনগুলি ঘোরানো)

jp100o                        //setup
:?!x1-84*}!                   //add leading spaces, loop and decrement until 0
~$:0(pa"\/"q?$~}}:@+:q:p=?x:o //add correct slash, go back to loop or switch sides
$:0(?x2-:p$1-y                //flip direction state or continue to print
{suh?!;2.                     //remove extra data and print stack

1
\/\/> (pronounced wɜrm)ধন্যবাদ, আমি এটি ঘৃণা করি। (জে কে, আমি চেষ্টা করে দেখার অপেক্ষায় আছি)
জো কিং

@ জোকিং হাহাহাহা, আমার হাতাতে আমার অনুপ্রেরণা পরতে হবে। (ধন্যবাদ!)
টর্কেডো




0

সিম্পিম্পেল্পলেট , 100 বাইট

এটি ছিল বেশ মজাদার একটি চ্যালেঞ্জ, তবে ভাষায় কিছু বাগ এটি অনুকূলিতকরণকে শক্ত করে তুলেছিল।

{@set_ argv.0}{@while_}{@callstr_repeat intoS" ",_}{@setO S,"\\\n",O,S,"/\n"}{@incby-1_}{@/}{@echoO}

মূলত, চক্রগুলি মধ্যবর্তী থেকে স্ট্রিংকে কাজ করে পিছনের দিকে মানগুলি অতিক্রম করে।


উত্তরটি কেমন হওয়া উচিত

বাগগুলির কারণে কোডটি সঠিকভাবে ব্যাখ্যা করা যাচ্ছিল না।

কম্পাইলারটিতে কোনও বাগ (86 বাইট) না থাকলে কোডটি এইভাবে হবে:

{@forfrom argv.0to0step-1}{@callrepeat intoS" ",_}{@setO S,"\\
",O,S,"/
"}{@/}{@echoO}

ওহ, ভাল, কমপক্ষে সমাধানটি কাজ করে: এক্স


0

জাভাস্ক্রিপ্ট (নোড.জেএস) , ৪২ বাইট (যদি নতুন লাইনের পিছনে প্রবেশের অনুমতি দেওয়া হয়)

n=>(F=s=>n--?s+`\\
`+F(s+" ")+s+`/
`:"")``

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

জাভাস্ক্রিপ্ট (নোড.জেএস) , 48 46 বাইট

n=>(F=s=>s+`\\
${--n?F(s+" ")+`
`:""}${s}/`)``

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

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