মোর্স কোড অনুবাদক


32

স্ট্যান্ডার্ড ইনপুটটিকে মোর্স কোডে রূপান্তর করতে সংক্ষিপ্ততম প্রোগ্রামটি লিখুন । সারণীতে না থাকা অক্ষরগুলি যেমন হয় তেমন মুদ্রণ করা উচিত।

আন্তর্জাতিক মোর্স কোড


1
মূলধন এবং ছোট হাতের অক্ষর উভয়ই এনকোড করা আছে?
জোয়ে অ্যাডামস

9
এছাড়াও, আপনি কি শব্দগুলির মধ্যে ব্যবধানের মতো বিশদটি পরিষ্কার করতে একটি নমুনা ইনপুট এবং আউটপুট সরবরাহ করতে পারেন?
জোয়ি অ্যাডামস

ঠিক আছে, মোর্সে, লোয়ার এবং আপার ক্ষেত্রে কোনও পার্থক্য নেই। মহাশূন্যের জন্য কোনও আসল প্রতীক নেই (এটি কেবল একটি 3/4 বার নীরবতা) সুতরাং আমার ধারণা এটি স্থান হিসাবে অনুবাদ করা উচিত।
শিকিরিউ

@ জোয়াই: বিশদটি আপনার হাতে রয়েছে।
আলেকজান্দ্রু

স্ট্যাক ওভারফ্লো প্রশ্ন কোডের মতো গল্ফ: মোর্স কোড
dmckee

উত্তর:


11

গল্ফস্ক্রিপ্ট - 74 টি অক্ষর

এই উত্তরটি কেবল বড় হাতের অক্ষর এবং অঙ্কগুলিকে সমর্থন করে। অক্ষরগুলি নিউলাইন দ্বারা পৃথক করা হয় এবং শব্দগুলি 2 টি নতুন লাইনের দ্বারা পৃথক করা হয়

{." ETIANMSURWDKGOHVF L PJBXCYZQ"?)"?/'#! 08<>"@))10%=or 2base(;{!45+}%n}%

বিশ্লেষণ

    usual}% যথারীতি অ্যারের উপরে মানচিত্রের মতো কাজ করে
    । চরের একটি অনুলিপি স্ট্যাকের উপর চাপুন
    "EITAN ..." এটি বড় হাতের অক্ষরের জন্য একটি সারণী
    ? স্ট্রিংয়ের মতো।ফাইন্ড স্ট্রিংয়ের মধ্যে সূচকটি সূচিত করে
                  অথবা -1 না পাওয়া গেলে (যেমন এটি একটি অঙ্ক)
    ) ইনক্রিমেন্ট যে সূচক তাই E => 2 টি => 3 আই => 4 ইত্যাদি খেয়াল করুন যে যদি
                  চরটি বড় হাতের অক্ষর বা স্থান নয় এটি এখন 0 (মিথ্যা)
    "? / '#! ..." এটি অঙ্কগুলির জন্য একটি সারণী। এটি ব্যবহার করা হবে
                  অন্য দেখার টেবিলের বিপরীতে।
    @ আমরা চরের তৈরি সেই অনুলিপিটিকে স্ট্যাকের শীর্ষে টানুন
    ))% 10 এসিআই ডিজিটকে একটি সংখ্যায় 2 যোগ করে এবং 10 মোডে রূপান্তর করে।
                  এটি এইভাবে করা গুরুত্বপূর্ণ কারণ সমস্ত বড় হাতের অক্ষর
                  চিঠিগুলিও এই কোডটিকে আঘাত করে এবং আমাদের তা নিশ্চিত হওয়া দরকার make
                  0..9 পরিসীমা বা পরবর্তী পদক্ষেপ ব্যর্থ হবে।
    = স্ট্রিং থেকে নবম চরটি টানুন যেমন "হ্যালো" 1 = "ই" দেয়
    বা মনে রাখবেন যদি বড় হাতের ব্যপারে ব্যর্থ হয় তবে আমাদের 0 টি ফলাফল রয়েছে
                  অঙ্ক অনুসন্ধান করা হবে
    2 বেসকে বেস 2 তে রূপান্তর করুন তাই ই => [1 0], টি => [1 1], আই => [1 0 0] ইত্যাদি
    (; তালিকার সম্মুখভাগটি পপ করুন এবং এটিকে ফেলে দিন যাতে ই => [0], টি => [1]
    45! 45 +}% প্রতিটি বিট অবহেলা করুন এবং 45 যোগ করুন, এটির আস্কি মূল্য দেয়। এবং -
    এন নিউলাইন প্রতিটি শব্দ পৃথক করে। আপনি চাইলে এটি 32 হতে পারে
                  স্ট্রোকের সাথে 1 টি স্ট্রোকের জন্য শব্দ পৃথক করুন

গল্ফস্ক্রিপ্ট - 85 অক্ষর

স্বাচ্ছন্দ্যের প্রয়োজনীয়তার কারণে এটি আমার এসও উত্তরের চেয়ে কম The

{." ETIANMSURWDKGOHVF!L!PJBXCYZQ"?)"UsL?/'#! 08<>"@".,?"58,48>+?=or
2base(;{!45+}%n}%

যেহেতু বিরামচিহ্নগুলি এমনকি এখানে প্রয়োজনীয় নয়, তাই আমি উত্তরটি আরও ছোট করতে পারি

এসও গল্ফস্ক্রিপ্ট থেকে আমার উত্তর
- 107 অক্ষর

ইনপুট শেষে নতুন লাইন সমর্থিত নয়, তাই এর মতো কিছু ব্যবহার করুন

echo -n Hello, Codegolfers| ../golfscript.rb morse.gs

চিঠিগুলি একটি বিশেষ কেস এবং ছোট হাতগুলিতে রূপান্তরিত হয় এবং তাদের বাইনারি অবস্থানে অর্ডার করা হয়। বাকী সমস্ত কিছুই অনুবাদ টেবিল দ্বারা সম্পন্ন হয়

' '/{{.32|"!etianmsurwdkgohvf!l!pjbxcyzq"?)"UsL?/'#! 08<>"@".,?0123456789"?=or
2base(;>{'.-'\=}%' '}%}%'/'*

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

@ ডিএমকেকে, সম্পন্ন জর্জের স্ক্রিপ্ট লক্ষ্য করেছে যে আমার গণনা একের পর এক বাইরে গেছে, তাই আমি এটিও স্থির করেছি
gnibbler

বিশ্লেষণটি দেখার জন্য উর্ধ্বতনগুলির প্রয়োজন ... বু! বিশ্লেষণটি কী উত্তরগুলি মূল্যবান করে তোলে!
নিক লারসেন

@ নিক, ঠিক আছে আমি মনে করি এটি যতটা সংক্ষিপ্তভাবে পেতে পারি তাই আমি এই বিশ্লেষণে কাজ করতে
পারব

20

সি # (213 টি অক্ষর)

আমি নিশ্চিত যে এই অভ্যাস দীর্ঘায়িত হবে না, তবে কমপক্ষে আমি এখানে প্রথম কৌশলটি পেয়েছি!

class P{static void Main(string[] a){foreach(var t in a[0]){var c="";for(int i=" ETIANMSURWDKGOHVF L PJBXCYZQ  54 3   2       16       7   8 90".IndexOf(t);i>0;i/=2)c="-."[i--%2]+c;System.Console.Write(c+"  ");}}}

এবং পাঠযোগ্য বিন্যাসে:

class P
{
    static void Main(string[] a)
    {   
        foreach(var t in a[0])
        {
            var c="";
            for(int i=" ETIANMSURWDKGOHVF L PJBXCYZQ  54 3   2       16       7   8 90".IndexOf(t);i>0;i/=2)c="-."[i--%2]+c;
            System.Console.Write(c+" ");
        }
    }
}

সংক্ষিপ্ত ব্যাখ্যার জন্য, অক্ষরের স্ট্রিং হ'ল একটি স্তূপ যা বাম শিশুটি একটি বিন্দু এবং ডান শিশুটি একটি ড্যাশ। চিঠিটি তৈরি করতে, আপনি ব্যাক আপ ব্যাক আপ এবং ক্রমটি বিপরীত।


2
এটি আমি এখনও অবধি দেখা সেরা ধারণা।
আলেকজান্দ্রু

এবং তারপরে আমি সংযুক্ত থ্রেডটি পড়েছি এবং লক্ষ্য করেছি এটি মূল থেকে অনেক দূরে।
নিক লারসেন

1
আমি যখন ETIAN...সেখানে দেখলাম , আমি ধরে নিয়েছিলাম এটি গল্ফস্ক্রিপ্টের মতোই কাজ করেছে, তবে আপনার কাছে স্ট্রিংটির ব্যাখ্যা করার আলাদা উপায় রয়েছে। আমি এটি সমতুল্য মনে করি তবে আমি সূচকে 1 যুক্ত করে এবং বাইনারি উপস্থাপনাটি ব্যবহার করে প্রথম 1 "উদাহরণস্বরূপ পরে সমস্ত অঙ্কের জন্য বিন্দু এবং ড্যাশগুলি পেতেF=>18=>0b10010=>..-.
গনিবল

আপনার কোনও স্থানের দরকার নেইString[] a
সাইওস

9

টিআর + সেড (347)

tr a-z A-Z | sed 's/0/--O/g;s/1/.-O/g;s/2/.J/g;s/3/..W/g;s/4/.V/g;s/5/.H/g;
 s/6/-.H/g;s/7/-B/g;s/8/-Z/g;s/9/--G/g;s/X/-U/g;s/V/.U/g;s/U/.A/g;
 s/Q/-K/g;s/K/-A/g;s/A/.T/g;s/J/.O/g;s/O/-M/g;s/Y/-W/g;s/W/.M/g;
 s/M/-T/g;s/T/- /g;s/H/.S/g;s/B/-S/g;s/S/.I/g;s/L/.D/g;s/Z/-D/g;
 s/D/-I/g;s/I/.E/g;s/C/-R/g;s/F/.R/g;s/R/.N/g;s/P/.G/g;s/G/-N/g;
 s/N/-E/g;s/E/. /g'

1
পাইপের চারপাশের
স্থানটিও

1
হ্যাঁ, আমি সেই জায়গাগুলি গণনা করছি না, আমি কেবল স্পষ্টতার জন্য এখানে এগুলি প্রিন্ট করছি :)
এলেভেক্স

2
আপনি এটি প্রচুর সংক্ষিপ্ত করতে ব্রেস সম্প্রসারণ ব্যবহার করতে পারেন ( /g;s/হয়ে যায় ,- বেশিরভাগ ওভারহেড)।
ন্যাব

@ ন্যাব ভাল ধারণা।
ইয়েলেক্স

1
আপনি টিআর ড্রপ করতে পারেন, yপরিবর্তে
সেডের

6

হাস্কেল - 314 292 291 টি অক্ষর

import Data.List
i=intercalate
m=i"       ".map(i" ".map(\c->words".- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----."!!(head.findIndices(==c)$['a'..'z']++['0'..'9']))).words

আরও ব্যবহারকারী পঠনযোগ্য ফর্ম:

tbl :: [String]
tbl = words ".- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----."

lookupChar :: Char -> String
lookupChar c = tbl !! (fromJust . elemIndex c $ ['a'..'z'] ++ ['0'..'9'])

encWord :: String -> String
encWord = intercalate " " . map lookupChar

encSent :: String -> String
encSent = intercalate "       " . map encWord . words

নমুনা রান:

*Main> m "welcome humans"
".-- . .-.. -.-. --- -- .       .... ..- -- .- -. ..."

দুটি বর্ণের মধ্যে একটি শ্বেতস্থান এবং দুটি শব্দের মধ্যে সাতটি সাদা স্থান রয়েছে ace


@Dmckee "কোড গল্ফ: মোর্স কোড" দ্বারা উল্লিখিত প্রশ্নটি সবেমাত্র পরীক্ষা করে দেখেছেন এবং একটি হাস্কেল সংস্করণ পাওয়া যায় নি। আমি মনে করি, 314 এর চেয়েও কম সম্ভব হবে।
ইয়াসির আরসানুকায়েভ

fromJust.elemIndex cহিসাবে লেখা যেতে পারে head.findIndices(==c)। এটি আরও একটি চরিত্র, তবে আপনি এর পরে মুক্তি পেতে পারেন import Data.Maybe, সুতরাং আপনি মোট 17 টি অক্ষর সংরক্ষণ করবেন। আপনি যখন একবার আন্তঃআরক্ষেত্রে কল করবেন তখন আপনি স্ট্রিংয়ের সামনে স্থানটি সরিয়ে দুটি অক্ষর সংরক্ষণ করতে পারবেন। আর করে অন্য কয়েকটি অক্ষর i=intercalateশুরুতে এবং দুটি কল প্রতিস্থাপন intercalateসঙ্গে i
sepp2k

@ sepp2k: দুর্দান্ত ধারণা! ধন্যবাদ। আমি এছাড়াও খেলেছি intercalateএবং আরও 6 টি অক্ষর সংরক্ষণ করেছি! :-)
ইয়াসির আরসানুকায়েভ

আপনি w=wordsভুল করতে না পারলে একটি চরিত্র বাঁচায় যা আপনি করতেও পারেন। আর বদলে l c=...এবং map l, কি করা উচিত map\c->...(যদি আপনি এমনকি ল্যামডা প্রায় ডান বন্ধনী প্রয়োজন হবে না তার আগেই যাহাই হউক না কেন যেহেতু একটি ক্লোজিং paren পরে)।
sepp2k

@ sepp2k: ইনলাইনিং l c=...আমাকে 1 টি চরিত্র বাঁচিয়েছে, তবে আমি প্যারেন্স ছাড়াই এটি রাখতে পারি না, কেবল হিসাবে map(\c->...)। জিএইচসি সংস্করণ 6.12.3।
ইয়াসির আরসানুকায়েভ

4

পুনশ্চ (310) (462) (414)(৩৩১) সহ (46) সারণির জন্য।

টেরিনারি এনকোডিং সহ সংযুক্ত নম্বর এবং অক্ষর। একটি বাইটে 5 টি টার্নারি ডিজিট ফিট! এটি সেই নির্বোধ পার্থক্য লুপগুলি এবং বিশেষভাবে পুরো কেসিংয়ের সংখ্যাগুলি সরিয়ে দেয়।

ASCII85 প্রতিটি টেবিলের 1/3 অংশ কেটে দেয়। এবং কোডটি সরল করে (শেষ পর্যন্ত!) ফিরে আসবে 400 এর নিচে!

errordict/undefined{pop( )dup 0 4 3 roll put print{}}put<</*{{[exch/@ cvx]cvx 1
index 1 add}forall pop}def/C{<~#:VD<!AP07"A]ga#R),'7h?+2(./s-9e6~>*}def/#{load
exec}/P{print}0{}1{(.)P}2{(---)P}/S{( )P}48<~o'u/0b'A;]L7n~>* 65 C 97 C/@{5{dup
3 mod # S 3 idiv}repeat # S S S}>>begin{(%stdin)(r)file read not{exit}if #}loop

নমুনা আউটপুট

Luser DR00g!
। ---। । । । ---। । । । । ---। ---। । । ---। --- --- --- --- --- --- --- --- --- --- ---। !

অবহেলিত এবং মন্তব্য। আমি এই এক খুব গর্বিত। আমি মনে করি এটি মার্জিত, সংখ্যাগুলি কাজ করে। :)

%!
%Morse Code Translator (Simplified)

%if `load` signals /undefined in /#{load exec},
%  pop --load--,
%  print the char,
%  leave dummy object for `exec` to find
errordict/undefined{pop( )dup 0 4 3 roll put print{}}put

<<
%create int->proc pairs
%from initial int and string values
/*{{[exch/@ cvx]cvx 1 index 1 add}forall pop}def

%the alpha map is applied to Upper and Lower case
/C{<~#:VD<!AP07"A]ga#R),'7h?+2(./s-9e6~>*}def
65 C 97 C

%the number map
48<~o'u/0b'A;]L7n~>*

/#{load exec}  %execute a number
/P{print}

0{}       % 0: nop
1{(.)P}   % 1: '.' dit
2{(---)P} % 2: '---' dah
/S{( )P}  % S: space

%execute a morse sequence, from the table
/@{5{dup 3 mod # S 3 idiv}repeat # S S S}
>>begin

%read and execute each char from stdin
{(%stdin)(r)file read not{exit}if #}loop

সারণী (33) + (13) = (46)

স্ট্রিংগুলি টেবিলটি কীভাবে এনকোড করে তা এখানে। প্রতিটি বাইট একটি 5-সংখ্যার ত্রৈমাসিক সংখ্যা উপস্থাপন করে। এবং বাইটগুলি আরও ASCII85 এ এনকোড করা হয়েছে (কোন পোস্টস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে ডিকোড করতে পারে)।

%The Morse Table in Ternary Encoding
% 3  ^4 ^3 ^2 ^1 ^0
%    81 27  9  3  1                 Dec  Hex  dc ->ASCII85
%   ---------------                 ---  ---  ---
% A            2  1            6+1    7    7  7 256*41+256*50+256*14+
% B      1  1  1  2      27+ 9+3+2   41   29  d85%n85/d85%n85/d85%n85/d85%n85/n
% C      1  2  1  2      27+18+3+2   50   32  2 25 53 35 27  chr(x+33)
% D         1  1  2          9+3+2   14    E  #  :  V  D  <
% E               1              1    1    1
% F      1  2  1  1      27+18+3+1   49   31
% G         1  2  2          9+6+2   17   11  0 32 47 15 22
% H      1  1  1  1      27+ 9+3+1   40   28  !  A  P  0  7
% I            1  1            3+1    4    4
% J      2  2  2  1      54+18+6+1   79   4F
% K         2  1  2         18+3+2   23   17  1 32 60 70 64
% L      1  1  2  1      27+ 9+6+1   43   2B  "  A  ]  g  a
% M            2  2            6+2    8    8
% N            1  2            3+2    5    5
% O         2  2  2         18+6+2   26   1A  2 49 8 11 6
% P      1  2  2  1      27+18+6+1   52   34  #  R )  , '
% Q      2  1  2  2      54+ 9+6+2   71   47
% R         1  2  1          9+6+1   16   10
% S         1  1  1          9+3+1   13    D  22 71 30 10 17
% T               2              2    2    2   7  h  ?  +  2
% U         2  1  1         18+3+1   22   16
% V      2  1  1  1      54+ 9+3+1   67   43
% W         2  2  1         18+6+1   25   19  7 13 14 82 12
% X      2  1  1  2      54+ 9+3+2   68   44  (  .  /  s  -
% Y      2  2  1  2      54+18+3+2   77   4D  77 256*44+256*256*
% Z      1  1  2  2      27+ 9+6+2   44   2C  24 68 21 [23 36]
%                                              9  e  6 [ 8  E] (omit final 2)
% 0   2  2  2  2  2  162+54+18+6+2  242   F2
% 1   2  2  2  2  1  162+54+18+6+1  241   F1
% 2   2  2  2  1  1  162+54+18+3+1  238   EE  78 6 84 14 15
% 3   2  2  1  1  1  162+54+ 9+3+1  229   E5   o '  u  /  0
% 4   2  1  1  1  1  162+27+ 9+3+1  202   CA
% 5   1  1  1  1  1   81+27+ 9+3+1  121   79
% 6   1  1  1  1  2   81+27+ 9+3+2  122   7A  65 6 32 26 60
% 7   1  1  1  2  2   81+27+ 9+6+2  125   7D   b '  A  ;  ]
% 8   1  1  2  2  2   81+27+18+6+2  134   86  134 256*161+256*256*
% 9   1  2  2  2  2   81+54+18+6+2  161   A1  43 22 77 [50 40]
%                                              L  7  n [ S  I] (omit final 2)

4

রুবি, 161

d=proc{|x|x>1?d[x/2]+".-"[x&1]:' '}
$><<$<.gets.bytes.map{|i|
e=i>64?"-@B4*:68,?5</.7>E20+193ACD"[(i&95)-65]:i>47?"gWOKIHX`df"[i-48]:nil
e ?d[e.ord-40]:i.chr}*''

প্রতিটি অঙ্ককে একটি একক চরে এনকোড করে, যেখানে 1 টি ড্যাশ, 0 টি বিন্দু, একটি মার্কার বিট হিসাবে শীর্ষস্থানীয় 1 সহ (এটি মুদ্রণযোগ্য রাখার জন্য একটি অফসেট lookup


4

ভিবি.এনইটি, 233 বাইট

Module Module1
 Sub Main(a$())
   For Each c In a(0)
     Dim i = "ETIANMSURWDKGOHVF L PJBXCYZQ  54 3   2       16       7   8 90".IndexOf(c)
     If c <> " " And i >= 0 Then
       Console.Write("{0} ", Morse(i))
     Else
       Console.Write(c)
     End If
   Next
End Sub

Function Morse(i) As String
  Dim b = Math.Log(i) / Math.Log(2)
  Return (From m In MorseSeq(If(Double.IsInfinity(b), 0, b)) Order By m.Length)(i)
End Function

Function MorseSeq(i) As IEnumerable(Of String)
  Return If(i < 0, {}, From n In ".-" From m In MorseSeq(i - 1).DefaultIfEmpty
                       Select n & m)
End Function
End Module

যে শেষ ফাংশন মন্দ।

বেশ কয়েকটি উন্নতি সম্পাদনা করুন

Function Morse(i) As String
  Return (From m In MorseSeq(i) Order By m.Length)(i)
End Function

Function MorseSeq(i) As IEnumerable(Of String)
  Return If(i=0,{".","-"},From n In".-"From m In MorseSeq(i>>1) Select n & m)
End Function

আমি এটি +1 করার সিদ্ধান্ত নিয়েছি কারণ গল্ফিংয়ের জন্য VB.net ব্যবহার করা কখনও মনে পড়ে না।
mbomb007

3

লিস্প ( 532 466 অক্ষর)

(loop(princ(let((c(read-char)))(case c(#\a".- ")(#\b"-... ")(#\c"-.-. ")(#\d"-.. ")(#\e". ")(#\f"..-. ")(#\g"--. ")(#\h".... ")(#\i".. ")(#\j".--- ")(#\k"-.- ")(#\l".-.. ")(#\m"-- ")(#\n"-. ")(#\o"--- ")(#\p".--. ")(#\q"--.- ")(#\r".-. ")(#\s"... ")(#\t"- ")(#\u"..- ")(#\v"...- ")(#\w".-- ")(#\x"-..- ")(#\y"-.-- ")(#\z"--.. ")(#\1".---- ")(#\2"..--- ")(#\3"...-- ")(#\4"....- ")(#\5"..... ")(#\6"-.... ")(#\7"--... ")(#\8"---.. ")(#\9"----. ")(#\0"----- ")(t c)))))

এটি ছোট হাতের অক্ষরগুলিকে এনকোড করে এবং মোর্স কোডের সিকোয়েন্সগুলি একটি পূর্ববর্তী স্থানের সাথে মুদ্রিত হয়


3

জাভাতে, 475 টি অক্ষর।

    import java.io.*;class M{public static void main(String[]b){String s,t="-",m=t+t,o=m+t,z="",e=".",i=e+e,p=t+e,a=e+t,n=i+e,c[]={o+m,a+o,i+o,n+m,n+a,n+i,p+n,m+n,o+i,o+p,z,z,z,z,z,z,z,a,t+n,p+p,t+i,e,i+p,m+e,n+e,i,e+o,p+t,a+i,m,p,o,a+p,m+a,e+p,n,t,i+t,n+t,e+m,p+a,p+m,m+i};BufferedReader r=new BufferedReader(new InputStreamReader(System.in));try{s=r.readLine().toUpperCase();for(int j=48;j<91;j++)s=s.replace(z+(char)j,c[j-48]+" ");System.out.println(s);}catch(Exception x){}}}

এজে, এজেড এবং 0-9 অনুবাদ করে।

সম্পাদনা:

বা 447 টি অক্ষরে, যদি আপনি জাভা অনুবাদ পরে একটি ত্রুটি নিক্ষেপ না আপত্তি।

    import java.io.*;class M{static{String s,t="-",m=t+t,o=m+t,z="",e=".",i=e+e,p=t+e,a=e+t,n=i+e,c[]={o+m,a+o,i+o,n+m,n+a,n+i,p+n,m+n,o+i,o+p,z,z,z,z,z,z,z,a,t+n,p+p,t+i,e,i+p,m+e,n+e,i,e+o,p+t,a+i,m,p,o,a+p,m+a,e+p,n,t,i+t,n+t,e+m,p+a,p+m,m+i};BufferedReader r=new BufferedReader(new InputStreamReader(System.in));try{s=r.readLine().toUpperCase();for(int j=48;j<91;j++)s=s.replace(z+(char)j,c[j-48]+" ");System.out.println(s);}catch(Exception x){}}}

3

পার্ল 6 (238)

my%h="A.-B-...C-.-.D-..E.F..-.G--.H....I..J.---K-.-L.-..M--N-.O---P.--.Q--.-R.-.S...T-U..-V...-W.--X-..-Y-.--Z--..0-----1.----2..---3...--4....-5.....6-....7--...8---..9----.".split(/<wb>/)[1..72];while$*IN.getc ->$c{print %h{$c.uc}||$c}

পাঠযোগ্য সংস্করণ

# Split string on word breaks to create a hash
# I get an extra token at the beginning and end for some reason
# [1..72] is a slice without the extra pieces
my %h = "A.-B-...C-.-.D-..E.F..-.G--.H....I..J.---K-.-L.-..M--N-.O---P.--.Q--.-R.-.S...T-U..-V...-W.--X-..-Y-.--Z--..0-----1.----2..---3...--4....-5.....6-....7--...8---..9----."
    .split(/<wb>/)[1..72];

# For each character in STDIN, print either the looked up value, or itself
while $*IN.getc -> $c {
    print %h{$c.uc} || $c;
}

"আমি শুরুতে একটি অতিরিক্ত টোকেন পেয়েছি এবং কোনও কারণে শেষ করছি": আমি পার্ল 6 জানি না, তবে আমি অনুমান করতে পারি কারণ খালি স্ট্রিংটি প্রথম শব্দের বাউন্ডারের আগে এবং শেষের পরে মিলবে।
এমএস 210

2

সেড, 159 বাইট

s/.*/\L&/
s/[02]/&-/g
s/[89]/&./g
:
s/[b-ilnprsz5-9]/&./g
s/[ajkmoqt-y0-4]/&-/g
y/abcdefghijklmnopqrstuvwxyz0123456789/edri umsewnrttmwkai isadkgojuvhhbzoo/
t

আমরা পুরো লাইনটি হ্রাস করে শুরু করি (কারণ yকেস-সংবেদনশীল রূপান্তরগুলি করতে পারে না); যদি কেবলমাত্র নিম্ন-কেস ইনপুট পরিচালনা করতে হয় তবে 10 বাইট বিয়োগ করুন। তারপর আমরা preprocess ডিজিটের 0, 2, 8এবং9 তাদের চূড়ান্ত প্রতীক নির্গত হয়।

লুপ প্রতিটি ইনপুট চরিত্রের জন্য চূড়ান্ত প্রতীক তৈরি করে, তারপরে পরবর্তী পুনরাবৃত্তির জন্য প্রতিটি অক্ষর অনুবাদ করে। এটি উইকিপিডিয়া নিবন্ধে প্রদর্শিত দ্বৈতত্ত্বীয় অনুসন্ধানের টেবিলটি হাঁটার সমতুল্য ; যে সমস্ত সংখ্যার জন্য বিশেষ চিকিত্সার প্রয়োজন ছিল তাদের পিতামাতাদের দেখা যেতে পারে যা আমাদের ASCII বর্ণানুক্রমিক নয়।

লুপটি সমাপ্ত হয় যখন সমস্ত অক্ষর সমাপ্ত স্থানে পৌঁছায় ('e' বা 't' এর পরে)।

উদাহরণস্বরূপ, চিঠিটি kতিনটি পাসে রূপান্তরিত হয়েছে:

  1. k=> k-=>n-
  2. n-=> n.-=>t.-
  3. t.-=> t-.-=>-.-

2

পাইথন 3, 99 টি অক্ষর

lambda a:print(*[str(ord('ӆҼzࢤpࢮ࠿yࡊoࡀѡÔÞÝࢭÓӅһѢ'[ord(c)%32])).translate(' -.'*18)for c in a])

উপরের এবং ছোট হাতের উপর কাজ করে।


2

সি, 162 160 অক্ষর

char M[256] = "_^\\XP@ACGO       &15)\"4+0$>-2'%/6;*(#,8.9=3", v;
main(c) {
  for (;
         c = getchar(), v = M[c + 208 & 255] - 32, ~c;
         putchar(v-1? c : 32))
    for (; v > 1; v /= 2) putchar(".-"[v & 1]);
}

(অ-তাৎপর্যপূর্ণ শ্বেত স্পেস ছিনিয়ে নেওয়া ছাড়া, কোনও নতুন লাইনের পিছনে নেই)

char M[256]="_^\\XP@ACGO       &15)\"4+0$>-2'%/6;*(#,8.9=3",v;main(c){for(;c=getchar(),v=M[c+208&255]-32,~c;putchar(v-1?c:32))for(;v>1;v/=2)putchar(".-"[v&1]);}

Mঅক্ষরগুলির বিটপ্যাটার্নগুলি মোর্স কোডের বিন্দু এবং ড্যাশের সাথে মিলে যায় এমন একটি সারণী lookup অক্ষরগুলি [0-9A-Z]এই টেবিলটি ব্যবহার করে মোর্সটি ডিকোড করা হয় (মোর্স কোডের পরে সংযুক্ত একটি স্থান সহ), অন্যান্য অক্ষরগুলি কেবল অপরিবর্তিতভাবেই পাস করা হয়।

নমুনা রান:

HELLO WORLD
.... . .-.. .-.. ---  .-- --- .-. .-.. -.. 
hello world
hello world
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
.- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----. 

এটি 162 অক্ষর নয় ... দয়া করে গল্ফযুক্ত সংস্করণটি পোস্ট করুন।
সাইওস

@ কয়েস দুঃখিত, আমি অ-উল্লেখযোগ্য শ্বেত স্পেসটি ছিনিয়ে নিইনি যেহেতু এটি একটি বিরক্তিকর যান্ত্রিক প্রক্রিয়া এবং কেবল উত্স কোডটি পড়া কঠিন করে তোলে, যা পিপিসিজিতে মোটামুটি মানক অনুশীলন (যা ব্যবহৃত হত?)। আপনার জন্য ছড়িয়ে ফেলা এই জাতীয় সাদা অংশের সাথে একটি সংস্করণ যুক্ত করা হয়েছে :)।
ফায়ারফ্লাই


1

পার্ল (489 টি চর)

%c=("A"=>".-","B"=>"-...","C"=>"-.-.","D"=>"-..","E"=>".","F"=>"..-.","G"=>"--.","H"=>"....","I"=>"..","J"=>".---","K"=>"-.-","L"=>".-..","M"=>"--","N"=>"-.","O"=>"---","P"=>".--.","Q"=>"--.-","R"=>".-.","S"=>"...","T"=>"-","U"=>"..-","V"=>"...-","W"=>".--","X"=>"-..-","Y"=>"-.--","Z"=>"--..",1=>".----",2=>"..---",3=>"...--",4=>"..---",5=>".....",6=>"-....",7=>"--...",8=>"---..",9=>"----.",0=>"-----");while(<>){foreach(split(//)){if(exists($c{$_})){printf"%s ",$c{$_}}else{print"$_"}}}

কমান্ড লাইনের মাধ্যমে কার্যকর করা যেতে পারে।

$ perl -e '$CODE' < textfile

সম্পাদনা করুন: আমার মূল সমাধানটির পিছনে পিছনে অনুবাদটি ছিল তা নির্দেশ করার জন্য @ টোয়াইডেভিসকে ধন্যবাদ!


1
আপনি এটিকে 286 টি অক্ষরে নামাতে পারেন:%c=qw(A .- B -... C -.-. D -.. E . F ..-. G --. H .... I .. J .--- K -.- L .-.. M -- N -. O --- P .--. Q --.- R .-. S ... T - U ..- V ...- W .-- X -..- Y -.-- Z --.. 1 .---- 2 ..--- 3 ...-- 4 ..--- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. 0 -----);while(<>){print($c{$_}||$_)for split//}
এমএস 210

1

পিএইচপি, 474 অক্ষর

<?$a=strtoupper(fgets(STDIN));$m=array(65=>".-",66=>"-...",67=>"-.-.",68=>"-..",69=>".",70=>"..-.",71=>"--.",72=>"....",73=>"..",74=>".---",75=>"-.-",76=>".-..",77=>"--",78=>"-.",79=>"---",80=>".--.",81=>"--.-",82=>".-.",83=>"...",84=>"-",85=>"..-",86=>"...-",87=>".--",88=>"-..-",89=>"-.--",90=>"--..",49=>".----",50=>"..---",51=>"...--",52=>"..---",53=>".....",54=>"-....",55=>"--...",56=>"---..",57=>"----.",48=>"-----",32=>" ");while($i++<strlen($a))echo$m[ord($a[$i])];

সমস্ত ইনপুট বড় হাতের অক্ষরে থাকলে এর 462 টি অক্ষর:

<?$a=fgets(STDIN);$m=array(65=>".-",66=>"-...",67=>"-.-.",68=>"-..",69=>".",70=>"..-.",71=>"--.",72=>"....",73=>"..",74=>".---",75=>"-.-",76=>".-..",77=>"--",78=>"-.",79=>"---",80=>".--.",81=>"--.-",82=>".-.",83=>"...",84=>"-",85=>"..-",86=>"...-",87=>".--",88=>"-..-",89=>"-.--",90=>"--..",49=>".----",50=>"..---",51=>"...--",52=>"..---",53=>".....",54=>"-....",55=>"--...",56=>"---..",57=>"----.",48=>"-----",32=>" ");while($i++<strlen($a))echo$m[ord($a[$i])];

কিছু ছোট ছোট কৌশল যা এটিকে হ্রাস করা যেতে পারে:<?$a=strtoupper(fgets(STDIN));$m=array(65=>12,2111,2121,211,1,1121,221,1111,11,1222,212,1211,22,21,222,1221,2212,121,111,2,112,1112,122,2112,2122,2211)+array(48=>22222,12222,11222,11122,11222,11111,21111,22111,22211,22221)+array(32=>' ');while($a[$i++])echo strtr($m[ord($a[$i])],12,'.-');
manatwork

1

05 এবি 1 ই , 81 বাইট (অ-প্রতিযোগী)

Çvy©58‹i®58-•6V%·,Õo•2B5ôsè}®64›i®64-•4…·]ÑUZ“×\ó$9™¹“ÌLÈÎ%´•3B4ôsè}"012"".- "‡})

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

বর্ণের নিদর্শনগুলিকে বেস -3 এ রূপান্তর করুন, সংখ্যা প্যাটার্নগুলিকে বেস -২ তে রূপান্তর করুন, পিরিয়ড এবং হাইফেনগুলিতে পেতে শূন্য সূচিকৃত আসকি ট্রান্সলিটেশন ব্যবহার করুন। ছোট হাতের কাজ করে না।


1

জেলি , 50 বাইট

“¤⁵©ḤọḌṄ’B‘s5;“ḄẇɗÞI/QẊṂjỵr’Œ?ḃ2¤ṖṖƊ⁺ị⁾.-;
ØBiịÇ)K

একটি পাইথন বিন্যাসিত স্ট্রিংকে একটি কমান্ড লাইন আর্গুমেন্ট হিসাবে স্বীকৃত একটি সম্পূর্ণ প্রোগ্রাম যা স্পেস ডিলিমিট আউটপুট প্রিন্ট করে।

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


1

পাওয়ারশেল, 142 বাইট

-join($args|% t*y|%{if($_-match'\w'){for($d='ihfbZJKMQY+mazzy+0;?3,>5:.H7<1/9@E42-6B8CG='[$_-48]-42;$d-1){'.-'[$d%2]
$d=$d-shr1}' '}else{$_}})

কম গল্ফ পরীক্ষা স্ক্রিপ্ট:

$f = {

-join(
    $args|% toCharArray|%{
        if($_-match'\w'){
            for($d='ihfbZJKMQY+mazzy+0;?3,>5:.H7<1/9@E42-6B8CG='[$_-48]-42;$d-1){
                '.-'[$d%2]
                $d=$d-shr1
            }
            ' '
        }else{
            $_
        }
    }
)

}

@(
    ,("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",".- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----. ")
    ,("HELLO WORLD", ".... . .-.. .-.. ---  .-- --- .-. .-.. -.. ")
    ,("#$%^&","#$%^&")
) | % {
    $s,$expected = $_
    $result = &$f $s
    "$($result-eq$expected): $result"
}

আউটপুট:

True: .- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. ----- .---- ..--- ...-- ....- ..... -.... --... ---.. ----.
True: .... . .-.. .-.. ---  .-- --- .-. .-.. -..
True: #$%^&

দ্রষ্টব্য: আউটপুটটিতে পিছনের স্থান রয়েছে।


1
+mazzy+কিছু
চটকদার

1

এপিএল (এনএআরএস), 71 টি চর, 142 বাইট

{36≥y←⍵⍳⍨⎕A,⎕D:'•-'[0∼⍨⌽(5⍴3)⊤y⊃∊(2⍴256)∘⊤¨⎕AV⍳'ܨ㈍İᄧюᜪࠄᨳ䜏ഁᙂ᥃䴫쩸穼蚠']⋄⍵}

পরীক্ষা:

  q←{36≥y←⍵⍳⍨⎕A,⎕D:'•-'[0∼⍨⌽(5⍴3)⊤y⊃∊(2⍴256)∘⊤¨⎕AV⍳'ܨ㈍İᄧюᜪࠄᨳ䜏ഁᙂ᥃䴫쩸穼蚠']⋄⍵}
  q¨'0123456789'
----- •---- ••--- •••-- ••••- ••••• -•••• --••• ---•• ----• 
  q¨"HELLO WORLD"
•••• • •-•• •-•• ---   •-- --- •-• •-•• -••  

প্রতিটি বর্ণ একটি স্থান থেকে পৃথক, প্রতিটি শব্দ 3 স্পেস থেকে পৃথক করা হবে। টেবিলটি বর্ণানুক্রমিক স্ট্রিং ⎕A,⎕Dএবং 16 বিট অক্ষরের উপর নির্মিত যা 'ܨ㈍İᄧюᜪࠄᨳ䜏ഁᙂ᥃䴫쩸穼蚠'তারা 8 বিট অক্ষরে বিভক্ত অঙ্কগুলির সাথে বেস 3 তে রূপান্তরিত হয়।



1

জাভাস্ক্রিপ্ট (ES6), 184 বাইট

এই উভয় সংস্করণের জন্য, তারা যে কোনও অক্ষরের মধ্যে ফাঁক রাখবে। 0-9 এবং এজে (রূপান্তর সংবেদনশীল) রূপান্তরিত হয়। একটি স্থান 3 এ রূপান্তরিত হয়।

s=>s.split("").map(e=>isNaN(d=parseInt(e.toLowerCase(),36))?e:`_OGCA@PX\\^\r\n  `.charCodeAt(d).toString(2).substr(1).split("").map(e=>".-"[e]).join("")).join(" ")

\nএকটি নতুন লাইন অক্ষর ( 0x0a) দিয়ে প্রতিস্থাপন করুন । এটি SE এর কারণে দু'টি অ-মুদ্রণযোগ্য অক্ষর দেখাচ্ছে না। সম্পাদনা মোডে গিয়ে এটি দেখায়।

এখানে হেক্সসটি রয়েছে:

73 3d 3e 73 2e 73 70 6c 69 74 28 22 22 29 2e 6d 61 70 28 65 3d 3e 69 73 4e 61 4e 28 64 3d 70 61 72 73 65 49 6e 74 28 65 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28 29 2c 33 36 29 29 3f 65 3a 60 5f 4f 47 43 41 40 50 58 5c 5c 5e 05 18 1a 0c 02 12 0e 10 04 17 5c 72 14 07 06 0f 16 1d 0a 08 03 09 11 0b 19 1b 1c 60 2e 63 68 61 72 43 6f 64 65 41 74 28 64 29 2e 74 6f 53 74 72 69 6e 67 28 32 29 2e 73 75 62 73 74 72 28 31 29 2e 73 70 6c 69 74 28 22 22 29 2e 6d 61 70 28 65 3d 3e 22 2e 2d 22 5b 65 5d 29 2e 6a 6f 69 6e 28 22 22 29 29 2e 6a 6f 69 6e 28 22 20 22 29

Ungolfed

s=>            //declare anonymous function
s.split("")    //split into array of characters
.map(          //for each character
e=>            //declare anonymous function
 isNaN(        //is the character not in range 0-9a-zA-Z
  d=parseInt(e.toLowerCase(),36)
               //take it as base 36(digits are 0-9a-z) and assign to d
 )?e:          //if outside range, return as is
 `_OGCA@PX\\^\r\n  `
               //table of the morse code as binary as code point with leading 1
 .charCodeAt(d)//get the corresponding code
 .toString(2)  //convert to binary, 0=., 1=-, with an extra 1 bit
 .substr(1)    //remove the extra 1 bit
 .split("")    //split into each bit
 .map(         //for each bit
  e=>          //declare anonymous function
  ".-"         //the corresponding symbol for bits
  [e]          //get it
 )
 .join("")     //join the bits
)
.join(" ")     //join the characters with a space between each character

পঠনযোগ্য সংস্করণ, 234 বাইট

s=>s.split("").map(e=>isNaN(d=parseInt(e.toLowerCase(),36))?e:[95,79,71,67,65,64,80,88,92,94,5,24,26,12,2,18,14,16,4,23,13,20,7,6,15,22,29,10,8,3,9,17,11,25,27,28][d].toString(2).substr(1).split("").map(e=>".-"[e]).join("")).join(" ")

Ungolfed

s=>            //declare anonymous function
s.split("")    //split into array of characters
.map(          //for each character
e=>            //declare anonymous function
 isNaN(        //is the character not in range 0-9a-zA-Z
  d=parseInt(e.toLowerCase(),36)
               //take it as base 36(digits are 0-9a-z) and assign to d
 )?e:          //if outside range, return as is
 [95,79,71,67,65,64,80,88,92,94,
   5,24,26,12, 2,18,14,16, 4,23,
  13,20, 7, 6,15,22,29,10, 8, 3,
   9,17,11,25,27,28]
               //table of the morse code as binary with leading 1
 [d]           //get the corresponding code
 .toString(2)  //convert to binary, 0=., 1=-, with an extra 1 bit
 .substr(1)    //remove the extra 1 bit
 .split("")    //split into each bit
 .map(         //for each bit
  e=>          //declare anonymous function
  ".-"         //the corresponding symbol for bits
  [e]          //get it
 )
 .join("")     //join the bits
)
.join(" ")     //join the characters with a space between each character

0

পাইথন 2, 283 274 বাইট

আমি বর্ণমালাগুলির একটি স্ট্রিং তৈরি করেছি যাতে স্ট্রিংয়ের মধ্যে তাদের অবস্থানটি তাদের মোর্স কোডের উপস্থাপনা বর্ণনা করে। মূলত আমি বাইনারি ব্যবহার করতে যাচ্ছিলাম, তবে 01একই রকম হবে 1। সুতরাং আমি - = 1এবং সাথে টেরিনারি ব্যবহার করেছি . = 2। অক্ষরটি এই স্ট্রিংয়ের cসূচকে 1121রয়েছে, এর মোর্স কোড উপস্থাপনা --.-

  • বাইটগুলি সংরক্ষণ করতে, আমি স্থান, ড্যাশ এবং বিন্দুর জন্য ভেরিয়েবল তৈরি করেছি।
  • তারপরে আমি কঠোরভাবে 'ডিকোডার' স্ট্রিংটি সাদা জোড় হ্রাস করার জন্য একটি দম্পতি বিবৃতি প্রতিস্থাপন ব্যবহার করে কোডিং করেছি।
  • ফাংশনের অংশটি সূচককে ত্রৈমাসিকের একটি অ্যারে রূপান্তরিত করে
  • অন্য অংশের ফাংশন একটি স্ট্রিং নেয় এবং প্রতিটি অক্ষরকে অক্ষরের পরে 3 স্পেস এবং শব্দের মধ্যে 7 (4 অতিরিক্ত) দিয়ে মোর্স কোডে রূপান্তর করে
q,d,D=" .-"
s=" TE MN AI.OG KD.WR US-.QZ.YC XB- JP  L. F VH---.09  8..7--  6---.1--  2..3  45".replace(D,d*3).replace(d,q*4)
lambda n:''.join(''.join([0,D,d][i]for i in [s.index(c)//3**i%3 for i in range(5)if s.index(c)//3**i!=0][::-1])+q*3 if c!=q else q*4for c in n.upper())

পরীক্ষার জোতা

print(f("Hi")=="....   ..   ")
print(f("Hello")=="....   .   .-..   .-..   ---   ")
print(f("Hello World")=="....   .   .-..   .-..   ---       .--   ---   .-.   .-..   -..   ")
print(f("To be or not to be")=="-   ---       -...   .       ---   .-.       -.   ---   -       -   ---       -...   .   ")
print(f("3 14 15")=="...--       .----   ....-       .----   .....   ")

হালনাগাদ

  • -9 [16-05-09] মূল ফাংশন মধ্যে ত্রৈমাসিক গণনা ফাংশন অন্তর্ভুক্ত

[দ্রষ্টব্য: সাদা স্থান সর্বদা পিছনে থাকে তবে সাদা স্থান একটি বিরতি উপস্থাপন করে, তাই আমি অতিথি যে ঠিক আছে ]


0

পিএইচপি, 157 150 157 বাইট

for(;$d=ord($c=$argv[1][$i++]);)echo ctype_alnum($c)?strtr(substr(decbin(ord($d>64?".CTRH@ZF\DUGXABEVOJL?K[ISQP"[$d&31]:"]muy{|ld`^"[$c])-48),1),10,".-"):$c;

প্রথম কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়। চিঠির মধ্যে কোন বিরতি নেই। সাথে চালাও -nr

ভাঙ্গন

for(;$d=ord($c=$argv[1][$i++]);)    # loop through input characters
    echo                                # print ...
    ctype_alnum($c)                     # if char is alphanumeric:
    ?   strtr(
        substr(
        decbin(                         
            ord($d>64                   # 1. map char to char-encoded morse
            ?".CTRH@ZF\DUGXABEVOJL?K[ISQP"[$d&31]
            :"]muy{|ld`^"[$c]
            )-60                        # 2. subtract 60 from ordinal value
        )                               # 3. decbin: convert to base 2
        ,1)                             # 4. substr: skip leading `1`
        ,10,".-")                       # 5. strtr: translate binary digits to dash/dot
    :$c;                                # not alphanumeric: no conversion

জাভাস্ক্রিপ্ট, পাইথন 2, সি, রুবি এবং সেডকে মারধর করছে। আমি খুশি.

চতুর্থ পদক্ষেপ: ছোট হাতের অক্ষর ব্যবহার না করে হ্যান্ডেল করতে ম্যাপিংটিকে আন-মার্জ করে strtoupper

পূর্বের সংস্করণসমূহ:

ছোট হাতের অক্ষরের জন্য ব্যর্থ; +12 বাইটগুলি ঠিক করতে: এর $argv[1]সাথে প্রতিস্থাপন করুনstrtoupper($argv[1])

সরল স্ট্রিং অনুবাদ, 254 বাইট

<?=strtr($argv[1],["-----",".----","..---","...--","....-",".....","-....","--...","---..","----.",A=>".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]);

সরাসরি এগিয়ে: পুরো স্ট্রিং একবারে অনুবাদ করে, অক্ষরটিকে মোর্স কোডে।
এক্সিকিউট করতে বা এর সাথে প্রতিস্থাপন <?=করতে echoএবং সাথে চালাতে ফাইল এ সংরক্ষণ করুন -r

মোর্স কোডগুলির দশমিক ব্যাখ্যা, 184 বাইট (-70)

for(;""<$c=$argv[1][$i++];)echo($m=[32,48,56,60,62,63,47,39,35,33,A=>6,23,21,11,3,29,9,31,7,24,10,27,4,5,8,25,18,13,15,2,14,30,12,22,20,19][$c])?strtr(substr(decbin($m),1),10,".-"):$c;

প্রথম গল্ফিং পদক্ষেপ: 1অগ্রণী শূন্যগুলি সংরক্ষণের জন্য মোর্স কোডগুলি একটি অতিরিক্ত নেতৃত্বের সাথে বাইনারে এনকোড করা হয়েছে । অক্ষরগুলির মধ্য দিয়ে লুপ হয় এবং সেগুলি একে একে অনুবাদ করে। সাথে চালাও -nr

দশমিকগুলি অক্ষরে এনকোড করা হয়েছে, 157 বাইট (-27)

for(;""<$c=$argv[1][$i++];)echo ctype_alnum($c)?strtr(substr(decbin(ord("@"<$c?"CTRH@ZF\DUGXABEVOJL?K[ISQP"[ord($c)-65]:"]muy{|ld`^"[$c])-60),1),10,".-"):$c;

দ্বিতীয় গল্ফিং: দশমিক মানটিতে 60 টি যোগ হয়েছে এবং অক্ষরে এনকোড হয়েছে।

একত্রিত ম্যাপিং, 150 বাইট (-7)

for(;""<$c=$argv[1][$i++];)echo ctype_alnum($c)?strtr(substr(decbin(ord("]muy{|ld`^8901234CTRH@ZF\DUGXABEVOJL?K[ISQP"[ord($c)-48])-60),1),10,".-"):$c;

তৃতীয় গল্ফিং: একক স্ট্রিংতে ডিজিট এবং বর্ণের জন্য ম্যাপিং।


0

স্মাইলব্যাসিক, 194 190 বাইট

INPUT S$WHILE""<S$B=INSTR(" ETIANMSURWDKGOHVFLPJBXCYZQ  54 3   2       16       7   8 90",S$[0])+1IF B THEN S=LOG(B,2)FOR I=0TO S-1?"._"[B-(1<<S)AND S>>I||0];:NEXT?" ";
?SHIFT(S$)*!B;
WEND
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.