বর্ণমালা স্যুপ একটি বাটি তৈরি করুন


55

এটিকে আমরা একটি বাটি বর্ণমালার স্যুপ বলব - প্রায় ২ u টি বড় হাতের ইংরাজির অক্ষর (এজেড) দিয়ে ঘেরের কাঁটার দিকটি সাজানোর জন্য প্রায় বৃত্তাকার অ্যাসিআই-আর্ট আকৃতি:

   XYZABC
 VW      DE
U          F
T          G
S          H
 RQ      JI
   PONMLK

এমন একটি প্রোগ্রাম লিখুন যা একটি একক অক্ষরের চরিত্র, এজেড, এবং বর্ণমালুর স্যুপের সেই একই বাটিটিকে "আবর্তিত" আউটপুট দেয়, তাই কথা বলতে, তাই ইনপুট লেটারটি উপস্থিত হয় যেখানে Aউপরের উদাহরণে এবং বাকী বর্ণমালা চক্রগুলি সম্পূর্ণরূপে রয়েছে ঘড়ির কাঁটার দিকে।

সুতরাং ইনপুট জন্য আউটপুট Aহবে বর্ণমালা স্যুপ একই মূল বাটি।

এবং ইনপুট জন্য আউটপুট Bএই এক হবে:

   YZABCD
 WX      EF
V          G
U          H
T          I
 SR      KJ
   QPONML

একইভাবে আউটপুট Hহবে:

   EFGHIJ
 CD      KL
B          M
A          N
Z          O
 YX      QP
   WVUTSR

বা এর জন্য Z:

   WXYZAB
 UV      CD
T          E
S          F
R          G
 QP      IH
   ONMLKJ

এটিকে জেডের মাধ্যমে সমস্ত 26 টি অক্ষরের জন্য কাজ করা দরকার

বিবরণ:

  • আপনি ধরে নিতে পারেন একমাত্র ইনপুটটি একটি একক অক্ষর হবে, এড জেড এর মাধ্যমে।
  • যদি সুবিধাজনক হয় তবে আপনি ইনপুট এবং / অথবা আউটপুটের জন্য ছোট হাতের অ্যাজ ব্যবহার করতে পারেন, আপনি এমনকি নিম্ন এবং বড় হাতের মিশ্রণ করতে পারেন match
  • বর্ণমালার ক্রমটি অবশ্যই ঘড়ির কাঁটার বিপরীতে নয়, ঘড়ির কাঁটার দিকে ঘুরতে হবে।
  • স্যুপের বাটিটি ইনডেন্ট করতে এবং পূরণ করতে আপনাকে অবশ্যই স্পেস ব্যবহার করবে, অন্য কিছু নয়।
  • যতক্ষণ না স্যুপ বাটিটি সঠিকভাবে সাজানো থাকে ততক্ষণ আউটপুটে নেতৃস্থানীয় বা পিছনে নতুন লাইনের বা ফাঁকা স্থান থাকতে পারে।
  • নোট করুন যে বাটিটির আকারটি 12 টি অক্ষর প্রস্থে 7 টি লম্বা হয় যাতে এটি পাঠ্যের মতো প্রায় গোলাকার হয়। আপনার বাটিগুলি একই আকারের হওয়া দরকার।

এটি কোড গল্ফ তাই সংক্ষিপ্ততম কোড জিতে!


12
দুর্দান্ত চ্যালেঞ্জ! প্রথমদিকে এটি সহজ বলে মনে হচ্ছে, তবে এটি নয়
লুইস মেন্ডো

উত্তর:


22

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

একটি প্রোগ্রাম নির্ধারণ করেf:AlphabeticCharString

কোড:

2AA¹k._•1못*Ć,ãiDΣ•Λ

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


ভাঙ্গন:

2AA¹k._•1못*Ć,ãiDΣ•Λ

2                       # <length>
 AA¹k._                 # <filler>
       •1못*Ć,ãiDΣ•    # <pattern>
                    Λ   # Invoke the canvas function.


ব্যাখ্যা:

ক্যানভাস ( Λ) এই বিশেষ প্রেক্ষাপটে নিম্নলিখিত স্বাক্ষর সহ একটি ফাংশন হিসাবে কাজ করে:

Λ:(length:Nat, filler:String, pattern:Nat)String

পরামিতি এই অবস্থায় একটি সংখ্যা দিকনির্দেশ সংজ্ঞা নেই। কোডে, এই সংখ্যাটি উপস্থাপিত হয় , এটি বড় সংখ্যার সংকোচিত সংস্করণ । নির্দেশগুলি নিম্নলিখিত পদ্ধতিতে বোঝানো হয়:pattern 2232344565666667670012122•1못*Ć,ãiDΣ•2232344565666667670012122


70162543


এর অর্থ হ'ল বড় সংখ্যা নীচের দিকের নিদর্শনগুলি উপস্থাপন করে:

[,,,,,,,,,,,,,,,,,,,,,,,,]

এই স্বাক্ষর প্রসঙ্গে, ক্যানভাসটি তালিকার মধ্য দিয়ে পুনরাবৃত্তি করে এবং বর্তমান দিকের from থেকে অক্ষরগুলি লিখে ।patternlengthfiller

যেমন কোডে নির্দিষ্ট করা (কোড শুরুতে)। For এর জন্য আমাদের বর্ণমালার একটি ঘোরানো সংস্করণ দরকার যা এটি প্রদত্ত ইনপুট দিয়ে শুরু হয়। এটি নিম্নলিখিত কোড দিয়ে সম্পন্ন হয়েছে ( এটি এখানে চেষ্টা করুন ):length2filler

AA¹k._

 এখ # বর্ণমালায় প্রদত্ত ইনপুট চরিত্রের <index> সন্ধান করুন
ক ._ # বর্ণমালাটি বাম দিকে <index> বারে ঘোরান ।

সিউডোকোডে এটি ক্যানভাস ফাংশন দ্বারা চালিত হবে:

1.Write ab in the direction2.Write bc in the direction3.Write cd in the direction4.Write de in the direction5.Write ef in the direction6.Write fg in the direction

শেষ , আপনি দেখতে পাচ্ছেন যে ফিলার আর্গুমেন্টটি 'আবর্তিত' ডানদিকে বার, যার অর্থ ক্যানভাসটি নিম্নলিখিত (চক্রযুক্ত এবং অতএব অসীম) তালিকার মাধ্যমে পুনরাবৃত্তি করবে:length1

[ab,bc,cd,de,ef,fg,gh,hi,ij,jk,...

যার ফলে কাঙ্ক্ষিত বর্ণমালা স্যুপ আসকি-আর্ট আকারে আসে।


ঠিক আছে আমি যাচ্ছি. আরও ছোট বিকল্পগুলি সন্ধান করার চেষ্টা করেছি, তবে আমি এটি দেখছি না। AA¹k._বিকল্পভাবে হতে পারে A¹¡RJ«, তবে এটি একই বাইট-গণনা। •1못*Ć,ãiDΣ•বিকল্পভাবে হতে পারে •õÕ₆qηµñ–†f•·, তবে এটি একই বাইট-গণনা। আহ ভালো. চমৎকার উত্তর!
কেভিন ক্রুইজসেন

11

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

{"2XYZABC
 VW5DE
U9F
T9G
S9H
 RQ5JI
2PONMLK".trans(/\S/=>{(try ' 'x$/+1)||chr ($/.ord+.ord)%26+65})}

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

স্ট্রিংয়ের সমস্ত অক্ষর তাদের স্থানান্তরিত অংশগুলির সাথে প্রতিস্থাপন করে, যখন তারা প্লাস ওয়ান উপস্থাপন করে এমন জায়গাগুলির সংখ্যা সহ অঙ্কগুলি প্রতিস্থাপন করে।

ব্যাখ্যা

{                                                            }# Anonymous code block
 "...".trans(/\S/=>{                                       }) # Translate non-whitespace
                    (try ' 'x$/+1)      # If digits, the amount of spaces plus one
                                  ||chr ($/.ord+.ord)%26+64  # Else the shifted letter


9

রুবি , 107 বাইট

->n{a=(0..6).map{' '*11}
(?A..?Z).map{|i|j,k=(1i**((i.ord-n.ord-6)/6.5)).rect;a[3.5*k+=1][5.2*j+6]=i}
a*$/}

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

উন্নত বাক্য গঠন "i".to_c-> 1i(জর্দান দ্বারা প্রস্তাবিত)

সমন্বিত সিস্টেম পরিবর্তিত হয়েছে তাই শীর্ষের পরিবর্তে 0 ডিগ্রি ডানদিকে রয়েছে। এটি সক্ষম করে 0.5->6

সংক্ষিপ্ততার jএবং kসংকীর্ণতার জন্য সমন্বিত গুণক

আউটপুট মুদ্রণের পরিবর্তে puts aঅ্যারে উপাদানগুলিকে সামঞ্জস্য করুন এবং একটি স্ট্রিং ফিরিয়ে দিনa*$/

রুবি , 119 বাইট

->n{a=(0..6).map{' '*11}
(?A..?Z).map{|i|j,k=("i".to_c**((i.ord-n.ord+0.5)/6.5)).rect;a[3.5-j*3.3][6+k*5.17]=i}
puts a}

উপবৃত্তের মানচিত্রের জন্য পাওয়ারে উত্থিত একটি জটিল সংখ্যা ব্যবহার করে। একটি সম্পূর্ণ পালা 26, সুতরাং প্রতিটি চতুর্ভুজ 6.5।

এই পদ্ধতির পর্যাপ্ত পরিমাণে একটি উপবৃত্তের অনুরূপ প্রয়োজনীয় আউটপুটটির উপর নির্ভর করে যে কোনও বৈধ ম্যাপিং অর্জন করতে পারে।

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


@ জর্দান ধন্যবাদ, আমি এর আগে সিনট্যাক্সটি দেখিনি!
লেভেল নদী সেন্ট

8

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

GH→→↘→↘↓↓77←←←←↖←↖↑↑↗→↗→→²✂⁺αα⌕αS

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

GH

একটি পথ সন্ধান করুন।

→→↘→↘↓↓77←←←←↖←↖↑↑↗→↗→→

বাটিটির রূপরেখা দিন। প্রতিটি 7প্রসারিত হয় ↙←

²

একবারে একটি অক্ষর স্থানান্তরিত করুন (এই এপিআই পরবর্তী প্রতিটি লাইনের প্রান্তকে ওভারল্যাপ করে)।

✂⁺αα⌕αS

দ্বিগুণ বর্ণমালা ব্যবহার করে আঁকুন, তবে ইনপুট চরিত্রের অবস্থান থেকে শুরু করুন।


8

এমএটিএল , 49 বাইট

7I8*32tvB[1b]&Zvc2Y2j7+_YSy&f7-w4-_Z;YPE\,&S])yg(

কী এলোমেলো. তবে লেখাটা মজাদার ছিল। এমনকি জড়িত রয়েছে একটি আর্কটেন্টিয়েন্টও।

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

ব্যাখ্যা

কোড

7I8*32tvB

সংখ্যার একটি অ্যারে তৈরি করে এবং তাদের বাইনারি রূপান্তর করে। এটি শূন্য-ওয়ান ম্যাট্রিক্স দেয়

0 0 0 1 1 1
0 1 1 0 0 0
1 0 0 0 0 0
1 0 0 0 0 0

যা একটি ম্যাট্রিক্সের উপরের বাম চতুর্ভুজগুলিতে বর্ণগুলির অবস্থান নির্দিষ্ট করে।

[1b]&Zv

শেষ সারিটি পুনরাবৃত্তি না করে উল্লম্বভাবে চতুর্ভুজটি প্রতিফলিত করে এবং সম্পূর্ণ ম্যাট্রিক্স উত্পাদন করতে আনুভূমিকভাবে শেষ কলামটি পুনরাবৃত্তি করছে:

0 0 0 1 1 1 1 1 1 0 0 0
0 1 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 1
0 1 1 0 0 0 0 0 0 1 1 0
0 0 0 1 1 1 1 1 1 0 0 0

আমাদের এখন অবস্থানগুলি সহ একটি মুখোশ রয়েছে। কোড

c

এটি চরে রূপান্তরিত করে, কারণ চূড়ান্ত ফলাফলটি একটি চর ম্যাট্রিক্স হবে। অক্ষর 0 স্থান হিসাবে প্রদর্শিত হয়, এবং nonzero এন্ট্রি উপযুক্ত অক্ষর দিয়ে লেখা হবে।

2Y2

স্ট্রিংটি ধাক্কা দেয় 'abc···xyz', এতে 26 টি অক্ষর থাকে। ইনপুট অনুসারে এই স্ট্রিংটি বৃত্তাকারে স্থানান্তরিত হওয়া দরকার। এটা করতে,

j7+_YS

ইনপুট লেটারটি পড়ে, এর এএসসিআইআই কোডে 7 যুক্ত করে এবং ফলাফলটিকে অবহেলা করে। 'a'ইনপুটটির জন্য এটি 104 ডলার দেয় যা 26 এর একাধিক, সুতরাং এই পরিমাণে বিজ্ঞপ্তি পরিবর্তন করা কিছুই করবে না। যদি ইনপুট হয় bতবে এটি −105 দেয়, যা স্ট্রিংটি 1 ধাপটি বাঁদিকে স্থানান্তর করে 'bcd···yza'; প্রভৃতি

পরবর্তী পদক্ষেপটি হ'ল ম্যাট্রিক্সের ননজারো এন্ট্রিগুলিতে স্থানান্তরিত স্ট্রিংটি ক্রমান্বয়ে সংজ্ঞায়িত করা। এই শেষ,

y&f

ম্যাট্রিক্সের একটি অনুলিপি তৈরি করে এবং ননজারোসের 1-ভিত্তিক সারি এবং কলাম অবস্থানগুলি সহ দুটি ভেক্টরকে ধাক্কা দেয়। তারপর

7-w4-_

পরেরটি থেকে 7 বিয়োগ করে, প্রাক্তনকে শীর্ষে আনে, এটিকে 4 থেকে বাদ দেয় এবং এটিকে অবহেলা করে। 7 এবং 4 স্থানাঙ্কগুলির একটি উত্স নির্দিষ্ট করে, যাতে ননজারো এন্ট্রিগুলির অবস্থান ভেক্টরের কোণগুলি সেই উত্সের সাথে সম্মতভাবে পছন্দসই ক্রমটি সংজ্ঞায়িত করে।

Z;YPE\

এই কোণগুলি তৈরি করতে দ্বি-আর্গুমেন্ট আর্কট্যানজেন্ট মডুলো 2 * পাই গণনা করে। এখন ক্ষুদ্রতম কোণটি, যা 0, প্রথম অক্ষরটি যেখানে প্রবেশ করা উচিত সেখানে প্রবেশের সাথে সামঞ্জস্য করে, এবং বাকী অগ্রিমটি ঘড়ির কাঁটার দিকে।

,&S])

স্ট্রিংগুলিতে সেই কোণগুলি অনুসারে অক্ষরগুলি পুনরায় সাজিয়ে তোলে, যাতে অক্ষরগুলি কলাম-প্রধান ক্রমে ম্যাট্রিক্সের ননজারো এন্ট্রিগুলিতে লেখা হয় (নীচে, তারপরে জুড়ে) ফলাফলটি সঠিক হবে। এটি দ্বারা করা হয়

yg(

উদাহরণস্বরূপ, যদি ইনপুট হয় 'a'তবে স্ট্রিংটি বৃত্তাকার সাথে স্থানান্তরিত হয়নি:

abcdefghijklmnopqrstuvwxyz

কোণ অনুসারে পুনঃব্যবস্থাপনা এটিকে রূপান্তর করে

utsvrwqxpyoznamblckdjeifgh

সুতরাং এটি 'u'সঠিকভাবে প্রথম (কলাম-প্রধান ক্রমে) নঞ্জেরো এন্ট্রিতে যাবে, যা ম্যাট্রিক্স নোটেশনে (3,1); 't'(4,1), 's'(5,1) এ যাবে; 'v'থেকে (2,2) ইত্যাদি:

   ······   
 v·      ·· 
u          ·
t          ·
s          ·
 ··      ·· 
   ······   

@ এরিকথ আউটগল্ফার অবশেষে একটি ব্যাখ্যা যুক্ত করার জন্য আমি কিছুটা সময় পেলাম
লুইস মেন্ডো

1
ওহো ... আমি আসলে ভেবেছিলাম আপনি এটিকে পরিত্যাগ করেছেন কারণ আপনি এই মন্তব্যটি মুছলেন। : পি
এরিক আউটগল্ফার


7

আর , 139 122 বাইট

-১ by বাইট জিউসেপিকে ধন্যবাদ

u=utf8ToInt;`*`=rep;o=c(' '*12,'
')*7;o[u("  &3@LKWVUTSRDC5(")]=LETTERS[(13:38+u(scan(,'')))%%26+1];cat(o,sep='')

ব্যাখ্যা:

o=rep(c(rep(' ',12),'
'),7) 

ফাঁকা ফাঁকা বাক্স তৈরি করে

u(" &3@LKWVUTSRDC5(")

চিঠি পজিশনের জন্য সূচকগুলির সমষ্টি:

c(7:9,23,24,38,51,64,76,75,87:82,68,67,53,40,27,15,16,4:6)

Tio


1
আপনি কখনই ব্যবহার করবেন intToUtf8না এগুলি বহির্মুখী বাইটস, তবে আপনি যদি এটির *জায়গায় ব্যবহার করেন তবে আপনি rep2 বাইট সংরক্ষণ করতে পারেন এবং 125 বাইটে
জিউসেপ্পে

1
ওহ, এবং প্রিন্টযোগ্য অ্যাস্কির পরিবর্তে লো-বাইট অক্ষর ব্যবহার করে আপনি 122 বাইটের-32 জন্য শেভ করতে পারেন । এগুলি ব্যবহার করে আপনি এগুলি নিজে তৈরি করতে পারেন । cat(intToUtf8(bytes))
জিউসেপ

@ জিউজেপ্পে আমি নিশ্চিত যে আমি ইতিমধ্যে intToUtf8ফাংশনটির অনেকগুলি সংস্করণ খুলে ফেলেছি বলে অনুমান করেছি already চমত্কারভাবে সমস্ত সঞ্চয় করে, ধন্যবাদ
অ্যারন হেইম্যান

6

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

2 বাইট সংরক্ষণ করেছেন @ টিএসএকে ধন্যবাদ

c=>`2XYZABC
0VW5DE
U9F
T9G
S9H
0RQ5JI
2PONMLK`.replace(/./g,x=>''.padEnd(+x+1)||(B=Buffer)([65+([a,b]=B(c+x),a+b)%26]))

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

কিভাবে?

এই কোডটি অপব্যবহার Bufferকরে টেমপ্লেট লেটার এবং ইনপুট লেটার এর ASCII কোডগুলি এক্সট্রাক্ট করতে এবং তাদের লক্ষ্যবস্তুতে ফিরে রূপান্তর করতে।xc

এবং সাথে উদাহরণc=এক্স ="H"x="B"

// extracting the ASCII codes
Buffer(c + x)  Buffer("HB")  <Buffer 48 42>

// assigning them to variables
[a, b] = Buffer(c + x)  a = 0x48 (72) and b = 0x42 (66)

// computing the ASCII code of the target letter
65 + ((a + b) % 26)  65 + (138 % 26)  65 + 8  73

// turning it back into a character
Buffer([73])  <Buffer 49>  implicitly coerced to "I" by replace()



4

আর , 218 197 বাইট

-21 বাইট জিউসেপ্পিকে ধন্যবাদ

function(t,l=letters,`*`=rep,s=" ",n="
",`~`=`[`,r=c(l~l>=t,l))cat(s*3,r~24:26,r~1:3,n,s,r~22:23,q<-s*6,r~4:5,n,r~21,u<-s*10,r~6,n,r~20,u,r~7,n,r~19,u,r~8,n,s,r~17:18,q,r~10:9,n,s*3,r~16:11,sep='')

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

Ungolfed:

alphasoup <- function(startlet){
  startnum <- which(l == startlet)
  rotatedletters <- c(letters[startnum:26], letters[1:(startnum -1)])[1:26]
  cat('   ',rotatedletters[24:26],rotatedletters[1:3], '\n ', 
      rotatedletters[22:23], s6 <- '      ', rotatedletters[4:5], '\n',
      rotatedletters[21], s10 <- rep(' ', 10), rotatedletters[6], '\n',
      rotatedletters[20], s10, rotatedletters[7], '\n',
      rotatedletters[19], s10, rotatedletters[8], '\n ',
      rotatedletters[17:18], s6, rotatedletters[10:9], '\n   ',
      rotatedletters[16:11],
      sep = '')
}

ঘোরানো লেটার ভেক্টর তৈরি করেছে এবং catসেই ভেক্টর দিয়ে বাটির রিম পূরণ করতে ব্যবহার করে।


203 বাইট যদি আপনি এক-লাইন একক মনুষ্যকে কিছু মনে করেন না; সবচেয়ে বড় উন্নতি সম্ভবত মুছে ফেলা whichএবং l>=tসরাসরি সূচক হিসাবে ব্যবহার করা হয়েছিল, যার মূল্য ছিল 12 বাইট।
জিউসেপ

2
198 বাইট দিয়ে এলিয়াস [দিয়ে ~। এটি একটি দুর্দান্ত উত্তর; আমি আরও কয়েকটি জটিল পদ্ধতির সাথে আমার প্রথম কয়েকটি প্রচেষ্টায় প্রায় 250 বাইট ব্যয় করছিলাম।
জিউসেপ

আহ, এগুলি চালাক, আমি স্ট্রিং তুলনাগুলি ভুলে যাই।
সিটি হল

3

জাভা 11, 134 বাইট

c->"2XYZABC_0VW5DE_U9F_T9G_S9H_0RQ5JI_2PONMLK".chars().forEach(i->System.out.print(i<59?" ".repeat(i-47):(char)(i>90?10:(c+i)%26+65)))

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

গল্ফ হওয়ার সম্ভাবনা সহ 136 বাইট সংস্করণ ?

c->"2XYZABC_0VW5DE_U9F_T9G_S9H_0RQ5JI_2PONMLK".chars().forEach(i->System.out.printf("%"+(i<59?i-47:"")+"c",i>90?10:i<59?32:(c+i)%26+65))

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

ব্যাখ্যা (প্রথম উত্তরের)

c->                          // Method with character parameter and no return-type
  "2XYZABC_0VW5DE_U9F_T9G_S9H_0RQ5JI_2PONMLK"
                             //  Template-String
    .chars().forEach(i->     //  Loop over the unicode values of its characters:
    System.out.print(        //   Print:
     i<59?                   //    If the value is below 59 (so a digit character):
      " ".repeat(i-47)       //     Repeat a space that digit + 1 amount of times
     :(char)(i>90?           //    Else-if the value is above 90 (an underscore character):
              10             //     Print a newline
             :               //    Else:
              (c+i)          //     Add the current value and the input together
                   %26       //     Take modulo-26 of it to get the index in the alphabet
                      +65))) //     And add 65 to make it an uppercase letter

অপ্রিন্টেবলগুলি দিয়ে অঙ্কগুলি কেন প্রতিস্থাপন করবেন না? এই ভাবে, আপনি শুধু বর্জন পারেi-47
অজ্ঞতা প্রতিমূর্তি

অ্যাম্বোডিমেন্টফ অজ্ঞতা আমি ভয় করি যে এটি কোনও বাইট সংরক্ষণ করবে না। স্পেসের সংখ্যা 3, 1, 6 এবং 10 হ'ল 10 টি তিনবার ব্যবহৃত হয় এবং প্রতিটি অক্ষর হিসাবে (2) বাইট হয় \n। সুতরাং আমি আনপ্রিন্টেবল এবং 3x \nসহ iবা অঙ্কগুলি -1 ব্যবহার করি না কেন i-47, উভয়ই 134 বাইট-কাউন্টের সমান। এবং দুর্ভাগ্যক্রমে আমার একটি 0অপ্রিন্টযোগ্য থাকতে পারে না, অন্যথায় আমি তার পরিবর্তে 2,0,5,9 ব্যবহার i+1করতে পারি এবং মোট 1 বাইট সংরক্ষণ করতে পারি use
কেভিন ক্রুইজসেন


2

হাস্কেল, 127 বাইট

("cXYZABC aVWfDE UjF TjG SjH aRQfJI cPONMLK">>=).(?)
t?c|c>'Z'=' '<$['a'..c]|c<'!'="\n"|t<'B'=[c]|c>'Y'=t?'@'|1<2=pred t?succ c

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

এনকোড স্ট্রিংয়ের প্রতিটি অক্ষর ফাংশন দ্বারা ?একটি স্ট্রিংয়ে ডিকোড করা হয় :

t?c                             -- 't' is the starting char,
                                -- 'c' the char from the encoded string
   |c>'Z'=' '<$['a'..c]         -- if 'c' is a lowercase letter, return some spaces
                                -- 'a': one, 'b': two, etc
   |c<'!'="\n"                  -- if 'c' is a space, return a newline
   |t<'B'=[c]                   -- if 't' is the letter A, return 'c'
   |c>'Y'=t?'@'                 -- wrap around Z
   |1<2=pred t?succ c           -- else the result is the same as starting one letter
                                -- earlier (pred t) but looking at the successor of 'c'


2

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

n=>$@"   XYZABC
 VW{"",6}DE
U {"",9}F
T {"",9}G
S {"",9}H
 RQ{"",6}JI
   PONMLK".Select(b=>b<65?b:(char)((b+n)%26+65))

@ সোমনকে 8 টি বাইট সংরক্ষণ করা হয়েছে। হ্যাঁ, এটি আসলে তার ব্যবহারকারীর নাম।

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


স্ট্রিং ইন্টারপোলেশন 118 বাইটের জন্য । চারকোডগুলির একটি অ্যারের (~ 8 বাইট সংরক্ষণ করা) ফিরিয়ে দেওয়া সম্ভবত গ্রহণযোগ্য তবে আমি নিশ্চিত নই।
কেউ

@ সোমোন নিস, স্ট্রিং প্রসারণ সম্পর্কে ভুলে গেছেন
অজ্ঞতার

2

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

DECLARE @y char='G'

,@ char(91)=3;WITH C as(SELECT'5585877636333330301125255'z,8a,ascii(@y)x
UNION ALL
SELECT stuff(z,1,1,''),a+left(z,1)/3*13+left(z,1)%3-14,(x+14)%26+65FROM
C WHERE''<z)SELECT
@=stuff(stuff(@,a,1,char(x)),1+a/13*13,1,char(13))FROM
C PRINT @

এই উত্তরের পরীক্ষার লিঙ্কটি লাইন ব্রেকগুলি ভেঙে স্থানগুলি বাদ দিয়েছে s আমি পঠনযোগ্য ফলাফল প্রদর্শনের জন্য ফাঁকা স্থানগুলি সময়ের সাথে প্রতিস্থাপন করেছি এবং পাঠ (13) + চর (13) + চর (10) এর সাথে প্রতিস্থাপন করেছি a

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

Ungolfed:

DECLARE @y char='G'

-- @ is the string being printed last. 
-- @ is populated with 3 to save a byte
-- the number 3 gets replaced later
-- (this could have been any 1 digit value), 
-- @ is automatically filled with spaces, because
-- it is declared as a char(x) and assigned a value
,@ char(91)=3;
-- recursive query
WITH C as
(
-- z string containing digits for the direction of next letter
-- z should not contain 4 because it will point to same position.
-- values in z 0,1,2,3,4,5,6,7,8 can logally convert to 
-- (-1,-1),(-1,0),(-1,1),(0,-1),(0,0),(0,1),(1,-1),(1,0),(1,1)
-- a is the starting position
  SELECT'5585877636333330301125255'z,8a,ascii(@y)x
  UNION ALL
-- stuff remove first character from the z string
-- a calculate next position of the next letter
-- x cycle the input letter
  SELECT stuff(z,1,1,''),a+left(z,1)/3*13+left(z,1)%3-14,(x+14)%26+65
-- repeat recursive until long string is empty
  FROM C
  WHERE''<z
)
SELECT
-- 1st stuff replace the character to created the start of a 
--   logical line in the string @ this is where 3 gets overwritten
-- 2nd stuff replaces a character(space if coded correct) 
--  with the letter at the calculated position.
  @=stuff(stuff(@,a,1,char(x)),1+a/13*13,1,char(13))
FROM C

PRINT @

@ মিকিটি ঠিক আছে, আপনার মতামতের জন্য ধন্যবাদ, আমি যদি পরে কোনও ডিবি
t-clausen.dk

@ মিকিটি এখনই এটি ঠিক করা উচিত
t-clausen.dk

1
এখন ভাল দেখাচ্ছে।
মিকি

1

পিএইচপি , 236 229 226 বাইট

<?=($a=ord(file_get_contents('php://stdin'))-65)?preg_replace_callback('~\w~',function($m)use($a){return chr((ord($m[0])-65+$a)%26+65);},'   XYZABC
 VW      DE
U          F
T          G
S          H
 RQ      JI
   PONMLK'):'';

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

প্রি-গলফ:

<?php
$adjust = ord(file_get_contents('php://stdin')) - 65;
echo preg_replace_callback('~\w~', function($match) use ($adjust) {
    $new = ord($match[0]) - 65;
    $new = ($new + $adjust) % 26;
    $new += 65;
    return chr($new);
}, '   XYZABC
 VW      DE
U          F
T          G
S          H
 RQ      JI
   PONMLK');

ব্যাখ্যা:

ব্যবহার করে ordআমরা 0 এবং 255 এর মধ্যে একটি পূর্ণসংখ্যায় রূপান্তর করি A এ 65 হয় এবং জেড 90 হয়
this
তারপরে আমরা সমস্ত অক্ষরগুলিতে পুনরাবৃত্তি ordকরি, তাদেরকে কল করব, সেগুলি 65 এর মাধ্যমে হ্রাস করব, আমাদের সমন্বয় মান দ্বারা সেগুলি বাড়িয়ে দেব। মডিউলো ব্যবহার করে আমরা ২ 26 এর বেশি হলে 0 এ ফিরে ফিরে আসি
We আমরা তাদের আবার 65 করে বাড়িয়ে আবার অক্ষরে রূপান্তর করি chr

দুঃখজনকভাবে পিএইচপি: // স্টিডিন কেবল একবারই ইন্টারোগেট করা যেতে পারে, তাই আমাদের লুপের মধ্যে ফাংশনটির ইনপুটটি পাস করতে হবে, বাইটগুলি সংরক্ষণ use($a)করতে এবং ফাংশনের বাইরে কোনও ভেরিয়েবল ঘোষণা করা থেকে বিরত রাখতে আমাদের <?=প্রতিধ্বনির পদ্ধতি পরিষ্কার ব্যবহার থেকে বিরত রাখে - আমাদের সমস্ত কিছু বিশাল দৈর্ঘ্যের মোড়কে আবদ্ধ করতে হবে।


1

সি (জিসিসি) 286 বাইট

হ'ল সংক্ষিপ্ততম গল্ফ নয়, তবে এটি কাজ করে

#define r(a)(a+c)%26+65
#define R(a)for(i=10;i;a[--i]<33?:(a[i]=r(a[i])));
i;f(c){char*S="          ",T[]="   XYZABC\n",E[]="VW      DE\n",F[]="RQ      JI\n",B[]="   PONMLK";R(T)R(E)R(F)R(B)printf("%s %s%c%s%c\n%c%s%c\n%c%s%c\n %s%s",T,E,r(85),S,r(70),r(84),S,r(71),r(83),S,r(72),F,B);}

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





0

জাভাস্ক্রিপ্ট (ভি 8), 316 বাইট

function a(b){n="abcdefghijklmnopqrstuvwxyz".split(b);n=b+n[1]+n[0],console.log(`   ${n[23]+n[24]+n[25]+n[0]+n[1]+n[2]}\n ${n[21]+n[22]}      ${n[3]+n[4]}\n${n[20]}          ${n[5]}\n${n[19]}          ${n[6]}\n${n[18]}          ${n[7]}\n ${n[17]+n[16]}      ${n[9]+n[8]}\n   ${n[15]+n[14]+n[13]+n[12]+n[11]+n[10]}`)}

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

প্রথমবার কোড গল্ফ আউট চেষ্টা করে। যে কোনও টিপস / প্রতিক্রিয়া প্রশংসা করুন।

খাটো করার আগে আসল কোড:

function a(b){
    var c = ("abcdefghijklmnopqrstuvwxyz").split(b);
    c = b+c[1]+c[0]
    console.log(`   ${c[23]+c[24]+c[25]+c[0]+c[1]+c[2]}\n ${c[21]+c[22]}      ${c[3]+c[4]}\n${c[20]}          ${c[5]}\n${c[19]}          ${c[6]}\n${c[18]}          ${c[7]}\n ${c[17]+c[16]}      ${c[9]+c[8]}\n   ${c[15]+c[14]+c[13]+c[12]+c[11]+c[10]}`)
}

হ্যালো এবং পিপিসিজিতে আপনাকে স্বাগতম। যেমনটি দাঁড়িয়েছে, আপনার জমাটি হ'ল একটি স্নিপেট, যা অবৈধ I / O। আপনার উত্তরটি হয় পুরো প্রোগ্রাম বা ফাংশন হিসাবে ঠিক করুন - আপনার অ-মিনিফাইড সংস্করণ হিসাবে।
জোনাথন ফ্রেচ

@ জোনাথন ফ্রেশ ধন্যবাদ! যথেষ্ট হবে?
এডউইন চুয়া

1
হ্যাঁ, এটি এখন একটি বৈধ জমা।
জোনাথন ফ্রেচ



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