সেমাফোর এনকোডার ফ্ল্যাগ করুন


12

উইকিপিডিয়াতে বর্ণিত সেমফোর সিস্টেম অনুসারে আপনার লক্ষ্যটি হ'ল একটি ফ্ল্যাগ সেমোফোর এনকোডার , যা প্রদত্ত বাক্যটিকে উইকিপিডিয়ায় বর্ণিত সেমফোর সিস্টেম অনুসারে সংশ্লিষ্ট ফ্ল্যাট সেম্যাফোর অক্ষরে রূপান্তরিত করে ।

অনুমান করুন যে ইনপুটটি স্টিন (বা সমমান) এর মাধ্যমে সরবরাহ করা একটি একক বাক্য। আপনার আউটপুটটি semaphore অক্ষরের একটি সিরিজ হওয়া উচিত, প্রতিটি সারি বাক্যটির একটি শব্দকে উপস্থাপন করে। আপনার কেবল বর্ণমালা (AZ) নিয়ে ডিল করতে হবে এবং অন্য সমস্ত স্থান-অ-অক্ষরগুলি উপেক্ষা করা উচিত তবে আপনাকে অবশ্যই বড় হাতের এবং ছোট হাতের অক্ষর উভয়ই পরিচালনা করতে সক্ষম হবেন। আপনার আউটপুটটিতে অতিরিক্ত সাদা স্থান থাকতে অনুমতি দেওয়া হয়েছে।

সেমফোর্ অক্ষর একটি সঙ্গে, একটি 3x3 বর্গক্ষেত্র হিসেবে প্রদর্শিত করা আবশ্যক Oমধ্য ও পতাকা অক্ষর দ্বারা প্রতিনিধিত্ব অবস্থানকে | - / \। প্রতিটি সেমফোর অক্ষর অবশ্যই একটি স্পেস দ্বারা সংলগ্ন অক্ষরগুলি থেকে পৃথক করা উচিত এবং প্রতিটি সারি অবশ্যই একটি ফাঁকা রেখার দ্বারা পৃথক করা উচিত। আপনার প্রদর্শনের জন্য খুব দীর্ঘ হতে পারে এমন শব্দের মোড়কের বিষয়ে চিন্তা করবেন না - এমন ভান করুন যে আপনার লাইনের অসীম দৈর্ঘ্য রয়েছে।

নমুনা ইনপুট:

abcdefg hijklmn opqrstu vwxyz

নমুনা আউটপুট:

        \    |    /
 O  -O   O   O   O   O-  O
/|   |   |   |   |   |   |\

    \    |   |    /
-O   O   O-  O   O   O-  O
/   /       /   /   /   / \

\    |    /         \|  \ /
-O  -O  -O  -O- -O   O   O
                  \ 

 |    /   / \ 
 O   O-  O   O-  O-
  \       \       \

নমুনা ইনপুট:

This is Code Golf.

নমুনা আউটপুট:

\|      \ 
 O  -O   O  -O 
    /   /     \

\      
 O  -O 
/     \

\   \    |    /
 O  -O   O   O 
 |       |   |

    \     /  
 O  -O   O   O-
 |\     /    |

যেহেতু এটি , তাই সংক্ষিপ্ততম সমাধানটি জয়লাভ করে।


1
কোলমোগোরভ-জটিলতা ? এটি আমার কাছে মনে হচ্ছে যে এটি মূলত এটি একটি অনুসন্ধান সারণীটি সংকোচনের বিষয়ে।
পিটার টেলর

@ পিটার টেলর হ্যাঁ, এই ট্যাগটি যুক্ত করা সম্ভবত একটি ভাল ধারণা। ধন্যবাদ।
মাইগিমারু

and each row must be separated by a blank line=> প্রতিটি শব্দ বোঝানো হয়, তাই না?
ব্যবহারকারী অজ্ঞাত

1
এই ধাঁধাটি পড়ার আগে আমি ভুল করে ভেবেছিলাম প্রোগ্রামিং অর্থে এটি অর্ধমুক্তগুলির সাথে করা উচিত। ¡Jajajajajja!
টমাস এডিং

@ ব্যবহারকারীর অজানা আমি সেমফোর অক্ষরের সারি উল্লেখ করতে সেখানে সারি ব্যবহার করছিলাম । সম্ভবত পরিবর্তে শব্দ ব্যবহার করা আরও ভাল পছন্দ হত।
মাইগিমারু

উত্তর:


5

পার্ল, 282 264 251 247 245 243 241 240 236 233 229 227 220 218 216 214 টি অক্ষর

$_=lc<>;map{y/a-z//cd;y/a-z/`HABDP\xc0(!\x12"$0\xa0\t\n\f\30\x88\3\5\x82\24\x84\21\x90/;@a=($/)x4;map{$s=ord;$a[$_/3].=substr" \\|/-O-/|\\",$_==4||$s>>$_-($_>4)&1?$_+1:0,1for 0..8;$_.=" "for@a}split//;print@a}split

কিছু prettifying লাইন বিরতি সঙ্গে:

$_=lc<>;
map{
y/a-z//cd;
y/a-z/`HABDP\xc0(!\x12"$0\xa0\t\n\f\30\x88\3\5\x82\24\x84\21\x90/;
@a=($/)x4;
map{
$s=ord;
$a[$_/3].=substr" \\|/-O-/|\\",$_==4||$s>>$_-($_>4)&1?$_+1:0,1for 0..8;
$_.=" "for@a
}split//;
print@a}split

এই কাজটি করতে আমার কিছুটা সময় লেগেছে (পার্ল উত্তরের প্রথম চেষ্টা)। এটি অন্যান্য অনেক উত্তরের অনুরূপ ধারণার উপর ভিত্তি করে। প্রতিটি পতাকা 8 টির মধ্যে একটিতে হতে পারে, দুটি পতাকা রয়েছে এবং দুটি পতাকা কখনও একই অবস্থানে থাকতে পারে না। এর অর্থ আমি উভয় পতাকাগুলির অবস্থানকে একটি বাইটে এনকোড করতে পারি - যার অর্থ আমি পার্লের y///ফাংশন (অপারেটর) ব্যবহার করে কোনও অক্ষর থেকে সরাসরি এটির এনকোডিংয়ে অনুবাদ করতে পারি । সুতরাং: -

a = 01100000 96 = `
b = 01001000 72 = H
c = 01000001 65 = A
d = 01000010 66 = B
e = 01000100 68 = D
f = 01010000 80 = P
etc...

অতএব:

y/a-z/`HABDP..../;

আমি প্রোগ্রামটির অনুলিপি এবং আটকানো সহজ করতে সাধারণ ব্যবহৃত পরিসরের বাইরে বেশ কয়েকটি চরিত্রের হাত থেকে রক্ষা পেয়েছি - তবে আমি নিশ্চিত যে আমি অক্ষরগুলি নিজেরাই আমাকে সংরক্ষণ করে পালানোর কোডগুলি প্রতিস্থাপনের জন্য একটি প্রোগ্রাম লিখতে পেরেছি I'm প্রায় 30 টি অক্ষর।


6

পাইথন, 244 238 233 232

e='abhioptuwycdjmnsqxzfgvklebr'
for w in raw_input().split():
 for i in 0,3,6,9:print' '.join(''.join((' '+'\|/-O-/|\ '[j])[`j`in'4'+'6736031025071568328578162735'[e.find(c):][:2]]for j in range(i,9)[:3])for c in w if c.lower()in e)

এটি আমার পছন্দের কৌশলটি ব্যবহার করে: একক-ট্র্যাক এনকোডিং। আমি সেম্যাফোর বিটস (লেগেছে) লেবেল করেছি

\|/     012
- -  -> 3 5
/|\     678

নিম্নোক্ত চার্টটি প্রাপ্ত করার জন্য কোন চিঠির জন্য স্কিট হয়:

0: ciotuy
1: djkptv
2: elquwx
3: bhopqrs
5: fjmrwyz
6: ahiklmn
7: abcdefg
8: gnsvxz

প্রতিটি অক্ষর চার্টে ঠিক দু'বার ঘটে, যেহেতু সিগন্যালম্যানের দুটি বাহু রয়েছে। তারপরে, আমি এটিকে অক্ষরের মধ্যে গ্রাফ হিসাবে দেখি, অক্ষরগুলি ভাগ করে নেওয়ার জন্য পৃথক প্রান্তের সাথে, প্রান্তটি ভাগ করে দেওয়া সিবিটি অনুসারে লেবেলযুক্ত। আদর্শভাবে, আমি এই গ্রাফটির মধ্য দিয়ে একটি হ্যামিল্টনের পাথ খুঁজে পেয়েছি, যেমন পরবর্তী প্রান্তগুলিতে একই লেবেল না থাকে। এ জাতীয় কোনও পাথ নেই ... সুতরাং আপনি খেয়াল করতে পারেন যে ভেরিয়েবলটিতে দুটিবার eচিঠিটি রয়েছে b

আমার প্রায়-হ্যামিল্টন পাথ দিয়ে e, আমি dট্র্যাভারসালটিতে ব্যবহৃত স্কিট লেবেলের একটি অ্যারে তৈরি করি e। তারপরে, অস্ত্রটি কোথায় রাখবেন তা নির্ধারণের জন্য, সিগন্যালম্যানকে কেবল নিম্নোক্ত চার্টে পছন্দসই চিঠিটি খুঁজে পেতে হবে

abhioptuwycdjmnsqxzfgvklebr
6736031025071568328578162735

যেহেতু তার বাহুগুলি সরাসরি নীচে এবং চিঠির নীচে এবং অবস্থানে চলে।


আমি এই ideone চালানো না হওয়া পর্যন্ত আমি পরিবর্তন পাই নি to_lower()করার lower()। এছাড়াও, যখন আমি এটিকে বর্ণমালাবিহীন ইনপুট দেওয়ার চেষ্টা করেছি তখন এটি একটি ত্রুটি ঘটেছে।
মাইগিমারু

4

স্কালা, 272 টি অক্ষর

println(readLine.filter(c=>c.isLetter||c==' ').toLowerCase.split(" ").map{_.map(q=>("    O    "/:("^@a,6Tr?W*+5Sq9(2Pn%/-47MU"(q-'a')-27+""))((g,x)=>g.updated(x-'0',"\\|/-O-/|\\"(x-'0'))).grouped(3).toList).transpose.map(_.mkString(" ")).mkString("\n")}.mkString("\n\n"))

অবহেলিত (ভাল, কম গল্ফযুক্ত):

println(
  readLine.filter(c => c.isLetter || c==' ').
  toLowerCase.
  split(" ").
  map{ s =>
    val lookup = "^@a,6Tr?W*+5Sq9(2Pn%/-47MU".map(c => (c-27).toString)
    s.map(q =>
      ("    O    " /: lookup(q-'a')){(g,x) => 
        g.updated(x-'0', "\\|/-O-/|\\"(x-'0'))
      }.grouped(3).toList
    ).transpose.map(_.mkString(" ")).mkString("\n")
  }.mkString("\n\n")
)

2

রুবি, 287 টি অক্ষর

gets.split.map{|w|puts (0..2).map{|l|w.chars.map{|c|(' '*576+'CAEAEADBCAF DAEBDACAAAI EAFADACAABG BAEAFEL A_ FACABADADAAG AAFBADQ AGX GAFADABAAAAF'.split.zip('\\|/-o-/|\\'.chars).map{|a,c|(a.chars.zip([' ',c]*9).map{|x,z|[z]*(x.ord-64)}.flatten)}.transpose*''*2)[c.ord*9+3*l,3]}*' '},''}

এসটিডিআইএন-এ অবশ্যই ইনপুট দিতে হবে।


1

নতুন লাইনের সাথে 520 নিউলাইন ছাড়াই স্কেল 494 :

def k(i:Int,d:Int=0):(Int,Int)=if(i<(7-d))(d,i+1)else k(i-(7-d),d+1)
def t(i:Char)=(if(i=='y')i-4 else
if(i=='z')i+2 else
if(i=='j')i+14 else
if(i>='v')i+3 else
if(i>'i')i-1 else i)-'a'
def q(p:(Int,Int),i:Int,c:Char)=if(p._1==i||p._1+p._2==i)""+c else" "
def g(r:Int,c:Char)={val p=k(t(c.toLower))
print((r match{case 1=>q(p,3,'\\')+q(p,4,'|')+q(p,5,'/')
case 2=>q(p,2,'-')+"o"+q(p,6,'-')
case 3=>q(p,1,'/')+q(p,0,'|')+q(p,7,'\\')})+" ")}
for(w<-readLine.split(" ")){println;for(r<-(1 to 3)){w.map(c=>g(r,c));println}}

ungolfed:

def toClock (i: Int, depth: Int=0) : (Int, Int) = {
  if (i < (7 - depth)) (depth, i+1) else toClock (i - (7-depth), depth + 1)}

def toIdx (i: Char) = {
 (if (i == 'y') i - 4  else 
  if (i == 'z') i + 2  else 
  if (i == 'j') i + 14 else 
  if (i >= 'v') i + 3 else 
  if (i > 'i') i - 1 else i ) - 'a'}

def p2c (pair: (Int, Int), i: Int, c: Char) = {
 if (pair._1 == i || pair._1 + pair._2 == i) ""+c else " "
}

def printGrid (row: Int, c: Char) = {
  val idx = toIdx (c.toLower)
  val pair = toClock (idx)
  row match {
    case 1 => { print(
      p2c (pair, 3, '\\') + 
      p2c (pair, 4, '|') + 
      p2c (pair, 5, '/') + " ")
    }
    case 2 => { print(
      p2c (pair, 2, '-') + "o" + 
      p2c (pair, 6, '-') + " ")
    }
    case 3 => { print(
      p2c (pair, 1, '/') + 
      p2c (pair, 0, '|') + 
      p2c (pair, 7, '\\') + " ")
    }
  }
}

val worte = "This is Code Golf"
(1 to 3).map (row => {worte.map (c => printGrid (row, c));println})

ব্যাখ্যা:

আমি একটি ঘড়ির প্যাটার্ন পর্যবেক্ষণ করেছি, তবে 12 ঘন্টা নয়, তবে 8. এবং স্টার্টটাইম 0 হয়, যেখানে 6 টা বাজানো হয় এবং a, b, c হচ্ছে প্রথম কোড, দক্ষিণে প্রথম (এক) পতাকা সহ with

যেহেতু পতাকা 1 এবং 2 পৃথক পৃথক, তাই আমরা প্রথম পতাকাটির জন্য নিম্ন সংখ্যার সাথে সমস্ত সংমিশ্রণকে বাছাই করতে পারি। দুর্ভাগ্যক্রমে, প্রথম থেকেই সূক্ষ্ম শৃঙ্খলা বিঘ্নিত হয়, যখন জ আমাকে অনুসরণ করে না, তবে কে, এল, এম, এবং পরে এটি একটি জগাখিচুড়ি হয়ে যায়।

অতএব আমি ম্যাপিংয়ের জন্য আমার কীগুলি পুনরায় সাজিয়েছি:

val iis = is.map {i => 
  if (i == 'y') i - 4  else 
  if (i == 'z') i + 2  else 
  if (i == 'j') i + 14 else 
  if (i >= 'v') i + 3 else 
  if (i > 'i') i - 1 else i }.map (_ - 'a')

iis.zipWithIndex .sortBy (_._1) .map (p => (p._1, ('a' + p._2).toChar))

Vector((97,a), (98, b), (99, c), (100,d), (101,e), (102,f), (103,g), 
      (104,h), (105,i), (106,k), (107,l), (108,m), (109,n), 
      (110,o), (111,p), (112,q), (113,r), (114,s), 
      (115,t), (116,u), (117,y), -------
      -------  (120,j), (121,v), 
      (122,w), (123,x), 
      (124,z))

আমরা যদি প্রতিটি চরিত্র থেকে 'এ' বিয়োগ করি, আমরা সংখ্যাগুলি পাই (0 থেকে 7 + 6 + 5 + ... + 1)। আমরা একটি অক্ষর-গ্রিডের সংখ্যাগুলি ম্যাপ করতে পারি

3 4 5   \ | /            |
2   6   - o -    - o   - o 
1 0 7   / | \    (2, ) (2,2)

দুটি সংখ্যার জুড়ি দুটি পতাকা মানচিত্র করতে পারে, যেখানে প্রথম সংখ্যাটি প্রথম পতাকাটির জন্য 0 থেকে 6 এর সূচক এবং দ্বিতীয় পতাকাটি দ্বিতীয় পতাকার জন্য 1 থেকে 7 পর্যন্ত নয়, তবে এর থেকে দূরত্বের জন্য প্রথম দ্বিতীয় পতাকা। (২,২) এর অর্থ হ'ল, প্রথম পতাকাটি পশ্চিমের দিকে, এবং দ্বিতীয়টি সেখান থেকে উত্তর-পূর্বের দুটি ধাপ clock

def toClock (i: Int, depth: Int=0) : (Int, Int) = {
  if (i < (7 - depth)) (depth, i+1) else toClock (i - (7-depth), depth + 1)}

Vector( (0,1), (0,2), (0,3), (0,4), (0,5), (0,6), (0,7), 
    (1,1), (1,2), (1,3), (1,4), (1,5), (1,6), 
    (2,1), (2,2), (2,3), (2,4), (2,5), 
    (3,1), (3,2), (3,3), 
           (4,2), (4,3), 
    (5,1), (5,2), 
    (6,1))

স্কালার সম্পর্কে আমি বেশি কিছু জানি না। আমি আদর্শের উপর এটি পরীক্ষা করার কোনও উপায় আছে কি? আমি এটি একটি object Main extends Applicationব্লকে মোড়ানোর চেষ্টা করেছি , তবে এটি যথেষ্ট বলে মনে হচ্ছে না।
মাইগিমারু

আইডিয়োনকে মেইন নামে একটি শ্রেণি প্রয়োজন, যদি আমি সঠিকভাবে মনে করি তবে একটি প্রধান পদ্ধতি, সম্ভবত অ্যাপ্লিকেশনটি প্রসারিত করা উচিত (অ্যাপ্লিকেশন (-২.৮) এর পরিবর্তে স্কেল -২.৯ এর জন্য) - এবং এটি স্টিডিন থেকে পড়ে? ইন simplyscala আপনি আরো সহজভাবে কোড পরীক্ষা হতে পারে। যদি আপনি এটির readLineসাথে শেষ লাইনে প্রতিস্থাপন করেন তবে "readLine"এটি কাজ করা উচিত (কোডটি 2.8 সামঞ্জস্যপূর্ণ)।
ব্যবহারকারী অজ্ঞাত

ধন্যবাদ! আমি সরলস্কলা সম্পর্কে জানতাম না, যা জিনিসকে আরও সহজ করে তোলে।
মাইগিমারু

আপনার যদি আবার লিঙ্কটির প্রয়োজন হয়: আমি ইতিমধ্যে মেটাতে কোথাও লিঙ্কটি প্রবেশ করিয়েছি, যেখানে এই জাতীয় জিনিস সংগ্রহ করা হয়।
ব্যবহারকারী অজ্ঞাত

এই হ্যান্ডেল কি বড় হাতের?
থমাস এডিং

1

হাসেল 331 357 339 টি অক্ষর

Golfed:

import Data.Char
t[x,y]=q[x,mod(y+1)8]
q z@[x,y]|x==y=[x+1,y+2]|0<1=z
x%y=[x,y]
c 65=0%1
c 74=6%4
c 75=1%4
c 79=2%3
c 84=3%4
c 86=4%7
c 87=5%6
c 89=3%6
c 90=6%7
c x=t$c$pred x
_!9='O'
c!n|n`elem`c="|/-\\"!!mod n 4|0<1=' '
s x=do n<-[3:4%5,2:9%6,1:0%7];'\n':do c<-x;' ':map(c!)n
main=putStr.s.map(c.ord.toUpper)=<<getLine

Ungolfed:

type Clock = [Int]

tick :: Clock -> Clock
tick [h, m] = tick' [h, mod (m + 1) 8]

tick' :: Clock -> Clock
tick' [h, m]
  | h == m = [h + 1, m + 2]
  | otherwise = [h, m]

clock :: Char -> Clock
clock 'a' = [0,1]
clock 'j' = [6,4]
clock 'k' = [1,4]
clock 'o' = [2,3]
clock 't' = [3,4]
clock 'v' = [4,7]
clock 'w' = [5,6]
clock 'y' = [3,6]
clock 'z' = [6,7]
clock c = tick $ clock $ pred c

arm :: Int -> Char
arm 0 = '|'
arm 1 = '/'
arm 2 = '-'
arm 3 = '\\'

drawAt :: Clock -> Int -> Char
drawAt _ 9 = 'O'
drawAt c n = if n `elem` c
  then arm $ n `mod` 4
  else ' '

-- showClock is not in golfed code. Just there for debugging.
showClock :: Clock -> String
showClock c = unlines $ map (map $ drawAt c) [
    [3,4,5]
  , [2,9,6]
  , [1,0,7]
  ]

showClocks :: [Clock] -> String
showClocks cs = unlines $ map (showClocks' cs) [[3,4,5],[2,9,6],[1,0,7]]

showClocks' :: [Clock] -> [Int] -> String
showClocks' cs ns = cs >>= \c -> ' ' : map (drawAt c)

mainx :: IO ()
mainx = putStr . showClocks . map clock =<< getLine

345    \|/                                     \                      
2 6 == -O-          -O          tick  -O   ==   O      tick   O   ==  -O
107    /|\          /                 /        /              |\      /
             [1,2] or [2,1]    tick [1,2] == [1,3]     tick [0,7] == [1,2]

এনকোডিং হয় [hour, minute]যেখানে ঘড়িতে 8 ঘন্টা 8 মিনিট থাকে। মিনিটগুলি ঘন্টার চেয়ে দ্রুত সরে যায়। ঘন্টা এবং মিনিট সমান হবে এমন ঘড়ির কাঁটা যদি ঘন্টার সাথে 1 এবং মিনিটে 2 যোগ করে (উপরের দ্বিতীয় টিক উদাহরণটি দেখুন)। এই একমাত্র উপায় ঘন্টা বৃদ্ধি। সময়টি কিছুটা স্বেচ্ছাচারিত মুহুর্তে পৌঁছলে ঘন্টা বাড়বে না। যখন মিনিট সময় সমান হবে। অরোগল্ফড কোডে, clockচিঠিগুলি ঘড়িতে পরিণত করে যা সেমফোরকে উপস্থাপন করে। বেশিরভাগ ঘড়ি পূর্ববর্তীগুলির থেকে টিক দেওয়ার ভিত্তিতে নির্মিত। বাকিরা শক্ত কোডাড। কোডের আসলে কিছুই নেই।


1

পার্ল, 356 , 275 অক্ষর

'অন্যথায়' যদি 'প্রতিস্থাপন করে' প্রচুর পরিমাণে চর সংরক্ষণ করা হয়েছিল? :' নির্মাণ.

@_=split('', $ARGV[0]);for (@_){print eval{/[ciotuy]/ ?'\\':' '}.eval{/[djkptv]/ ?'|':' '}.eval{/[elquwx]/ ?'/':' '}."\n".eval{/[bhopqrs]/ ?'-':' '}."0".eval{/[fjmrwyz]/ ?'-':' '}."\n".eval{/[ahiklmn]/ ?'/':' '}.eval{/[abcdefg ]/ ?'|':' '}.eval{/[gnsvxz]/ ?'\\':' '."\n"};}

আপনার কোডটি কেবল ছোট হাতের অক্ষরের জন্য কাজ করছে বলে মনে হচ্ছে। আপনি যদি এর <>পরিবর্তে ব্যবহার $ARGV[0]করেন তবে স্টিডিনের কাছ থেকে ইনপুট নিতে পারেন এবং lcসমস্ত অক্ষরকে ছোট আকারে রূপান্তর করতে ব্যবহার করতে পারেন । এটি আপনাকে 4 টি অক্ষর সংরক্ষণের অতিরিক্ত সুবিধা রয়েছে। এটি অক্ষর-বর্ণহীন অক্ষরগুলিকেও পরিচালনা করে না, তবে You only need to deal with the alphabet (A-Z) and should ignore all other non-space charactersতাদের সাথে কী করবে সে সম্পর্কে
গ্যারেথ

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

@ মিগিমারু আমি এটি সংশোধন করার চেষ্টা করব।
জুরা

বর্ণমালা অক্ষরের জন্য @ জুরার মুদ্রণ স্পেসগুলি গ্রহণযোগ্য। আপনার এটি ঠিক করার দরকার নেই।
মাইগিমারু

0

পাওয়ারশেল , 198 192 191 188 বাইট

-split$args|%{$s=$_
"\|/ ciotuy djkptv elquwx","-O- bho-s ^ fjmrwyz","/|\ ahik-n a-g gnsvxz"|%{$f,$p=-split$_
($s|% t*y|%{$c=$_
-join(&{$p|%{" $f"[++$i*($c-match"[$_ ]")]}})})-join' '}
''}

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

আউটপুটে একটি লেজ খালি লাইন রয়েছে।

কম গল্ফড:

-split$args|%{
    $string=$_
    "\|/ ciotuy djkptv elquwx",
    "-O- bho-s ^ fjmrwyz",
    "/|\ ahik-n a-g gnsvxz"|%{
        $flags,$patterns=-split$_
        $row=$string|% toCharArray|%{
            $char=$_
            $semaphoreRow=&{   # call the scriptblock in a new scope to reinit $i
                $patterns|%{
                    " $flags"[++$i*($char-match"[$_ ]")]  # return a flag symbol
                }
            }
            -join($semaphoreRow)
        }
        $row-join' '
    }
    ''
}

0

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

F⪪↧S «Fι«F⪪”↶↖→∧gτ→|⮌!⧴KD✂‖5»⊞H⭆K↧ⅉ&$↥x-#↖x9|²λPe⁸” «P⊗№λκ↷¹»oM³→»⸿M³↓

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

F⪪↧S «

স্পেসে লোকেস ইনপুটটি বিভক্ত করুন এবং প্রতিটি শব্দের উপরে লুপ করুন।

Fι«

প্রতিটি চরিত্রের উপর লুপ।

F⪪”↶↖→∧gτ→|⮌!⧴KD✂‖5»⊞H⭆K↧ⅉ&$↥x-#↖x9|²λPe⁸” «

সংক্ষিপ্ত স্ট্রিং fjmrwyz gnsvxz abcdefg ahiklmn bhopqrs ciotuy djkptv elquwxস্পেসে বিভক্ত করুন এবং প্রতিটি অক্ষর গোষ্ঠীর উপর লুপ করুন।

P⊗№λκ

গোষ্ঠীতে যদি বর্তমান বর্ণ থাকে তবে বর্তমান দিকটিতে একটি লাইন আঁকুন।

↷¹»

45 ° ঘড়ির কাঁটার দিকে ঘোরান।

oM³→»

কেন্দ্রটি আউটপুট করুন oএবং পরবর্তী অক্ষরের অবস্থানে যান।

⸿M³↓

পরবর্তী শব্দের শুরুতে সরান।

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