বর্ণমালা সর্পিল


24

কাজটি খুব সহজ, যখন কোনও ইনপুট দেওয়া হয়, নিম্নলিখিত সর্পিলগুলির মধ্যে একটি আউটপুট দেয়:

Input = 1Aউপরের বাম কোণে শুরু হওয়া চিঠিটি দিয়ে একটি সর্পিল দেয় :

A B C D E F
T U V W X G
S 5 6 7 Y H
R 4 9 8 Z I
Q 3 2 1 0 J
P O N M L K

Input = 2Aউপরের ডান দিকের কোণায় শুরু হওয়া চিঠিটি দিয়ে একটি সর্পিল দেয় :

P Q R S T A
O 3 4 5 U B
N 2 9 6 V C
M 1 8 7 W D
L 0 Z Y X E
K J I H G F

Input = 3Aনীচের ডান কোণে শুরু করে চিঠিটি দিয়ে একটি সর্পিল দেয় :

K L M N O P
J 0 1 2 3 Q
I Z 8 9 4 R
H Y 7 6 5 S
G X W V U T
F E D C B A

Input = 4Aনীচের বাম কোণে শুরু হওয়া চিঠিটি দিয়ে একটি সর্পিল দেয় :

F G H I J K
E X Y Z 0 L
D W 7 8 1 M
C V 6 9 2 N
B U 5 4 3 O
A T S R Q P

আপনি দেখতে পাচ্ছেন, সর্পিলটি সর্বদা ঘড়ির কাঁটার দিকে চলে যায় এবং বাইরে থেকে ভিতরের দিকে চলে যায় ।

নিয়মগুলি সহজ:

  • আপনার STDIN এবং STDOUT ব্যবহার করে একটি সম্পূর্ণ প্রোগ্রাম সরবরাহ করা প্রয়োজন, বা সম্ভব না হলে নিকটতম সমতুল্য।
  • একটি ইনপুট দেওয়া ( 1, 2, 3, 4), সম্পর্কিত সর্পিল আউটপুট।
  • ট্রেলিং হোয়াইটস্পেসগুলি অনুমোদিত
  • ধারাবাহিকভাবে ব্যবহার করা হলে নেতৃস্থানীয় হোয়াইটস্পেসগুলি অনুমোদিত
  • আউটপুট জন্য আপনাকে বড় হাতের অক্ষর ব্যবহার করতে হবে, ছোট হাতের অক্ষর অনুমোদিত নয়।
  • এটি , তাই কমপক্ষে বাইটের সাথে প্রোগ্রামটি জয়ী!

3
সম্পর্কিত । এই ধরণের অনুভূতি
ডুপের


2
স্থানগুলি প্রয়োজনীয়?
মাল্টেসেন

@ মালটিসেন হ্যাঁ, তারা প্রয়োজন।
আদনান

উত্তর:


5

সিজেম, 45 43 42 বাইট

'[,65>A,+W%(s{W%z_,@s/(@.+}A*ri{W%z}*Sf*N*

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

'[,65>  e# Push the upper-case alphabet.
A,+     e# Append the digits.
W%      e# Reverse everything.
(s      e# Pull off the 9 and turn it into a string.
{       e# Repeat this 10 times to roll the string up in a spiral...
  W%z   e#   Rotate the existing grid clockwise.
  _,    e#   Duplicate grid so far and get the number of rows.
  @s    e#   Pull up the list of characters and flatten it into one string.
  /     e#   Split the string into chunks of the size of the number of rows.
  (     e#   Pull off the first chunk.
  @.+   e#   Pull up the grid so far and prepend the chunk as a new column.
}A*     e# We now have the spiral as desired, with the A in the bottom left corner.
ri      e# Read input and convert to integer.
{       e# Repeat this code that often..
  W%z   e#   Rotate the spiral clockwise.
}*
Sf*     e# Join each line with spaces.
N*      e# Join the lines with linefeeds.

10

জাপট , 53 বাইট 58 59 60

@ বুদ্ধিমানের জন্য 5 টি বাইট সংরক্ষণ করা হয়েছে

"FGHIJK EXYZ0L DW781M CV692N BU543O ATSRQP"¸zU ®¬¸} ·

এটি রোটেট কমান্ডটি ব্যবহার করে যা আমি কখনই ভাবিনি যে এত কার্যকর হবে

ব্যাখ্যা এবং & অবহেলিত

"FGHIJK EXYZ0L DW781M CV692N BU543O ATSRQP"qS zU m_q qS} qR

             // Implicit: U = input
"FGH...SRQP" // String, " " represent newlines
qS           // Split   " "
zU           // Rotate
m_           // Loop the lines
  q qS}      // Insert spaces
qR           // Join by newlines

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


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

@ ডেভিডক্যারাহার আমি ফায়ারফক্সে চেষ্টা করার পরামর্শ দিচ্ছি, এটি সেই ব্রাউজারটি যা অনুবাদক সবচেয়ে ভাল কাজ করে বলে মনে হয়
ডাউনওয়েট

হ্যাঁ, এটি ফায়ারফক্সে কাজ করে। খুশী হলাম।
ডেভিডসি

ওহ, সুন্দর! কয়েকটি ইউনিকোড শর্টকাট ব্যবহার করে আপনি বাইট গণনাটি পাঁচটি করে কাটাতে পারেন:"FGHIJK EXYZ0L DW781M CV692N BU543O ATSRQP"¸zU ®¬¸} ·
ETH প্রোডাকশনগুলি

@ETH প্রোডাকশনগুলি সেগুলি আগে দেখেনি, ধন্যবাদ!
দুষ্ট শিপ

3

গণিত 156 বাইট

চিঠিগুলির প্রাথমিক স্ট্রিংকে "ABCDEFTUVWXGS567YHR498ZIQ3210JPONMLK"অ্যারেতে রূপান্তর করে । সেই অ্যারের সময়ে Nestপ্রযোজ্য , যেখানে এন ইনপুট নম্বর। প্রতিটি সারি প্রয়োগ করার পরে অ্যারে দ্বারা কাজ করে । চূড়ান্ত অ্যারেটিকে স্ট্রিংয়ে রূপান্তর করে।fn-1fTransposeReverseg

s=StringJoin;r=Riffle;f=Nest[Reverse/@Transpose@#&,Partition[Characters@"ABCDEFTUVWXGS567YHR498ZIQ3210JPONMLK",6],#-1]&;
g@n_:=s@r[s/@(r[#," "]&/@f[n]),"\n"]

উদাহরণ

g[4]

আউটপুট


যদি আউটপুটটিকে অ্যারে হিসাবে দেওয়া যেতে পারে তবে ফাংশনটি gঅপ্রয়োজনীয় হবে।

f[4]

{F "এফ", "জি", "এইচ", "আই", "জ", "কে"}, {"ই", "এক্স", "ওয়াই", "জেড", "0", "এল "}, {" ডি "," ডাব্লু "," 7 "," 8 "," 1 "," এম "}, C" সি "," ভি "," 6 "," 9 "," 2 ", "এন"}, {"বি", "ইউ", "5", "4", "3", "ও"}, A "এ", "টি", "এস", "আর", "কি "," পি "}}


ইনফিক্স ফর্মটি কিছু ক্ষেত্রে ব্যবহার করা যেতে পারে।
LegionMammal978

3

ম্যাটল্যাব, 61 89 বাইট

b=[65:90 48:57];n=zeros(12,6);n(2:2:end)=rot90(b(37-spiral(6)),input('')-2);disp([n' ''])

আমি কিছুটা নামতে পারব কিনা তা আমি দেখতে পাচ্ছি। যদিও নিশ্চিত না।

এটি 0 থেকে 9 এর পরে A থেকে Z পর্যন্ত সমস্ত অক্ষরের একটি অ্যারে তৈরি করে, তারপরে একটি সর্পিল লাগে এবং এটি ব্যবহার করে সঠিক ক্রমে ডেটা সাজানোর জন্য। অ্যারেটি তখন ব্যবহারকারী নির্দিষ্ট পরিমাণে আবর্তিত হয় এবং তারপরে মুদ্রিত হয়।

আউটপুট ধারাবাহিকভাবে প্রশ্নের দ্বারা অনুমোদিত হিসাবে শীর্ষস্থানীয় স্পেস ব্যবহার করে (আসলে কোনও অতিরিক্ত বাইট ব্যয় না করে এটি এর পরিবর্তে ফাঁকা স্থানগুলি করতে পারে)। এখানে একটি উদাহরণ:

 F G H I J K
 E X Y Z 0 L
 D W 7 8 1 M
 C V 6 9 2 N
 B U 5 4 3 O
 A T S R Q P

যেহেতু আমি দেখেছি যে স্পেসগুলি প্রয়োজনীয়, এই মূল কোডটি (for১ এর জন্য) বৈধ নয় কারণ এটি প্রতিটি অক্ষরের মধ্যে একটি স্থান যোগ করে না। তবে আমি এটি এখানে রেফারেন্সের জন্য যুক্ত করব।

b=['A':'Z' '0':'9'];disp(rot90(b(37-spiral(6)'),6-input('')))

এবং উত্পাদন:

ABCDEF
TUVWXG
S567YH
R498ZI
Q3210J
PONMLK

2

জাভাস্ক্রিপ্ট ES6, 165 172

হার্ডকোডযুক্ত স্ট্রিং থেকে শুরু করে সরল আবর্তন

নোট 1 বাইট সংরক্ষিত thx @ ব্যবহারকারী 81655

p=prompt();alert("ABCDEF TUVWXG S567YH R498ZI Q3210J PONMLK".split` `.map((r,y,a)=>[...r].map((c,x)=>p<2?c:a[p<3?5-x:p<4?5-y:x][p<3?y:p<4?5-x:5-y]).join` `).join`
`)

পরীক্ষার স্নিপেট:

// Test: redefine alert to write inside the snippet
alert=x=>P.innerHTML=x

p=prompt();
alert(
  "ABCDEF TUVWXG S567YH R498ZI Q3210J PONMLK"
  .split` `
  .map(
    (r,y,a)=>
    [...r].map(
      (c,x)=>p<2?c:
      a
       [p<3?5-x:p<4?5-y:x]
       [p<3?y:p<4?5-x:5-y]
    ).join` `
  ).join`\n`
)
<pre id=P></pre>


আপনি টেম্পলেট স্ট্রিংগুলির `<newline>`মধ্যে নিজেরাই নিউলাইন চরিত্রগুলি রাখতে পারেন তার চেয়ে এক বাইট কম খাটো `\n`
ব্যবহারকারী81655

@ ব্যবহারকারী 81655 থেক্স, এমনকি 1 বাইট গণনা, তবে এটি এতই
ভয়ঙ্কর

1

পাইথ - 60 বাইট

হার্ডকোডগুলি স্ট্রিং করে এবং সমস্ত বিকল্প পেতে ম্যাট্রিক্স অপারেশন ব্যবহার করে।

jjL\ @[_CKc6"ABCDEFTUVWXGS567YHR498ZIQ3210JPONMLK"KC_K__MK)Q

টেস্ট স্যুট


2
+<G6"পরিবর্তে "ABCDEF2 বাইট সংরক্ষণ করুন।
পূর্বকুডারী

1

রুবি, 173 বাইট

->i{_,r,o=->s{s.map{|i|i*' '}},->s{s.transpose.map{|i|i.reverse}},%W(ABCDEF TUVWXG S567YH R498ZI Q3210J PONMLK).map(&:chars);puts i<2?_[o]:i<3?_[t=r[o]]:i<4?_[r[t]]:_[r[r[t]]]}

Ungolfed:

-> i {
  _ = -> s { s.map{|i| i*' ' } }
  r = -> s { s.transpose.map{|i| i.reverse } }
  o = %W(ABCDEF TUVWXG S567YH R498ZI Q3210J PONMLK).map(&:chars)
  puts i<2?_[o]:i<3?_[t=r[o]]:i<4?_[r[t]]:_[r[r[t]]]
}

ব্যবহার:

->i{_,r,o=->s{s.map{|i|i*' '}},->s{s.transpose.map{|i|i.reverse}},%W(ABCDEF TUVWXG S567YH R498ZI Q3210J PONMLK).map(&:chars);puts i<2?_[o]:i<3?_[t=r[o]]:i<4?_[r[t]]:_[r[r[t]]]}[4]
F G H I J K
E X Y Z 0 L
D W 7 8 1 M
C V 6 9 2 N
B U 5 4 3 O
A T S R Q P

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