কোডগলফ রেইনবো: ব্ল্যাক অ্যান্ড হোয়াইটে আঁকুন


12

পরিচিতি:

এখানে চিত্র বর্ণনা লিখুন(উত্স: উইকিপিডিয়া )
যখন আমরা একটি রংধনু দেখি তখন সর্বদা উপরে থেকে নীচে পর্যন্ত রঙ থাকে:
লাল; কমলা; হলুদ; সবুজ; নীল; নীল; বেগুনী

যদি আমরা এই স্বতন্ত্র রিংগুলিতে নজর রাখি তবে লাল রিং অবশ্যই ভায়োলেট রিংয়ের চেয়ে বড়।
তদ্ব্যতীত, একই সাথে দুটি বা এমনকি তিনটি রংধনু রাখাও সম্ভব।

এই সমস্ত মিলিত এই চ্যালেঞ্জটিতে ব্যবহৃত হবে:

চ্যালেঞ্জ:

একটি পূর্ণসংখ্যা দেওয়া হয়েছে n, আউটপুট যা (সম্ভবত একের বেশি) 'রেইনবো' এর অনেকগুলি রিং রয়েছে, যেখানে আমরা vibgyorরঙগুলির জন্য বর্ণগুলি ব্যবহার করব ।

এগুলি কীভাবে উপরের দিকে তৈরি হয় n=1এবং স্পেসিং কীভাবে পরিচালনা করতে হবে তা ( নীচে) দেখুন নীচের পরীক্ষার কেসগুলি দেখুন n=8। আপনি দেখতে পাচ্ছেন যে, পরের রেইনবোটির আংটিটি লাইনে যুক্ত করার আগে উপরে দুটি ফাঁকা স্থান সহ দুটি রেইনবোয়ের মধ্যে একটি স্থান যুক্ত করা হয়েছে।

চ্যালেঞ্জ নিয়ম:

  • আপনাকে VIBGYORছোট হাতের পরিবর্তে মূলধন ব্যবহারের অনুমতি দেওয়া হচ্ছে
  • পৃথক রেইনবোগুলির মধ্যে একটি স্থান থাকা উচিত
  • যতক্ষণ না সত্যিকারের রংধনু (এটি যেখানেই স্ক্রিনে স্থাপন করা হয়েছে) সঠিক হিসাবে যতক্ষণ অগ্রণী এবং / অথবা পিছনের স্থান / নতুন-লাইন অনুমোদিত
  • ইনপুটটি সর্বদা একটি ধনাত্মক পূর্ণসংখ্যার ( >= 1) হবে। আচরণটি যখন অপরিবর্তিত n=0থাকে, এবং প্রোগ্রাম / ফাংশন যা খুশি তা করতে পারে (কিছুই আউটপুট না; এর রংধনু n=1আউটপুট; এলোমেলো আউটপুট; ত্রুটি সহ ব্যর্থ; ইত্যাদি)
  • আপনি চাইলে স্ট্রিংগুলির একটি তালিকা / অ্যারে বা 2 ডি অ্যারে / অক্ষরের তালিকা আউটপুট করার অনুমতি পাবেন (আপনি টিআইও পাদলেখের আসল সুন্দর-প্রিন্টিং কোড যুক্ত করতে পারেন)।
  • আউটপুটগুলি রামধনুদের চেয়ে মায়ান মন্দিরের মতো দেখায় এই বিষয়টি উপেক্ষা করুন .. xD

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করা অত্যন্ত প্রস্তাবিত।

পরীক্ষার কেস (প্রথম n=1মাধ্যমে n=10এবং n=25):

1:
 vvv
v   v

2:
  iii
 ivvvi
iv   vi

3:
   bbb
  biiib
 bivvvib
biv   vib

4:
    ggg
   gbbbg
  gbiiibg
 gbivvvibg
gbiv   vibg

5:
     yyy
    ygggy
   ygbbbgy
  ygbiiibgy
 ygbivvvibgy
ygbiv   vibgy

6:
      ooo
     oyyyo
    oygggyo
   oygbbbgyo
  oygbiiibgyo
 oygbivvvibgyo
oygbiv   vibgyo

7:
       rrr
      rooor
     royyyor
    roygggyor
   roygbbbgyor
  roygbiiibgyor
 roygbivvvibgyor
roygbiv   vibgyor

8:
         vvv
        v   v
       v rrr v
      v rooor v
     v royyyor v
    v roygggyor v
   v roygbbbgyor v
  v roygbiiibgyor v
 v roygbivvvibgyor v
v roygbiv   vibgyor v

9:
          iii
         ivvvi
        iv   vi
       iv rrr vi
      iv rooor vi
     iv royyyor vi
    iv roygggyor vi
   iv roygbbbgyor vi
  iv roygbiiibgyor vi
 iv roygbivvvibgyor vi
iv roygbiv   vibgyor vi

10:
           bbb
          biiib
         bivvvib
        biv   vib
       biv rrr vib
      biv rooor vib
     biv royyyor vib
    biv roygggyor vib
   biv roygbbbgyor vib
  biv roygbiiibgyor vib
 biv roygbivvvibgyor vib
biv roygbiv   vibgyor vib

25:
                            ggg
                           gbbbg
                          gbiiibg
                         gbivvvibg
                        gbiv   vibg
                       gbiv rrr vibg
                      gbiv rooor vibg
                     gbiv royyyor vibg
                    gbiv roygggyor vibg
                   gbiv roygbbbgyor vibg
                  gbiv roygbiiibgyor vibg
                 gbiv roygbivvvibgyor vibg
                gbiv roygbiv   vibgyor vibg
               gbiv roygbiv rrr vibgyor vibg
              gbiv roygbiv rooor vibgyor vibg
             gbiv roygbiv royyyor vibgyor vibg
            gbiv roygbiv roygggyor vibgyor vibg
           gbiv roygbiv roygbbbgyor vibgyor vibg
          gbiv roygbiv roygbiiibgyor vibgyor vibg
         gbiv roygbiv roygbivvvibgyor vibgyor vibg
        gbiv roygbiv roygbiv   vibgyor vibgyor vibg
       gbiv roygbiv roygbiv rrr vibgyor vibgyor vibg
      gbiv roygbiv roygbiv rooor vibgyor vibgyor vibg
     gbiv roygbiv roygbiv royyyor vibgyor vibgyor vibg
    gbiv roygbiv roygbiv roygggyor vibgyor vibgyor vibg
   gbiv roygbiv roygbiv roygbbbgyor vibgyor vibgyor vibg
  gbiv roygbiv roygbiv roygbiiibgyor vibgyor vibgyor vibg
 gbiv roygbiv roygbiv roygbivvvibgyor vibgyor vibgyor vibg
gbiv roygbiv roygbiv roygbiv   vibgyor vibgyor vibgyor vibg

3
হতে পারে আপনি এটি জানেন এবং এটি নকশা অনুসারে (আমি জানি যে রেইনবোগুলি রম্বস বা এসকিও নয়, এবং উচ্চতর আদেশের অবস্থানগুলি আরও জটিল হয়ে ওঠে), তবে ২ য় রংধনুতে রঙগুলি কি বিপরীত হয় না?
ক্রিস এম

1
@ ক্রিসম আহ, আপনি সত্যিই ঠিক বলেছেন। দুই রংধনু সঙ্গে দ্বিতীয় প্রকৃতপক্ষে বিপরীত হয় , কিন্তু সঙ্গে তিন শুধুমাত্র বাইরের বিপরীত হয় এবং তার মধ্যে চারটি সঙ্গে উভয় বাইরের বিপরীত হয়। আহ্, এখনই এটি পরিবর্তন করতে কিছুটা দেরি। সম্ভবত আমি এটির পরে তৃতীয় সম্পর্কিত চ্যালেঞ্জগুলি নিয়ে ভাবব। :)
কেভিন ক্রুইজসেন


ওহ দুর্দান্ত, চমৎকার একটি: ¬)
ক্রিস এম

উত্তর:




3

05AB1E , 32 31 23 বাইট

.•VvÈ©•¹∍¬„ v:Rηε¬ý}.c

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

-1 কেভিন ক্রুইজসেনকে এবং -8 আদনানকে ধন্যবাদ


ব্যাখ্যা (স্ট্যাক উদাহরণ w / ইনপুট 3):

.•VvÈ©•                  # Push 'aibgyor'           | ['aibgyor']
       ¹∍                # Extend to input length.  | ['aib']
         ¬               # Push head.               | ['aib','a']
          „ v:           # Replace with ' v'.       | [' vib']
              R          # Reverse.                 | ['biv ']
               η         # Prefixes.                | ['b', 'bi', 'biv', 'biv ']
                ε   }    # For each....             | []
                 ¬ý     # Bifurcate, join by head. | ['b','b']       ->    ['bbb']
                                                    | ['bi','ib']     ->   ['biiib']
                                                    | ['biv','vib']   ->  ['bivvvib']
                                                    | ['biv ',' vib'] -> ['biv   vib']
                     .c # Center the result.        | Expected output.

1
"vibgyor"1 বাইট টু গল্ফ করা যায় .•2Bãθ(•। ( এখানে এটা জন্য ব্যাখ্যা "এ অভিধান? কিভাবে কম্প্রেস স্ট্রিং অংশ না অধ্যায়।") উপরন্তু, „vr…v r:ð«থেকে golfed যাবে 'v„v .:। তাই 28 বাইট । ভাল উত্তর যদিও, আমার কাছ থেকে +1।
কেভিন ক্রুইজসেন

2
@ কেভিন ক্রুজসেন ওহ, আমি স্ট্রিং কমপ্রেশন সম্পর্কে সমস্ত জানি - আমি ঠিক বুঝতে পেরেছি (সাধারণত ছোট ছোট স্ট্রিংয়ের ক্ষেত্রে এটি হয়) যে 3-বাইট ব্লাট .••কোনও বাইট সংরক্ষণ করতে পারে না। ফিগারস এক সময় আমি আসলে চেক করবেন না সময় এটি xD বাইট সংরক্ষণ করবে। ভাল ক্যাচ
ম্যাজিক অক্টোপাস উরন

3
23 বাইটের জন্য:.•VvÈ©•¹∍¬„ v:Rηε¬ý}.c
আদনান

1
@ আদনান যথেষ্ট ন্যায্য, আয়নাটির অভাব এটিকে আমার চোখে একটি উল্লেখযোগ্য অবাধ্যর হিসাবে তোলে (যদিও এবং আমি সন্দেহ করেছিলাম যে আমি নিজেই সেখানে পৌঁছেছি: পি)।
ম্যাজিক অক্টোপাস উরান

1
@ আদনানও ¬ýবুদ্ধিমান ... জিজ ... আপনি অন্যরকম ভাবেন এবং এটি দুর্দান্ত।
ম্যাজিক অক্টোপাস আরন

3

ক্যানভাস , 29 28 26 বাইট

7÷U+{ <ibgyor@¹×/n}⇵K2*∔─↶

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

ব্যাখ্যা:

7÷U+                          ceil(input/7) + input
    {             }         for n in 1..the above
      <ibgyor@                in the string " <ibgyor", pick the nth character
              ¹×              repeat n times
                /             create a diagonal of that
                 n            and overlap the top 2 stack items (the 1st time around this does nothing, leaving an item for the next iterations)
                   ⇵        reverse the result vertically
                    K       take off the last line (e.g. " <ibgyor <ib")
                     2*     repeat that vertically twice
                       ∔    and append that back to the diagonals
                        ─   palindromize vertically
                         ↶  and rotate 90° anti-clockwise. This rotates "<" to "v"

25 24 22 বাইটগুলি স্থির করার পরে যে আউটপুট দৈর্ঘ্যের ইনপুট দৈর্ঘ্যের চেয়ে বড় হয় এবং 10 তম বারের মতো স্থির করা উচিত


কৌতূহলের বাইরে, কেন vপাশের রাস্তা ( <)? কি vইতিমধ্যে ক্যানভাস মধ্যে একটি সংরক্ষিত কীওয়ার্ডটি তাহলে এত দিন কেন ব্যবহার করবেন <যে বিপরীত শব্দ পরিবর্তে?
কেভিন ক্রুইজসেন

1
অক্ষরগুলি উল্লম্বভাবে ব্যবহার করা হয় এবং তারপরে ঘোরানো হয় এবং ক্যানভাস <90v
ডিগ্রিবিহীন

আহ ঠিক আছে, সুতরাং আপনি যদি vএখানে ব্যবহার করতে পারতেন , এবং আপনি এটি 90 ডিগ্রি ঘড়ির কাঁটার বিপরীতে ঘোরান, এটি >পরিবর্তে হয়ে যায় । আমি দেখি. : ডি
কেভিন ক্রুইজসেন

@KevinCruijssen আছে চাই অন্যান্য পরিণতি খুব
dzaima

আহ, তোমারও কি কোথাও আয়না আছে? আমি ক্যানভাস টিবিএইচ পড়তে পারি না, তাই আমি কোডটির ব্যাখ্যাটির অপেক্ষায় রয়েছি। ;)
কেভিন ক্রুইজসেন


3

ডায়ালগ এপিএল , 41 39 38 বাইট

↑{⌽(⌽,⊃,A↑⊢)⍵↑A' vibgyor'}¨-⍳A←⌈⎕×8÷7

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

অন্যদের সাথে একই রকম দৃষ্টিভঙ্গি: A←⌈⎕×8÷7রংধনুটির উচ্চতা (কেন্দ্রের বাম / ডানদিকে দীর্ঘতম 'অর্ধ সারি'র প্রস্থও ) সন্ধান করে এবং এটি Aপরবর্তী ব্যবহারের জন্য ¨-⍳নির্ধারিত করে, যখন মানগুলি ১.২ দ্বারা পুনরাবৃত্তি করে, এগুলি ব্যবহার করার সাথে সাথে সঠিক দিকটিতে নির্বাচন করতে অবহেলা করা

A⍴' vibgyor'একটি 'অর্ধ সারি' উত্পন্ন ⍵↑করে এবং সঠিক দৈর্ঘ্যের সাবস্ট্রিং নির্বাচন করে। (⌽,⊃,A↑⊢)বিপরীতে সম্পূর্ণ সারি তৈরি করে (যা করতে কম অক্ষর লাগে), বিপরীত অর্ধ সারি ( ) দিয়ে শুরু করে , তারপরে অর্ধ সারির স্ট্রিং ( ) এর শুরু থেকে নেওয়া কেন্দ্রীয় অক্ষর এবং শেষ পর্যন্ত অর্ধ সারির ডান প্যাডেড সংস্করণ ( A↑⊢)। চূড়ান্তটি সারিটি সঠিক ওরিয়েন্টেশনে পরিবর্তিত করে এবং সারিগুলির ভেক্টরকে 2 ডি অ্যারে রূপান্তর করে।

সম্পাদনা: -২ ধন্যবাদ জাজিমা

সম্পাদনা করুন: -1 এনএনজি ধন্যবাদ


আপনি এর ⍕⍪সাথে প্রতিস্থাপন করতে পারেন - 2 ডি বর্ণের অ্যারে আউটপুট দেওয়ার অনুমতি রয়েছে
ডিজাইমা


1+÷7->8÷7
ngn


2

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

↶≔… vibgyor⁺²÷×⁸⊖N⁷θθ⸿Eθ✂θκ‖O←

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

অঙ্কনের দিকটি উপরের দিকে পরিবর্তন করুন।

≔… vibgyor⁺²÷×⁸⊖N⁷θ

রংধনুটির উচ্চতা গণনা করুন এবং আক্ষরিক স্ট্রিংটিকে সেই দৈর্ঘ্যে পুনরাবৃত্তি করুন।

θ⸿

রংধনু কেন্দ্রীয় লাইন মুদ্রণ করুন।

Eθ✂θκ

ক্রমাগত টুকরোগুলি নিয়ে এবং প্রতিটি নিজস্ব "লাইনে" মুদ্রণ করে রংধনুটির ডান অর্ধেক প্রিন্ট করুন।

‖O←

রংধনু সম্পূর্ণ করতে প্রতিফলিত করুন।



2

জেলি , 28 বাইট

:7+‘“ vibgyor”ṁµṫJZz⁶U;"⁸ŒBṚ

একটি পূর্ণসংখ্যার লিঙ্কটি পূর্ণসংখ্যাকে গ্রহণ করে যা অক্ষরের তালিকাগুলির তালিকাকে উত্সাহ দেয়।

এটি অনলাইন চেষ্টা করুন! (পাদলেখগুলি নিউলাইন চরিত্রের সাথে যোগ দেয়)

অথবা পরীক্ষা-স্যুটটি দেখুন

কিভাবে?

:7+‘“ vibgyor”ṁµṫJZz⁶U;"⁸ŒBṚ - Link: integer
:7                           - integer divide by seven (number of full rainbows)
   ‘                         - increment (the input integer)
  +                          - add (gets the number bands)
    “ vibgyor”               - list of characters = " vibgyor"
              ṁ              - mould like the result above (as a range)
               µ             - start a new monadic chain
                 J           - range of length
                ṫ            - tail (vectorises) (gets the suffixes)
                  Z          - transpose
                   z⁶        - transpose with filler space character
                             -   (together these pad with spaces to the right)
                     U       - reverse each
                             -   (now we have the left side of the rainbow upside down)
                        ⁸    - chain's left argument, as right argument of...
                       "     -   zip with:
                      ;      -     concatenation
                             -   (adds the central character)
                         ŒB  - bounce (vectorises at depth 1)
                             -   (reflects each row like [1,2,3,4] -> [1,2,3,4,3,2,1])
                           Ṛ - reverse (turn the rainbow up the right way)

2

আর , 130 বাইট

function(n,k=n%/%7*8+1+n%%7,a=el(strsplit(' vibgyor'/k,'')))for(i in k:1)cat(d<-' '/(i-1),a[c(k:i,i,i:k)],d,sep='','
')
"/"=strrep

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

  • -6 বাইটস @ জাইসি ধন্যবাদ

আপনি 6 বাইট সংরক্ষণ করতে পারেন । এছাড়াও আপনি ভোট দিন করতে মাসের ভাষার জন্য আর এর মনোনয়ন :)
JayCe

@ জায়েসি: ধন্যবাদ! আপডেট এবং upvated!
digEmAl

2

হাস্কেল , 106 113 বাইট

আমি এখনও অন্য পোস্টগুলিতে মন্তব্য করতে পারি না (যথা এটি ) তাই আমাকে পৃথক উত্তর হিসাবে সমাধানটি পোস্ট করতে হবে।

Ovs দ্বারা 7 বাইট দূরে গল্ফড

p x=reverse x++x!!0:x
u m|n<-m+div(m-1)7=[(' '<$[z..n])++p(drop(n-z)$take(n+1)$cycle" vibgyor")|z<-[0..n]]

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

( পুরানো সংস্করণ , 113 বাইট)


চমৎকার উত্তর. আমি হাস্কেলকে চিনি না, তবে কোডটি অন্য হাস্কেলের উত্তর থেকে আলাদা বলে মনে হচ্ছে। পিএস: @ হাসির মন্তব্যে গল্ফ-টিপসের পরে সেই অন্যান্য হাস্কেলের উত্তর আসলে 110 বাইট । নির্বিশেষে, এটি একটি দুর্দান্ত বিকল্প হাস্কেল উত্তর, সুতরাং আমার কাছ থেকে +1।
কেভিন ক্রুইজসেন

1
দেখে মনে হচ্ছে তালিকার বোধগম্যতা এই চ্যালেঞ্জের জন্য ভাল সরঞ্জাম tool আমি ফাংশনের মোট সংখ্যা হ্রাস করে 106 বাইটে আপনার দ্রবণটি গল্ফ করতে সক্ষম হয়েছি । এই পরিবর্তনগুলি মানিয়ে নির্দ্বিধায়।
ovs

2

পাওয়ারশেল , 108 98 89 85 বাইট

param($x)($x+=$x/7-replace'\..*')..0|%{' '*$_+-join(" vibgyor"*$x)[$x..$_+$_+$_..$x]}

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

এই এক এখন বেশ ঠিক আছে। ব্যাঙ্কারের রাউন্ডিংটি এখনও শয়তান এবং আমি কীভাবে একটি নন-বোবাতে যুক্ত হতে পারি তা খুঁজে বের করেছি। আমি অনেক সাফল্য না পাওয়ার জন্য with অফস দিয়ে বানর চেষ্টা করেছি। কথা বললে, যোগ না দিয়ে ফলাফলগুলি বেশ ভাল দেখায়, খানিকটা গন্ধযুক্ত:

         vvv
        v     v
       v   rrr   v
      v   r ooo r   v
     v   r o yyy o r   v
    v   r o y ggg y o r   v
   v   r o y g bbb g y o r   v
  v   r o y g b iii b g y o r   v
 v   r o y g b i vvv i b g y o r   v
v   r o y g b i v     v i b g y o r   v

[ইনট্রি] $ x + = $ x / 7?
mazzy

@ ম্যামজি যা এক্স = 25 এর জন্য ব্যর্থ হয়। আপনাকে
ছাঁটাই

হ্যাঁ. এবং
ছাঁটাই

1
@ মমজি আমি জানি, ছাঁটাই করতে আমার কেবলমাত্র উপায়গুলি হল [গণিত] :: ট্রাঙ্কেট () বা উপরে ব্যবহৃত রেজেক্স ট্রিক। [ইন্টি] the x সংখ্যাটি গোল করে। আপনি যদি আরও ভাল উপায় জানেন তবে আমি সব কান।
ভেস্কাহ

1

পাইথন 2 , 132 131 বাইট

def f(n):
 t=n+n/7;s=('vibgyor '*n)[:t];r=[s[~i:]+t*' 'for i in range(t)]
 for l in zip(*r+3*[' '+s]+r[::-1])[::-1]:print''.join(l)

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


সংরক্ষিত:

  • -1 বাইট, জোনাথন ফ্রেচের জন্য ধন্যবাদ

//পাইথন 2 এ কেন ?
জোনাথন ফ্রেচ


@ ডিজাইমা, হ্যাঁ এখনই স্থির করা উচিত
টিফিল্ড

1

লাল , 153 বাইট

func[n][r: take/last/part append/dup copy"""roygbiv "n l: 9 * n + 8 / 8
repeat i l[print rejoin[t: pad/left take/part copy r i l last t reverse copy t]]]

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

সামান্য আরও পঠনযোগ্য:

f: func[ n ] [
    r: copy ""
    append/dup r "roygbiv " n
    r: take/last/part r l: 9 * n + 8 / 8
    repeat i l [
        print rejoin [ t: pad/left take/part copy r i l
                       last t 
                       reverse copy t ]
    ]
]

1

জাভা (জেডিকে 10) , 184 বাইট

n->{int h=n+n/7,i=h+1,w=i*2+1,j,k=0;var o=new char[i][w];for(;i-->0;o[i][w/2]=o[i][w/2+1])for(j=w/2;j-->0;)o[i][j]=o[i][w+~j]=i<h?j<1?32:o[i+1][j-1]:" vibgyor".charAt(k++%8);return o;}

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

7 এর প্রতিটি একাধিকের জন্য একটি অতিরিক্ত নেতৃস্থানীয় এবং অনুসরণযোগ্য স্থান মুদ্রণ করে।

ব্যাখ্যা

n->{                             // IntFunction
 int h=n+n/7,                    //  Declare that height = n + n/7
     i=h+1,                      //          that index  = h + 1
     w=i*2+1,                    //          that width  = (h+1)*2+1
     j,                          //          j
     k=0;                        //          that k      = 0
 var o=new char[i][w];           //  Declare a 2D char array
 for(;                           //  Loop
   i-->0;                        //    Until i is 0
   o[i][w/2]=o[i][w/2+1]         //    After each run, copy the middle letter.
 )
  for(j=w/2;                     //   Loop on j = w/2
   j-->0;                        //     Until j = 0
  )                              //
   o[i][j]                       //    copy letters to the left side,
    =o[i][w+~j]                  //      and the right side
    =i<h                         //      if it's not the last line
     ?j<1                        //        if it's the first (and last) character
      ?32                        //          set it to a space.
      :o[i+1][j-1]               //          else set it to the previous character on the next line.
     :" vibgyor".charAt(k++%8);  //      else assign the next letter.
 return o;                       //  return everything
}

ক্রেডিট


আপনি পরিবর্তন করে 2 বাইট সংরক্ষণ করতে পারবেন ,w=-~h*2+1,i=h+1করার,i=h+1,w=i*2+1
কেভিন Cruijssen

বাহ, আমার আসলেই মধ্যরাতটি গল্ফ কেটে যাওয়া উচিত নয়! এই জন্য ধন্যবাদ, @ কেভিন ক্রুজসেন! :)
অলিভিয়ার গ্রাগোয়ার

সুপারিশ i-~iপরিবর্তেi*2+1
ceilingcat

1

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

⌡G'5h!M╩EV[Ez ▼>≈<S⌡⌡0`

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

আনপ্যাকড, নিরবচ্ছিন্ন এবং মন্তব্য করা হয়েছে, এটি দেখতে এটির মতো দেখাচ্ছে।

" vibgyor"  string literal
,8*7/^      input * 8 / 7 + 1
:m          repeat literal to that length
|]          get all prefixes
Mr          rectangularize, transpose array of arrays, then reverse
            this is the same as rotating counter-clockwise
m           map over each row with the rest of the program, then implicitly output
            the stack starts with just the row itself
  _h        push the first character of the row
  _r        push the reversed row
  L         wrap the entire stack in a single array

এটি চালান

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