ওল্ড সি কোড ট্রান্সমোগ্রিফায়ার *


13

* ট্রান্সমোগ্রিফায়ার কী?

ইন C প্রোগ্রামিং ভাষা , সেখানে গঠন বলা হয় digraphs এবং trigraphs দুই এবং তিন অক্ষর সিকোয়েন্স যে কম প্রচলিত অক্ষর মূল্যায়ন হয়। উদাহরণস্বরূপ, ??-আপনার কীবোর্ডটি না থাকলে আপনি ব্যবহার করতে পারেন ~

প্রদত্ত পাঠ্য, সঠিক, খাটো, গল্ফযুক্ত অক্ষর (ডান পাশ) দিয়ে নিম্নলিখিত ডিগ্রাফ এবং ট্রিগ্রাফগুলির (বাম দিকের) সমস্ত দৃষ্টান্ত প্রতিস্থাপন করুন।

??=  #
??/  \
??'  ^
??(  [
??)  ]
??!  |
??<  {
??>  }
??-  ~
<:   [
:>   ]
<%   {
%>   }
%:   #

সূত্র

ইনপুট

ইনপুটটি ASCII পাঠ্য। ট্রেলিং নিউলাইন অনুমোদিত। বৈধ সি কোড হওয়ার দরকার নেই।

আউটপুট

উপরের ডিজিট্রাফ এবং ট্রিগ্রাফগুলির সংক্ষিপ্ত সংস্করণে প্রতিস্থাপন এবং বাম থেকে ডানদিকে মূল্যায়ন করা সমস্ত উদাহরণ সহ আউটপুট একই পাঠ্য। ট্রেলিং নিউলাইন অনুমোদিত। বৈধ সি কোড হওয়ার দরকার নেই।

পরীক্ষার কেস

=> ইনপুট এবং আউটপুট পৃথক করে।

if (true ??!??! false) { => if (true || false) {

??-arr.indexOf(n) => ~arr.indexOf(n)

function f(??) { console.log('test??'); } => function f(] { console.log('test^); }

/* comment :> :) *??/ => /* comment ] :) *\

%:What am I doing??!!??` => `#What am I doing|!??

??(??)??(??) <:-- not a palindrome => [][] [-- not a palindrome

?????????? => ??????????

int f(int??(??) a) ??< return a??(0??)??'a??(1??) + "??/n"; ??> => int f(int[] a) { return a[0]^a[1] + "\n"; }

??<:>??<% => {]{%

<:> => [>

<::> => []

:>> => ]>

#\^[]|{}~ => #\^[]|{}~

: > => : >

??=%: => ##

3
উদাহরণ থেকে remove গুলি সরান। এটি তাদের পড়া এত কঠিন করে তোলে।
ইয়ার

4
"??=%:"আরেকটি প্রাসঙ্গিক পরীক্ষার কেস: সি তে, এর অর্থ "#%:"যেখানে %:বিশেষ নয়, তবে আমার ধারণা আপনার প্রত্যাশিত আউটপুট "##"
এইচডিভি

@ শয়তানসন এটি করবে, মূলত ইনপুট / আউটপুটটিকে আরও পঠনযোগ্য করে তোলার জন্য কোনও কোড ব্লকে আমার কাছে এটি ছিল না তবে রিকার এটি পরিবর্তন করে। পরের বার নিজেকে বিন্যাস করার মতো কিছু সম্পাদনা করতে নির্দ্বিধায় :)
স্টিফেন

1
সুতরাং, আপনি গল্ফ কোড থেকে গল্ফ কোড চাইছেন। বোনাস গলফ :-)
Mast

@ সর্বাধিক এই ধারণা
স্টিফেন

উত্তর:


5

রেটিনা , 65 বাইট

T`-=/'()!<>?`~#\\^[]|{}_`\?\?[-=/'()!<>]
<:
[
:>
]
<%
{
>%
}
%:
#

এটি অনলাইন চেষ্টা করুন! Tব্যবহার করা একটু বিশ্রী হলেও তবুও আমাকে 14 বাইট সংরক্ষণ করে।


আপনি কি করতে পারেন \?\?[^:%]?
ইটিএইচ প্রোডাকশনস


@ এথ প্রডাকশনগুলি এতে রূপান্তরিত ??aহওয়ার একটি পার্শ্ব প্রতিক্রিয়া হবে a
eush77

@ eush77 ওহ হুম, আপনি ঠিক বলেছেন ...
ETH প্রোডাকশন 20'17

8 লাইন এর %>পরিবর্তে হওয়া উচিত >%
ডেনিস

7

সি, 206 205 বাইট

(-1 সিলিংক্যাটকে ধন্যবাদ)

নিউলাইনগুলি কেবল পঠনযোগ্যতার জন্য এখানে।

c,d,q;f(char*s){for(char*S,*T,*t=s;c-63?q=0:q++,d=c<<8|*s,*s?
q>1&&(T=index(S="=/'()!<>-",*s))?t-=2,*s="#\\^[]|{}~"[T-S]:
d>*s&&(T=strstr(S=">:<>%<:%",&d))&&(c="][ }{ # "[T-S])&1?--t,*s=c:0:
0,*t++=c=*s++;);}

sজায়গায় পরিবর্তন করে। জিসিসির সাথে পরীক্ষিত এবং ফেডোরা ওয়ার্কস্টেশন, x86-এ 32-বিট এবং 64-বিট মোডে ঝনঝন।

গল্ফ করার জন্য সি এখানে সেরা ভাষা নয়।


C is not exactly the best language for golfing here.দুষ্টুমি করসি না. দেখতে দুর্দান্ত মনে হচ্ছে :) ফিরে ভাবতে ভাবতে, আমার কোনও প্রশ্নকে +1 বা +2 বাইট যুক্ত করতে বাধ্য করা উচিত ছিল যদি তারা কোনও একটি অক্ষর ব্যবহার করে যা কোনও ডিজিট্রাফ বা ট্রিগ্রাফ এক্সডি করে তোলে
স্টিফেন

1
আপনি এটিকে আরও খারাপ করে তুলতে পারেন: প্রতিটি চরিত্রের জন্য +1 বা +2 যা ডাই / ট্রাইগ্রাফের অংশ হতে পারে সত্যিই আঘাত করবে :)
এইচডিভি

5

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

s=>[...'#\\^[]|{}~[]{}#'].map((c,i)=>s=s.split('<:<%%'[i-9]+':>%>:'[i-9]||'??'+"=/'()!<>-"[i]).join(c))&&s

কিভাবে?

এই বেশ সহজ.

আমাদের তবে এটি লক্ষ করা উচিত:

  • আমি যখন 9 এরও কম তখন অভিব্যক্তিটি যা সমান (প্রত্যাশার মতো মিথ্যা) তা '<:<%%'[i-9] + ':>%>:'[i-9]মূল্যায়ন করে ।undefined + undefinedNaN

  • যখন আমি 9 এর চেয়ে বড় বা তার সমান হয় , তখন এক্সপ্রেশনটি '??' + "=/'()!<>-"[i]মূল্যায়ন করে "??" + undefinedযা স্ট্রিংয়ে জোর করা হয় "??undefined"(সত্য যখন আমরা একটি মিথ্যা ফলাফল আশা করি))

এজন্য আমাদের অবশ্যই এই ক্রমে পরীক্ষার প্রক্রিয়া করতে হবে।

পরীক্ষার মামলা




2

পিএইচপি, 112 বাইট

<?=str_replace(explode(_,strtr("<:_:>_<%_%>_%:0=0/0'0(0)0!0<0>0-",["_??"])),str_split("[]{}##\\^[]|{}~"),$argn);

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

পিএইচপি, 115 বাইট

<?=str_replace(explode(_,"??=_??/_??'_??(_??)_??!_??<_??>_??-_<:_:>_<%_%>_%:"),str_split("#\\^[]|{}~[]{}#"),$argn);

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

পিএইচপি, 124 বাইট

রেজেক্স সমাধান

foreach(explode(_,"=|%:_/_'_\(|<:_\)|:>_!_<|<%_>|%>_-")as$v)$a=preg_replace("#\?\?$v#","#\\^[]|{}~"[$k++],$a=&$argn);echo$a;

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


1

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

s=>s.replace(/\?\?[^:%?]|[<:%]./g,c=>"#\\^[]|{}~"["=/'()!<>-".indexOf(c[2])]||"[] {} #"["<:><%>%:".indexOf(c)]||c)

সংক্ষিপ্ততম নয়, তবে আমি একটি ভিন্ন পদ্ধতির চেষ্টা করতে চেয়েছিলাম।

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