গ্রেট পিরামিড অফ কুইন


11

টাস্কটি একটি মোচড়ের সাথে একটি সহজ কুইন চ্যালেঞ্জ, আপনার পিরামিডের আকারে আপনার উত্স কোডটি আউটপুট করতে হবে। পিরামিডের আকারটি নীচে সংজ্ঞায়িত করা হয়েছে:

       1
      234
     56789
    ABCDEFG
   HIJKLMNOP
  QRSTUVWXYZa
 bcdefghijklmn
......etc......

এই চ্যালেঞ্জের প্রধান সীমাবদ্ধতা হ'ল পিরামিডের ধরণটিকে বাধা না দেওয়ার জন্য আপনার কুইনে অবশ্যই যথেষ্ট পরিমাণে বাইট থাকতে হবে। উদাহরণস্বরূপ, নিম্নলিখিত প্রোগ্রাম দৈর্ঘ্য কাজ করবে:

1-byter: 1st layer of the pyramid (not allowed by definition of a quine).
4-byter: 1st and 2nd layers of the pyramid.
9-byter: 1st, 2nd and 3rd layers of the pyramid.
etc...

সুতরাং, যদি আপনার প্রোগ্রামটি ছিল:

QWERTY

এটি বৈধ হবে না, কারণ এটি এমন ব্যবস্থা করবে:

  Q
 WER
TY

তবে, যদি আপনার প্রোগ্রামটি QWERTYUIO হয়, তবে তা ঠিক থাকবে:

  Q
 WER
TYUIO

বিধি

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

এখানে সর্বনিম্ন সম্ভাব্য স্কোরটি 4 হওয়া উচিত।


মূল কুইনটি কি পিরামিডের আকারে থাকা দরকার, বা কেবল আউটপুটটি তৈরি করা দরকার?
KrystosTheOverlord

আউটপুট, ক্রাইস্টোস ওভারলর্ড, মূল বিষয়টি বিবেচনা করে না। যদি আসলটির ট্যাব বা নিউলাইন থাকে তবে আউটপুটটির আকারটি ধরে রাখতে আপনার আউটপুটেও বাদ দিতে হবে।
ম্যাজিক অক্টোপাস আরন

যদি আউটপুটে অনেকগুলি ট্রেলিং স্পেস / নিউলাইন থাকে তবে এটি কী বৈধ?
Emigna

@ এমিগনা এটি করা উচিত? অন্যরা এই মুহুর্তে না করলে আমি তাতে সমস্যা দেখছি না। এছাড়াও, "একগুচ্ছ" সংজ্ঞায়িত করুন, conক্যমত্য সাধারণত "একটি একক পেছনের নতুন লাইন গ্রহণযোগ্য"?
ম্যাজিক অক্টোপাস আরন

1
আপনার কাছে একটি চ্যালেঞ্জ তৈরি করা উচিত যেখানে আপনার পিরামিডের ফর্ম্যাটে কুইন থাকা দরকার :)।
KrystosTheOverlord

উত্তর:


4

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

"34çs«DJā·<£õK.cJ?"34çs«DJā·<£õK.cJ?

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

যদি trailing characters are allowedআউটপুট শেষে মানে হয় তবে 0"D34çýā·<£.c"D34çýā·<£.c25 বাইটে একটি স্তর ছোট হয়।


34çসমস্ত 05AB1E কুইনের ভিত্তি, তাই না? এছাড়াও, নিশ্চিত হওয়া যায় না যে আমি নতুন রেখার পিছনে আনতে এলোমেলো পরিমাণ সম্পর্কে কীভাবে অনুভব করছি ... আমি কল করতে অন্য কাউকে পছন্দ করব (আদর্শ কী, 1 টি অনুসরণ / পূর্ববর্তীকরণ অনুমোদিত?) যা প্রান্তটি দুর্দান্ত বলে মনে হচ্ছে।
যাদু অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস উর্ন: হ্যাঁ, এটা খুবই সন্দেহজনক। আমি ধরে নিয়েছি আমার সংক্ষিপ্ত সংস্করণটি ঠিক নেই, এজন্যই আমি এটিকে প্রাথমিক প্রোগ্রাম হিসাবে ব্যবহার করি নি, তবে আমার মনে হয়েছিল যে এটি জিজ্ঞাসা করা উচিত কারণ এটি আমার পুরো স্তরটি সংরক্ষণ করবে।
এমিগানা

ডাং, তুমি আমাকে মারতে। এবং পরিবর্তে ā·<আমি ব্যবহার করেছি 9ÅÉ(25 বাইটারে, অনুমান করা নতুন লাইনের কথা
ভাবেনি

@ ম্যাজিক অ্যাক্টপাস ইউরান বিটিডব্লু, অন্য সমস্ত উত্তরগুলির একটি অনুবর্তনযোগ্য নতুন লাইন রয়েছে, সুতরাং এই 36-বাইটার ব্যতীত সমস্তই অবৈধ হবে ..
কেভিন ক্রুইজসেন

4

জাভা 11, 324 256 227 বাইট

v->{var s="v->{vars=%c%s%1$c;for(inti=0;;)System.out.printf(%1$c%%%1$c+(15+i)+%1$cs%%n%1$c,s.format(s,34,s).substring(i*i,++i*i));}///";for(int i=0;;)System.out.printf("%"+(15+i)+"s%n",s.format(s,34,s).substring(i*i,++i*i));}//

-২৯ বাইটস @ জোকিংকে ধন্যবাদ ।

ত্রিভুজটি তৈরি করতে শীর্ষস্থানীয় স্পেস সহ আউটপুট (উল্লেখ্য যে হোয়াইটস্পেস মধ্যে var sএবং int iহয় ট্যাব, স্পেস না।)

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

ব্যাখ্যা:

:

  • var s স্ট্রিংগুলিতে অপরঠিত সোর্স কোড রয়েছে
  • %s এই স্ট্রিংটি নিজের মধ্যে রাখার জন্য ব্যবহৃত হয় s.format(...)
  • %c, %1$cএবং 34ডাবল-কোটগুলি ফর্ম্যাট করতে ব্যবহৃত হয় ( ")
  • %% ফর্ম্যাট করতে ব্যবহৃত হয় %
  • s.format(s,34,s) সব একসাথে রাখে

চ্যালেঞ্জ অংশ:

for(int i=0;;)         // Loop `i` indefinitely upwards from 0
  System.out.printf(   //  Print with format:
    "%"+(15+i)+"s      //   Add leading spaces to make the line length size 15+`i`
                 %n",  //   And include a trailing newline
    s.format(s,34,s).substring(
                       //   And append a substring of the source code-String
       i*i,            //    From index `i` squared
       ++i*i));}       //    To index `i+1` squared

যা পদ্ধতির java.lang.StringIndexOutOfBoundsException: begin 225, end 256, length 226জন্য ত্রুটির সাথে থেমে যায় String#substring(int,int), ফলাফল মুদ্রণের পরে পুনরাবৃত্তি ( যা মেটা অনুসারে ভাল )।


এটি আপনার কোনও সত্যই সংরক্ষণ করে না, তবে s=s.formatপরিবর্তে যখন আপনি
জো কিং

@ জোকিং আহ অবশ্যই। ধন্যবাদ। দুর্ভাগ্যক্রমে আমাকে বাইটস সংরক্ষণ করার জন্য কমপক্ষে 196 (14 2) এ মন্তব্য না করে বেস প্রোগ্রামটি হ্রাস করতে হবে (বা কেবল এটি গল্ফ 225 (15 2) করতে হবে এবং একরকম একটি অদ্ভুত সংখ্যক বাইট পেতে কাজ করতে হবে)। এটি মন্তব্য ছাড়াই বর্তমানে 228।
কেভিন ক্রুইজসেন

1
একটি পৃথক পদ্ধতির চেষ্টা করে কেবল দুটি বাইট বন্ধ হয়ে গিয়েছিল এবং এটি কেবল একটি বিজোড় সংখ্যা হওয়ার কারণে ... বিজোড় দৈর্ঘ্যের জন্য কাজটি %%স্ট্রিংয়ের মধ্যে একটি এবং %আসল কোডে কেবল একটি , তবে এর অর্থ মন্তব্যগুলি বাধ্যতামূলক
জো কিং

1
ট্যাবগুলিতে প্রতিস্থাপন করা ফাঁকা স্থানগুলির সাথে @ জোকিং নিস অ্যাপ্রোচ করুন যাতে আমাদের শীর্ষস্থানীয় স্থান (এবং চ্যালেঞ্জের নিয়মের কারণে আউটপুট থেকে ট্যাবগুলি বাদ দিতে পারে) করতে পারি। আমি আপনার কোড rework করতে পারব ///স্ট্রিং তাই স্ট্রিং দীর্ঘ যথেষ্ট সবকিছু প্রিন্ট করতে, সঙ্গে বাঁধন আগে প্রত্যাশিত পুনরাবৃত্তির যেতে জন্য StringIndexOutOfBoundsExceptionজন্য .substring। এবং //আসল প্রোগ্রামের শেষে কেবল দু'টি পিছনে রয়েছে, যেহেতু এটি কেবল দুটি ট্রেলিংও প্রিন্ট করে //। :)
কেভিন ক্রুইজসেন

ওহ বাহ, আমি জাভা উত্তর আশা করিনি! সুন্দর!!!
ম্যাজিক অক্টোপাস উরন

4

পাইথন 2 , 81 বাইট

s='n=0;\nprint(8-n)*chr(32)+("s=%r;exec(s*9)"%s)[n*n:][:n-~n];n+=1;#JK';exec(s*9)

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

একটি ইভাল কুইন যা ফিলার চরিত্র হিসাবে স্পেস ব্যবহার করে।




বা ... ভাল ... স্পষ্টতই সেই অনেক প্যাডিংয়ের সাহায্যে আপনি একটি স্বাক্ষর রাখতে পারেন (অর্থাত্ আরও আকর্ষণীয় স্ট্রিং n আআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআ)
এএসসিআইআই-কেবল

@ ASCII- একমাত্র ভাল পয়েন্ট, আপডেট উত্তর দেখুন;)
জো কিং

3

পার্ল 6 , 67 বাইট

<say("<$_>~~.EVAL".substr($!++²,$!*2-1).indent(8-$!))xx⁸>~~.EVAL

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

সেই অতিরিক্ত স্তরটি বের করতে আমি কয়েকটা ইউনিকোড অক্ষর ব্যবহার করেছি। স্পেস ব্যবহার করে আউটপুট:

       <
      say
     ("<$_
    >~~.EVA
   L".substr
  ($!++²,$!*2
 -1).indent(8-
$!))xx⁸>~~.EVAL

ব্যাখ্যা:

<say("<$_>~~.EVAL"                                  )   >~~.EVAL   # Normal quine
                  .substr($!++²,$!*2-1)              xx⁸  # Split into layered substrings
                                       .indent(8-$!)      # And indent each one

3

পাইথন 2 , 169 বাইট

0পিরামিড ফর্ম্যাট করার জন্য ব্যবহার ।

s='s=%r;k=s%%s;print"\\n".join(`1-1`*(12-n)+k[n*n:][:n-~n]for n in range(13))#######################';k=s%s;print"\n".join(`1-1`*(12-n)+k[n*n:][:n-~n]for n in range(13))

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


পাইথন 2 , 147 বাইট

এটি বিধিটি ব্যবহার করে যদি প্রোগ্রামটিতে নতুনলাইন / ট্যাব থাকে তবে সেগুলি কুইনের অংশ নয় এবং আউটপুটটিতে বাদ দেওয়া উচিত।

s='s=%r;k=s%%s;print"\\n".join(`1-1`*(12-n)+k[n*n:][:n-~n]forninrange(13))##';k=s%s;print"\n".join(`1-1`*(12-n)+k[n*n:][:n-~n]for	n	in	range(13))##

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


2

গোল> <> , 36 বাইট

":P}r6&56F:M}F0ss|&:P&Roao{|;Nooooo!

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

একটি এমনকি ছোট সংস্করণ, 36 বাইট

":P}r6&56F:M}R` &:P&Fo|ao{|;Noooooo!

আমি এটিকে এক লাইন খাটো করে খুব কাছাকাছি অনুভব করছি, গ্রার ...

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

এমনকি ছোট সংস্করণ, 36 বাইট

"r2ss6&56F:M}R` &:P&Fo|ao{|;what????

এটির কোডটি ছোট, তবে এটি এখনও একই পরিমাণে আসে দুঃখের সাথে, মন্তব্যটি স্থানটির বাকী অংশ গ্রহণ করে।

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

সামান্য ছোট সংস্করণ, 36 বাইট

"r2ss156F:M}F` o|:PP}Fo|ao{{|;Wowza!

Wowza! হেই, আমি এটি কেবল কিছু স্থান পূরণ করার জন্য ব্যবহার করেছি, তবে প্রোগ্রামটি কাজ করে, গল্ফ ডাউন করার জন্য, আমি ভেরিয়েবলগুলি ব্যবহার না করে কয়েকটি প্রাক চাপযুক্ত মান ব্যবহার করেছি!

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

পুরানো সংস্করণ, 42 বাইট

"r2ss0V_~6:&F&:M&F` o|_PPV_Fo|ao|;empty...

এটির পিছনে নতুন লাইনের রয়েছে এবং এর চেয়ে আরও বেশি চর রয়েছে ...

আমি এই মারাত্মকভাবে গল্ফ করতে যাচ্ছি ...

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



2

পরিষ্কার , 256 বাইট

module QQ;import StdEnv,Text;q=dec'#';$n#k=(s<+q<+s<+q)%(n^2,n^2+n*2)=lpad k(16+n)(dec q);Start=join{toChar 10}(map$[0..15]);s="module QQ;import StdEnv,Text;q=dec'#';$n#k=(s<+q<+s<+q)%(n^2,n^2+n*2)=lpad k(16+n)(dec q);Start=join{toChar 10}(map$[0..15]);s="

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

ফরম্যাটিং ফাংশন যুক্ত করে খুব সুন্দর স্ট্যান্ডার্ড কুইন, স্বাচ্ছন্দ্যে একটি টেম্পলেট কুইনও রয়েছে।


1
এটি কোড-গল্ফ হলেও, আমি এই দীর্ঘ উত্তরগুলি পছন্দ করি। পবিত্র গরু যে চিত্তাকর্ষক।
যাদু অক্টোপাস উরন

2

আর , 169 144 বাইট

s='`!`=intToUtf8;cat(sprintf("%*s",11+(i=1:12),substring(paste0("s=",q<-!39,s,q,";eval(parse(t=s))"),(i-1)^2+1,i^2)),sep=!010)';eval(parse(t=s))

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

           s
          ='`
         !`=in
        tToUtf8
       ;cat(spri
      ntf("%*s",1
     1+(i=1:12),su
    bstring(paste0(
   "s=",q<-!39,s,q,"
  ;eval(parse(t=s))")
 ,(i-1)^2+1,i^2)),sep=
!010)';eval(parse(t=s))

প্রসারিত অভিব্যক্তির চেয়ে পার্স করা স্ট্রিংয়ের দিকে সরানোর মাধ্যমে এটি সংক্ষিপ্ত করে পরিচালিত। যদিও 144 এর অধীনে এটি পেতে আনরি অপারেটরের একটি নতুন সংজ্ঞা ব্যবহার করতে হয়েছিল।


1

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

var s="var s={0}{1}{0};for(int i=0;;)WriteLine(string.Format(s,(char)34,s).Substring(i*i++,2*i-1).PadLeft(i+14,(char)2));//";for(int i=0;;)WriteLine(string.Format(s,(char)34,s).Substring(i*i++,2*i-1).PadLeft(i+14,(char)2));//

STXপ্যাডিং হিসাবে একটি চর ব্যবহার করে । বুঝতে পারিনি কেভিন ক্রুইজসেন আমার কাজ না হওয়া অবধি পোস্ট করার আগে জাভাতে ইতিমধ্যে একটি সঠিক অনুলিপি জমা দিয়েছিল, তবে আমি যাইহোক এই পোস্ট করার সিদ্ধান্ত নিয়েছি।

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

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