তিনটি বহুগ্লট, দুটি পিরিয়ড-টু কুইনস এবং একটি কোড-গল্ফ চ্যালেঞ্জ


32

এমন একটি প্রোগ্রাম তৈরি করুন যা ভাষায় এটি চালিয়ে যাওয়ার ফলে এ প্রোগ্রাম বি তৈরি করে, এবং ভাষা খ এ এ প্রোগ্রাম চালনা প্রোগ্রাম সি তৈরি করে A

প্রোগ্রাম বি, যখন ভাষায় চালিত হয় বি এ এ প্রোগ্রাম তৈরি করে, এবং ভাষা এ এ চলমান প্রোগ্রাম বি সি প্রোগ্রাম তৈরি করে

প্রোগ্রাম সি, যখন ভাষা বা ভাষা বিতে চালিত হয় তখন "ভুল ভাষা!" মুদ্রণ করে।

Program | Language | Result
--------|----------|----------
A       | A        | Program B
B       | B        | Program A
A       | B        | Program C
B       | A        | Program C
C       | A        | "Wrong language!" 
C       | B        | "Wrong language!" 

আপনার উত্তরের এই টেমপ্লেটটি ব্যবহার করা উচিত:


ভাষা এ / ভাষা বি, {a বাইটস} +} বি বাইটস {= {মোট বাইটস} বাইট

প্রোগ্রাম এ:

a code

প্রোগ্রাম বি:

b code

প্রোগ্রাম সি:

c code 

সূত্র:

# Language A/Language B, <a bytes> + <b bytes> = <total bytes> bytes

Program A:

    a code
Program B:

    b code
Program C:

    c code

  • এই প্রোগ্রামগুলির কোনওটিরই ইনপুট নেওয়া উচিত নয়।
  • একই ভাষার বিভিন্ন সংস্করণ বিভিন্ন ভাষা হিসাবে গণনা করে। (যদিও এটি নিরুৎসাহিত হওয়ায় এটি বিরক্তিকর সমাধানের দিকে নিয়ে যায়)
  • ভাষা A এবং B অবশ্যই আলাদা হতে হবে।
  • আপনার নিজের উত্স কোডটি কোনও ফাইল থেকে পড়তে হবে না। প্রোগ্রামগুলি খালি নাও থাকতে পারে
  • স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।

সংকেতগুলি

  • সি ++ এবং [পাইথন / ব্যাশ / অন্যান্য #মন্তব্য করা ভাষাগুলি] ভাল কম্বোস কারণ আপনি ম্যাক্রোগুলি এমন একটি সংজ্ঞা দিতে পারেন যা একটি ভাষা উপেক্ষা করতে পারে

এটি , তাই বাইট গণনার প্রোগ্রামের A এবং B এর ক্ষুদ্রতম যোগটি জয়ী।


আমি এটি নিয়ে কাজ করছি ...
অলিভার নি

6
@ ক্রাজিপাইথন জরিমানা বা শতাংশ করবেন না। কেবল এটি অনুমতি দিন, বা না। শতাংশগুলি স্কোরিং আর [কোড-গল্ফ] করে না। meta.codegolf.stackexchange.com/a/8106/34718
mbomb007

1
@ ais523n আমি এটি সরিয়েছি, এটি চ্যালেঞ্জটিকে খুব সহজ করে তুলেছে।
noɥʇʎԀʎzɐɹƆ

1
@ ক্রজিপিথন সমাপ্ত গতকাল আমি আলাদা কৌশল নিয়ে স্ক্র্যাচ থেকে শুরু করেছি। এটি একটি দীর্ঘ সংক্ষিপ্ত এবং সহজ হিসাবে শেষ হয়েছে।
mbomb007

1
যে Wrong language!কোনও আকারে আউটপুট (যেমন সমস্ত ক্যাপস, সমস্ত ছোট হাতের আদি ইত্যাদি) পাওয়া যাবে?
আর কাপ,

উত্তর:


10

বেফুঞ্জ -98 (পাইফুঞ্জ) / > <> , 123 + 123 = 266 250 246 বাইট

প্রোগ্রাম এ:
"81!#.#vp00g>:#,_j+4<.=1l5v!o#!g00
g00<<<<<>0!#[f8+1!#.48*k'Wrong language!<o>[f@,kep.#!0a'00g!#o# \!gff+k,@,k*8ba$$ #o#!a"

বেফুঞ্জ -৮৮ এ এটি ব্যবহার করে দেখুন! , এটিতে চেষ্টা করুন> <>!

প্রোগ্রাম বি:
"00g!#o!v5l1=.<4+j_,#:>g00pv#.#!18
g00<<<<<>0!#[f8+1!#.48*k'Wrong language!<o>[f@,kep.#!0a'00g!#o# \!gff+k,@,k*8ba$$ #o#!a"

এটি <>> এ চেষ্টা করে দেখুন! , বেফুঞ্জ -98 এ চেষ্টা করে দেখুন!

প্রোগ্রাম সি:
"a0!#.pek,@f[>o<!egaugnal gnorW

বেফুঞ্জ -৮৮ এ এটি ব্যবহার করে দেখুন! এটি <>> এ চেষ্টা করে দেখুন!

কিভাবে এটা কাজ করে:

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

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

প্রথম লাইন

প্রোগ্রাম এ:
"81!#.#vp00g>:#,_j+4<.=1l5v!o#!g00

><>:
" Wrapping string literal over the first line
 81!#.  Jumps the pointer to the Program C producer

Befunge-98:
" Wrapping string literal
 81!#.  Pushes 8,0 (! inverts number, # skips over .)
      #v Skip over the exit
        p00g Pops the excess 8,0 and space and gets the " from 0,0
            >:#,_ Classic print until stack is empty
       v         j+4< Skips back to the exit and goes to the second line
প্রোগ্রাম বি:
"00g!#o!v5l1=.<4+j_,#:>g00pv#.#!18

><>:
" Wrapping string literal
 00g!# Gets the " from 0,0
      o!v5l1=. Print until the stack is empty and jump to the second line

Befunge-98:

" Wrapping string literal
 00g Gets the " from 0,0
    !#o!v Skip the instruction o and go to Program C producer

দ্বিতীয় লাইন:

g00<<<<<>0!#[f8+1!#.48*k'Wrong language!<o>[f@,kep.#!0a'00g!#o# $$00gff+k,@,k*9aa$$ #o#!a"

><>: Second line producer
g00<<<<< Get the " from cell 0,0
        ......      " Wrapping string literal over the stack
               #o#!a  Print newline and the stack and exit
Program C producer:
       >0!#[        Clear stack
            f8+1!#. Jump to cell 22,1
                   .....'...'   Push program C to the stack
                             00g Get " from cell 0,0
                                !#o# Print stack until empty

Befunge-98: Second line producer

g00<<<<< Get the " from cell 0,0
        ......              " Wrapping string literal
                       #o#!a  Skip over instruction o
                     $$       Pop the excess characters
                  90a Push a newline and 90
               @,k      Execute , instruction (print) 90+1 times, printing second line

Program C producer:
        >0!#[ Push 1 and skip [
             f8+1!#. Push 22, 0 and skip .
                    48*k'...' Execute ' instruction 32 times, pushing program C
                         ...'00g!#o# Push 0 and skip the instruction o
                                     \! Convert excess values to two 0s
                                       g Get " from cell 0,0
                                          ff+ Push 30
                                             k, Execute , 30+1 times, printing program C
                                               @ Exit program

প্রোগ্রাম সি

"a0!#.pek,@f[>o<!egaugnal gnorW

><>:
" Wrapping string literal
 a0!#. Jump to cell 10,0
           f[ Create a new stack with only the top 15 elements
             >o< Print stack

Befunge-98:
" Wrapping string literal
 a0!#. Push 10,1
      p Pop 10,1 and excess space
       ek,@ Push 14 and execute , 14+1 times and exit the program

2
1 বাইট সংরক্ষণ করুন এবং আপনি একটি 400 বন্টি লোল পাবেন।
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস ইউরান আমার মনে হয় ওপি "অন্যথায় জো কিং এটি পেয়েছে" বলতে ভুলে গেছে
জো কিং

@ জোকিং অগত্যা নয়। যদি অনুগ্রহ না দেওয়া হয়, তবে এটি স্বয়ংক্রিয়ভাবে অর্ধেক প্রতিনিধি সহ সর্বাধিক ভোট দেওয়া উত্তরটিতে দেওয়া হয়।
mbomb007

1
@ ম্যাজিক অ্যাক্টোপাস ইউরান ঠিক আছে, সেখানে। সুখী? : পি
জো কিং

4x অতি-আনন্দিত; পি।
যাদু অক্টোপাস উরন

16

জাভাস্ক্রিপ্ট (ES6) / পাইথন 3, 264 + 258 = 522 বাইট

প্রোগ্রাম এ:

a="a=%r;b=%r;c=%r;1//2;print(c);'''\nconsole.log(b,...[a,b,c].map(uneval))//'''";b="a=%s;b=%s;c=%s;1//2;'''\nprint=_=>console.log(c)//'''\nprint(a%(a,b,c))";c="1//2;alert=print\nalert('Wrong language!')";1//2;print(c);'''
console.log(b,...[a,b,c].map(uneval))//'''

প্রোগ্রাম বি:

a="a=%r;b=%r;c=%r;1//2;print(c);'''\nconsole.log(b,...[a,b,c].map(uneval))//'''";b="a=%s;b=%s;c=%s;1//2;'''\nprint=_=>console.log(c)//'''\nprint(a%(a,b,c))";c="1//2;alert=print\nalert('Wrong language!')";1//2;'''
print=_=>console.log(c)//'''
print(a%(a,b,c))

প্রোগ্রাম সি:

1//2;alert=print
alert('Wrong language!')

সম্ভবত গল্ফযোগ্য ...

জাভাস্ক্রিপ্ট ব্যাখ্যা

প্রোগ্রাম এ:

// Set a, b, and c to these strings:
a="a=%r;b=%r;c=%r;1//2;print(c);'''\nconsole.log(b,...[a,b,c].map(uneval))//'''";
b="a=%s;b=%s;c=%s;1//2;'''\nprint=_=>console.log(c)//'''\nprint(a%(a,b,c))";
c="1//2;alert=print\nalert('Wrong language!')";

// Ignore this line:
1//2;print(c);'''

// Print the Python program (b), replacing the "%s"s with the raw forms of a, b, and c:
console.log(b,...[a,b,c].map(uneval))//'''

প্রোগ্রাম বি:

// Set a, b, and c to these strings:
a="a=%r;b=%r;c=%r;1//2;print(c);'''\nconsole.log(b,...[a,b,c].map(uneval))//'''";
b="a=%s;b=%s;c=%s;1//2;'''\nprint=_=>console.log(c)//'''\nprint(a%(a,b,c))";
c="1//2;alert=print\nalert('Wrong language!')";

// Ignore this line:
1//2;'''

// Define a function `print` which prints `c` (the "Wrong language!" program):
print=_=>console.log(c)//'''

// Call `print`, ignoring the argument (which is NaN):
print(a%(a,b,c))

প্রোগ্রাম সি:

// Ignore this line:
1//2;alert=print

// Alert "Wrong language!":
alert('Wrong language!')

পাইথন ব্যাখ্যা

প্রোগ্রাম এ:

# Set a, b, and c to these strings:
a="a=%r;b=%r;c=%r;1//2;print(c);'''\nconsole.log(b,...[a,b,c].map(uneval))//'''";
b="a=%s;b=%s;c=%s;1//2;'''\nprint=_=>console.log(c)//'''\nprint(a%(a,b,c))";
c="1//2;alert=print\nalert('Wrong language!')";

# Print `c` (the "Wrong language!" program):
1//2;print(c);

# Ignore this part:
'''
console.log(b,...[a,b,c].map(uneval))//'''

প্রোগ্রাম বি:

# Set a, b, and c to these strings:
a="a=%r;b=%r;c=%r;1//2;print(c);'''\nconsole.log(b,...[a,b,c].map(uneval))//'''";
b="a=%s;b=%s;c=%s;1//2;'''\nprint=_=>console.log(c)//'''\nprint(a%(a,b,c))";
c="1//2;alert=print\nalert('Wrong language!')";

# Ignore this part:
1//2;'''
print=_=>console.log(c)//'''

# Print the JS program (a), replacing the "%r"s with the raw forms of a, b, and c:
print(a%(a,b,c))

প্রোগ্রাম সি:

# Set `alert` to the function `print`:
1//2;alert=print

# Call this function on "Wrong language!":
alert('Wrong language!')

এটি কীভাবে কাজ করে তার একটি ব্যাখ্যা যুক্ত করতে যত্নশীল?
noɥʇʎԀʎzɐɹƆ

@ ক্রজিপিথন সম্পন্ন :-)
ইটিএইচ প্রডাকশনস

খুব সৃজনশীল, ভাল কাজ।
noɥʇʎԀʎzɐɹƆ

9

পাইথন 3 + জাভাস্ক্রিপ্ট (রাইনো), 171 + 171 = 342 বাইট

প্রোগ্রাম এ (পাইথন 3 এ আউটপুট প্রোগ্রাম বি, জাভাস্ক্রিপ্টে প্রোগ্রাম সি; নতুন লাইনে নোট করুন):

s="'";d='"';r=['print("s="+d+s+d+";d="+s+d+s+";r=["+s+r[1]+s+","+s+r[0]+s+"];eval(r[([11]+[0])[1]])")','print("print("+d+"Wrong language!"+d+")")'];eval(r[([11]+[0])[1]])

প্রোগ্রাম বি (জাভাস্ক্রিপ্টে আউটপুট প্রোগ্রাম এ, পাইথনের প্রোগ্রাম সি; নোট লাইনের নোট করুন):

s="'";d='"';r=['print("print("+d+"Wrong language!"+d+")")','print("s="+d+s+d+";d="+s+d+s+";r=["+s+r[1]+s+","+s+r[0]+s+"];eval(r[([11]+[0])[1]])")'];eval(r[([11]+[0])[1]])

প্রোগ্রাম সি (উভয় ভাষায় "ভুল ভাষা!" আউটপুট; এছাড়াও একটি ট্রেলিং নিউলাইন রয়েছে, যা স্কোরের মধ্যে গণনা করা হয় না):

print("Wrong language!")

মনে রাখবেন যে আমি এখানে জাভাস্ক্রিপ্টের একটি অস্বাভাবিক উপভাষা ব্যবহার করছি। লোকেরা সাধারণত ব্রাউজার বাস্তবায়ন ব্যবহার করে তবে আউটপুট নিয়ে সমস্যা রয়েছে, এটি একটি অদ্ভুত উপায়ে (ব্যবহার করে alert) করা হচ্ছে। আমি উবুন্টু প্যাকেজটি ব্যবহার করছি rhinoযা একটি "অফলাইন" জাভাস্ক্রিপ্ট বাস্তবায়ন যা সাধারণত একটি সাধারণ ব্রাউজারে প্রয়োগ করা হয় (এটি এম্বেডযোগ্য স্ক্রিপ্টিং ভাষা হিসাবে চিহ্নিত করা হয়); এটি উল্লেখযোগ্য যে এটি printএকই স্টাইলে একটি বিবৃতি সরবরাহ করে, উদাহরণস্বরূপ, পাইথন 3।

এটি একটি "সত্য বহুভোজ" এই অর্থে যে উভয় ভাষা একই ক্রমানুসারে চলছে, একই ক্রমে, তাদের একই অর্থ প্রদান করে। তাদের দুজনেরই একই এএসটি রয়েছে (এবং এই প্রোগ্রামটি হ্রাস করার মাধ্যমে পাইথন 3 + জাভাস্ক্রিপ্ট বহুগ্লোট কুইন তৈরি করা মোটামুটি তুচ্ছ)। একটি ভাষার সাথে সুনির্দিষ্ট কোনও কোড নেই, যা আমাকে দৈর্ঘ্যের পথে নামাতে সহায়তা করে। ঘটনাক্রমে, আপনাকে পাইথন 3 ব্যবহার করতে হবে যাতে আপনি পৃথক স্টেটমেন্টগুলিতে সেমিকোলন ব্যবহার করতে পারেন (যদি আপনি নিউলাইনগুলি ব্যবহার করেন তবে আপনাকে নিউলাইনগুলি এড়াতে হবে)।

প্রোগ্রামটি স্ট্রিংগুলি সংজ্ঞায়িত করে শুরু হয় sএবং dযা যথাক্রমে একক উদ্ধৃতি এবং ডাবল উদ্ধৃতি ধারণ করে। এটি পরে সোর্স কোডে উল্লেখ না করেই উদ্ধৃতিগুলি আউটপুট তৈরি করা সম্ভব করে, পলায়নের সমস্যাগুলি এড়ানো (যেগুলি প্রায়শই কুইনগুলির সাথে সমস্যা বলে মনে হয়; আন্ডারলোডে আমি এতগুলি কুইন সমস্যার উত্তর দেওয়ার মূল কারণটি হচ্ছে তার স্ট্রিং নেস্ট) ।

প্রোগ্রামের কেন্দ্রবিন্দু অ্যারে rযা চ্যালেঞ্জ দ্বারা ব্যবহৃত দুটি প্রোগ্রামের মূল অঙ্গকে ধরে রাখে; প্রোগ্রামগুলির মধ্যে একটি (প্রোগ্রাম এ-তে প্রথম আসে, এবং প্রোগ্রাম বিতে দ্বিতীয়) একটি প্রায়-কুইন যা মূল প্রোগ্রামটিকে একসাথে টুকরো টুকরো করে কাটিয়ে তোলে (বেশিরভাগ rস্ট্রিং লিটারাল সহ বেশিরভাগ নিজের থেকেই নেওয়া হয় ), এবং অন্যান্য প্রিন্টস প্রোগ্রাম সি। প্রোগ্রামটিকে সত্যিকারের কুইন না করার জন্য (যেটি আমরা ভুল ভাষায় চালাচ্ছিলাম তা সনাক্ত করা অসম্ভব হয়ে উঠবে) এর উপাদানগুলি rবিপরীত ক্রমে মুদ্রিত হয়; r[0]প্রোগ্রামে এ r[1]প্রোগ্রামে রয়েছে বি, এবং বিপরীতে।

অবশেষে, যা প্রয়োজন তা evalহ'ল সঠিক উপাদানটি উদ্ধৃত করা r([11]+[0])[1]পাইথন 3 এবং জাভাস্ক্রিপ্টে আলাদা মান তৈরি করে এমন এক্সপ্রেশনটি ব্যবহার করে এটি সম্পন্ন হয়েছে। উভয় ভাষা এটিকে অভিন্নভাবে পার্স করে, তবে তালিকাগুলিতে আরও কী যুক্ত হয় সে সম্পর্কে তাদের বিভিন্ন ধারণা রয়েছে:

  • পাইথন 3 যোগ [11]করার পরে [0]এটি [11, 0](তালিকাগুলিকে একত্রিত করে), এবং তারপরে তালিকার দ্বিতীয় উপাদানটি গ্রহণ করে [1]আমাদের পূর্ণসংখ্যা 0 দেয় gives

  • যখন জাভাস্ক্রিপ্ট যুক্ত [11]হয় [0], এটি পায় "110"( তালিকার স্ট্রিং উপস্থাপনাগুলি একত্রিত করে ) এবং তারপরে স্ট্রিংয়ের দ্বিতীয় অক্ষরটি গ্রহণ করে স্ট্রিংটি [1]দেয় "1"যা জাভাস্ক্রিপ্ট একটি তালিকার সূচক হিসাবে ব্যবহার করতে বেশ খুশি।

অতএব, পাইথন 3 rউভয় প্রোগ্রামের প্রথম উপাদান চালায় (প্রোগ্রাম এ চলাকালীন প্রায় কুইন উত্পাদন করে, এবং প্রোগ্রাম বি চলাকালীন মুদ্রণ প্রোগ্রাম সি); জাভাস্ক্রিপ্ট দ্বিতীয় উপাদানটি চালায় এবং এইভাবে প্রোগ্রাম A এবং প্রোগ্রাম বি এর বিপরীতে আচরণ করে।

ঘটনাচক্রে, আপনি যদি রুবিতে একটি প্রোগ্রাম চালনা করেন, তবে এটি বি বিটিকে প্রিন্ট করবে নতুন ট্র্যাকিংয়ের নতুন লাইন ব্যতীত। আপনি যদি রুবিতে বি প্রোগ্রামটি চালান, এটি অনুগ্রহ করে নতুন লাইন ছাড়া প্রোগ্রাম সি মুদ্রণ করবে। অন্য কথায়, এই সমাধানটি প্রায় এক ভিন্ন ভাষার সাথে কাজ করে, রুবির জন্য পাইথন 3 অদল-বদল করে (341 এর স্কোর পাওয়ার জন্য আমি কেবল প্রোগ্রাম বি থেকে নতুন লাইনটি মুছে ফেলছি না তার একমাত্র কারণ হ'ল প্রোগ্রাম সিতে নতুন লাইনের অসঙ্গতি that জমাটি অযোগ্য ঘোষণা করবে)।

(আমি এইরকম একটি "সত্য বহুবিশেষ" তে কাজ করছিলাম অন্য কারণে, যা আমি এখন একটি চ্যালেঞ্জ হিসাবে পোস্ট করেছি এবং বুঝতে পেরেছি যে কৌশলগুলিও এটির সাথে খাপ খাইয়ে নিতে পারে))


171 নয়, প্রতিটি 171 হওয়া উচিত ...
noɥʇʎԀʎzɐɹƆ

1
এটি 171, আপনাকেও নতুন লাইন গণনা করতে হবে। (সাধারণত আপনি কোড-গল্ফ প্রশ্নে নিউলাইনগুলিতে কখনও যান না , তবে কুইনে, প্রায়শই শেষে একটি নতুন লাইন থাকা বিষয়গুলি সহজ করে তোলে))

আমি আপনার জন্য পিছনে নতুন লাইনের যোগ। <pre><code>...</code></pre>তাদের দেখানোর জন্য আপনাকে তাদের ব্যবহার করতে হবে।
mbomb007

আপনি তালিকার সাথে তালিকার জন্য আক্ষরিক কিছু ব্যবহার করতে পারেন ; জেএস আসলে যা-ই হোক না কেন প্রথমে স্ট্রিনে রূপান্তরিত করে। "a"[0], "a"["0"]এবং "a"[[[[[[[["0"]]]]]]]]সমস্ত একই জিনিস সম্পাদন করে।
ETH প্রোডাকশন

8

সি / পাইথন, 733 বাইট + 733 বাইট = 1466 বাইট

প্রোগ্রাম এ:

#define int char*
int
a1="#define print(X) main(){printf(d,13,13,34,a1,34,13,13,34,a2,34,13,13,34,b1,34,13,13,34,b2,34,13,13,34,c,34,13,13,34,d,34,13,b1,13,b2);}";
int
a2="print(c%(13,34,34))";
int
b1="#define print(X) main(){printf(c,13,34,34);};";
int
b2="print(d%(13,13,34,a1,34,13,13,34,a2,34,13,13,34,b1,34,13,13,34,b2,34,13,13,34,c,34,13,13,34,d,34,13,a1,13,a2))";
int
c="#define print(a) main(){puts(a);}%cprint(%cWrong language!%c)";
int
d="#define int char*%cint%ca1=%c%s%c;%cint%ca2=%c%s%c;%cint%cb1=%c%s%c;%cint%cb2=%c%s%c;%cint%cc=%c%s%c;%cint%cd=%c%s%c;%c%s%c%s";
#define print(X) main(){printf(d,13,13,34,a1,34,13,13,34,a2,34,13,13,34,b1,34,13,13,34,b2,34,13,13,34,c,34,13,13,34,d,34,13,b1,13,b2);}
print(c%(13,34,34))

প্রোগ্রাম বি:

#define int char*
int
a1="#define print(X) main(){printf(d,13,13,34,a1,34,13,13,34,a2,34,13,13,34,b1,34,13,13,34,b2,34,13,13,34,c,34,13,13,34,d,34,13,b1,13,b2);}";
int
a2="print(c%(13,34,34))";
int
b1="#define print(X) main(){printf(c,13,34,34);};";
int
b2="print(d%(13,13,34,a1,34,13,13,34,a2,34,13,13,34,b1,34,13,13,34,b2,34,13,13,34,c,34,13,13,34,d,34,13,a1,13,a2))";
int
c="#define print(a) main(){puts(a);}%cprint(%cWrong language!%c)";
int
d="#define int char*%cint%ca1=%c%s%c;%cint%ca2=%c%s%c;%cint%cb1=%c%s%c;%cint%cb2=%c%s%c;%cint%cc=%c%s%c;%cint%cd=%c%s%c;%c%s%c%s";
#define print(X) main(){printf(c,13,34,34);};
print(d%(13,13,34,a1,34,13,13,34,a2,34,13,13,34,b1,34,13,13,34,b2,34,13,13,34,c,34,13,13,34,d,34,13,a1,13,a2))

প্রোগ্রাম সি:

#define print(a) main(){puts(a);}
print("Wrong language!")

আমি পাইথনের সাথে আপনার সি / সি ++ ব্যবহার করার ইঙ্গিতটি ব্যবহার করেছি। খুব সংক্ষিপ্ত নয়, তবে এখনও আমি যোগ্য বলে মনে করি।


3
আপনি কেন আপনার অ্যাকাউন্ট মুছে ফেললেন !? এখানে থাকবেন না কেন?
noɥʇʎԀʎzɐɹƆ

1
ব্যাখ্যা, দয়া করে?
noɥʇʎԀʎzɐɹƆ

2
@ ক্রজিপিথন যদি হয় তবে সে তার অ্যাকাউন্টটি মুছে ফেলে, তারা কোডটি কীভাবে ব্যাখ্যা করবেন?
NoOneIs এখানে

7

পাইথন 2 / রেটিনা, 550 + 645 = 1373 1254 1221 1195 বাইট

আমি unichrএবং replaceঅংশগুলি আরও গল্ফ করা যেতে পারে তা নিশ্চিত না । আমি পাইথন 3 ব্যবহার করার চেষ্টা করেছি, তবে বন্ধনী যুক্ত করতে এবং সেগুলি পরিচালনা করে অনেক কিছু হারিয়ে গেছে। আমি সেটিংস স্থাপন R=unicode.replaceএবং ব্যবহার করার চেষ্টা করেছি , তবে আউটপুট গোলমাল হয়।

দ্রষ্টব্য যে রেটিনার ডিফল্টরূপে তার আউটপুটটিতে একটি পিছনের নতুন লাইন রয়েছে এবং এটি প্রোগ্রামগুলিতে অন্তর্ভুক্ত নয় । যদি কেউ বলেন আমার এটি অপসারণ করা দরকার তবে তা তুচ্ছভাবে করা যায়। এছাড়াও, পাইথন কোড repl.it এ কাজ করে তবে আইডিয়ন ডটকম এ কাজ করার গ্যারান্টিযুক্ত নয়।

এছাড়াও নোট করুন যে শীর্ষস্থানীয় এবং পিছনে থাকা নিউলাইনগুলি নীচের কোডে উল্লেখযোগ্য।

প্রোগ্রাম এ (পাইথন 2): 638 587 566 550 বাইট (ইউটিএফ -8)

পাইথন 2 , রেটিনা

U=unichr;s=U(39)*3;_=u'''\n#U=unichr;s=U(39)*3;_=u%s.replace(U(9),U(96));print _%%(s+_+s).replace(U(10),U(92)+'n').replace(U(96),U(9)).replace(U(178),U(179)).replace(U(183),U(184)).replace(U(182),U(183))#|¶#·print"Wrong language!"·#?.*t|"·¶#{2}|^.¶\n#1 #\n\n#T ²-¹ _o  [^¹]\nn=chr(10);print n+n.join(['print"Wrong language!"','#?.*t|"'])+n\n'''.replace(U(9),U(96));print _%(s+_+s).replace(U(10),U(92)+'n').replace(U(96),U(9)).replace(U(178),U(179)).replace(U(183),U(184)).replace(U(182),U(183))#|
#¶print"Wrong language!"¶#?.*t|"¶
#{2}|^.

প্রোগ্রাম বি (রেটিনা): 735 667 655 645 বাইট (আইএসও 8859-1)

রেটিনা , পাইথন 2


#U=unichr;s=U(39)*3;_=u'''\n#U=unichr;s=U(39)*3;_=u%s.replace(U(9),U(96));print _%%(s+_+s).replace(U(10),U(92)+'n').replace(U(96),U(9)).replace(U(178),U(179)).replace(U(183),U(184)).replace(U(182),U(183))#|·#¸print"Wrong language!"¸#?.*t|"¸·#{2}|^.·\n#1   #\n\n#T ³-¹ _o  [^¹]\nn=chr(10);print n+n.join(['print"Wrong language!"','#?.*t|"'])+n\n'''.replace(U(9),U(96));print _%(s+_+s).replace(U(10),U(92)+'n').replace(U(96),U(9)).replace(U(178),U(179)).replace(U(183),U(184)).replace(U(182),U(183))#|¶#·print"Wrong language!"·#?.*t|"·¶#{2}|^.¶
#1`#

#T`²-¹`_o`[^¹]
n=chr(10);print n+n.join(['print"Wrong language!"','#?.*t|"'])+n

প্রোগ্রাম সি:

পাইথন 2 , রেটিনা

এটি আসলে #!`W.*!শেষ দুটি লাইনের পরিবর্তে ছোট করে তৈরি করা যেতে পারে তবে এটি A এবং B কে আরও দীর্ঘায়িত করে, কারণ `যেখানে একটি লাইন ছিল না সেখানে এর অর্থ অন্যভাবে পরিচালনা করতে হবে (কারণ রেটিনার একটি লাইনে প্রথম ব্যাকটিক একটি কনফিগারেশন ডিলিমিটার)।


print"Wrong language!"
#?.*t|"




ব্যাখ্যা:

প্রোগ্রাম সি:

                        # Retina: replace nothing with the Python code string
print"Wrong language!"  # >> code is executed if run in Python
#?.*t|"                 # Comment w/ '?' for Retina to skip, then replace up to the 't',
                        #    as well as any quotation marks, with nothing

আমি আমার প্রথম প্রয়াসের সময় প্রোগ্রাম সি লিখেছিলাম এবং বেশিরভাগ ক্ষেত্রে একই রেখেছি। পাইথনে এটি স্ট্রিং মুদ্রণ করে এবং মন্তব্যটিকে উপেক্ষা করে। রেটিনাতে এটি কোনও print"Wrong language!"কিছুর সাথে প্রতিস্থাপন করে এবং তারপরে আশেপাশের অংশগুলি সরিয়ে দেয় Wrong language!

জটিল প্রোগ্রামগুলি আরও ভালভাবে বুঝতে, আসুন সরলীকৃত সংস্করণগুলি দেখুন:

প্রোগ্রাম এ (সরলীকৃত):

print"\n#PYTHON\n#1`#\n\n#T`²-¹`_o`[^¹]\nn=chr(10);print n+n.join(['print"Wrong language!"','#?.*t|"'])+n\n"#|
#¶print"Wrong language!"¶#?.*t|"¶
#{2}|^.

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

printএবং সবকিছু ভিতরে কি ছাপে প্রোগ্রাম বি, কিন্তু প্রথম, করতে দেয় কিভাবে প্রোগ্রাম সি ছাপা হয়, কারণ সহজ। পরে print"..."হয় #|। এই কৌশলটি আমার প্রথম প্রয়াসে অভিজ্ঞতার অনেকগুলি বিপদ বাঁচিয়েছে। এটি রেটিনাকে ২ য় লাইনের সাথে কিছুই প্রতিস্থাপন করতে সক্ষম করে যা #সামনের অংশটি বাদে প্রোগ্রাম সি হবে । শেষ 2 টি লাইন প্রথমটিকে সরিয়ে দেয় #। আমি #{2}মঞ্চটিকে সমস্ত ঘটনাগুলি সরাতে বাধা দিতাম #। আমি #1`#প্রোগ্রাম বি তে ব্যবহার করার মতো ব্যবহার করতে পারি না , কারণ এটি প্রোগ্রাম এ এর ​​প্রথম লাইনে সেই ব্যাকটিক থাকতে সমস্যা সৃষ্টি করে

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

প্রোগ্রাম বি:


#PYTHON
#1`#

#T`²-¹`_o`[^¹]
n=chr(10);print n+n.join(['print"Wrong language!"','#?.*t|"'])+n

প্রথম দুটি লাইন পাইথন কোডের সাথে কিছুই প্রতিস্থাপন করবে না, তবে #সামনে এবং কিছু অক্ষর কিছুটা আলাদা। এই অংশটি স্পষ্টতার জন্য বাদ দেওয়া হয়েছে। পরবর্তী পর্যায়ে এটি প্রথম সরিয়ে দেয় #। তারপর, আমি একটি লিপ্যন্তর (টি) পর্যায় ব্যবহার #T`²-¹`_o`[^¹]কিছু পূর্বাবস্থায় ফিরিয়ে আনার replaceঅভিযান সম্পূর্ণ প্রোগ্রাম উ: এই পর্যায়ে ব্যবহার দেখা আউটপুট একটি উপায় একটি আক্ষরিক pilcrow হয় অক্ষিপট এ, যা অন্যথায় impossible.¹ হতে পারে তা পরিবর্ত ·সঙ্গে , এবং ³সঙ্গে ²। ঘটনাগুলিকে এড়িয়ে ¹যাওয়ার কারণে একই থাকবে [^¹]

প্রোগ্রাম এ:

পাঠযোগ্যতার জন্য নিউলাইনস এবং ট্যাবগুলি যুক্ত করা হয়েছে।

U=unichr;s=U(39)*3;

_=u'''
    \n#U=unichr;s=U(39)*3;

    _=u%s.replace(U(9),U(96));

    print _%%(s+_+s)
    .replace(U(10),U(92)+'n').replace(U(96),U(9)).replace(U(178),U(179))
    .replace(U(183),U(184)).replace(U(182),U(183))#|

    ¶#·print"Wrong language!"·#?.*t|"·
    ¶#{2}|^.
    ¶

    \n#1    #\n\n#T ²-¹ _o  [^¹]\nn=chr(10);print n+n.join(['print"Wrong language!"','#?.*t|"'])+n\n'''

.replace(U(9),U(96));

print _%(s+_+s)
.replace(U(10),U(92)+'n').replace(U(96),U(9)).replace(U(178),U(179))
.replace(U(183),U(184)).replace(U(182),U(183))#|

#¶print"Wrong language!"¶#?.*t|"¶
#{2}|^.

এটি নিম্নলিখিত পাইথন কুইনের সাধারণ কাঠামো অনুসরণ করে:

_='_=%r;print _%%_';print _%_

আপনি যখন জিনিসগুলি আগে বা পরে যুক্ত করেন, আপনাকে সেগুলিও স্ট্রিংয়ে রাখতে হয়।

U=unichr;_='U=unichr;_=%r;print(_%%_).replace('','')';print(_%_).replace('','')

উদ্ধৃতি চিহ্নগুলি (ব্যাকস্ল্যাশ ব্যবহার এড়িয়ে যাওয়া) অন্তর্ভুক্ত করা সহজ করার জন্য আমি একটি ট্রিপল-কোটেড স্ট্রিংটি ব্যবহার করতে চেয়েছিলাম। s=U(39)*3;স্ট্রিং হয় '''। নিউলাইনগুলি বা অন্যান্য চরিত্রগুলি ব্যাকস্ল্যাশগুলি সহ পালাতে গিয়ে কিছু সমস্যা এড়াতে আমি এর %sপরিবর্তেও ব্যবহার করেছি %r

U=unichr;s=U(39)*3;_='''U=unichr;s=U(39)*3;_=%s;print(s+_%%_+s).replace('','')''';print(s+_%_+s).replace('','')

সুতরাং এখন, প্রতিস্থাপন। প্রথম প্রতিস্থাপন .replace(U(9),U(96));আছে ট্যাব প্রোগ্রাম বি এই প্রতিস্থাপন মধ্যে ব্যাকটিক প্রতিস্থাপন করছি যে, আমরা দেখতে সম্পন্ন করা হয় আগে কারণ ট্যাব প্রোগ্রাম উ ট্যাব থাকা প্রয়োজন, বিন্যাস স্ট্রিং অন্যান্য প্রতিস্থাপন 2nd নির্দিষ্ট অক্ষর ব্যবহার করে এড়াতে কেবল হয় প্রোগ্রাম বি এর লাইন:

.replace(U(10),U(92)+'n')   # Replace newlines with a backslash and 'n', for B to print A.
.replace(U(96),U(9))        # Replace backticks with tabs for the first part of B.
.replace(U(178),U(179))     # Replace '²' with '³', which will be undone with B's T stage
.replace(U(183),U(184))     # Replace '·' with '¸', which will be undone with B's T stage
.replace(U(182),U(183))     # Replace '¶' with '·', which will be undone with B's T stage

এই অক্ষরগুলি যখন হয় না তখন সেগুলি মুছে ফেলা বা অনুলিপি করা থেকে রোধ করার জন্য এই বিগত তিনটি প্রতিস্থাপনটি প্রোগ্রাম বি তে লিখিত লিখিত লিখিত লিখিত রচনার পর্যায়ে প্রত্যাশা করে।

কোডটির কেবলমাত্র অন্য অংশটি হ'ল প্রোগ্রাম বি থেকে কোড যা প্রতিস্থাপনের কারণে পরিবর্তিত পরিবর্তনগুলি বাদ দিয়ে মূলত চরিত্রের জন্য চরিত্রের অনুলিপি করা হয়।



Ret রেটিনায় আক্ষরিক আউটপুট কীভাবে করা যায় সে সম্পর্কে তার পরামর্শের জন্য মার্টিনকে ধন্যবাদ । এটি সবকিছু এত সহজ করে তুলেছিল।


4

Befunge / পাইথন, 381 + + 485 259 + + 345 229 + 304 = 533 বাইট

প্রোগ্রাম এ: বেফুজে চেষ্টা করুন | পাইথনে চেষ্টা করুন

#>21g::35*:*::":"%\>:#$":"%#\ \#%":"/#::$#-g#1\_#+\#5:#5_v
#v"50g"g12"'<:#>!#,_@<'tnirp"g12">:#,_@"+55"print "::g12$<
#>21g"Wrong language!"21g"g05"21g"[+5+5:]"21g"+55>#">:#,_@
print'''print'<@_,#!>#:<'"Wrong language!"[+5+5:]'''

প্রোগ্রাম বি: পাইথনে চেষ্টা করুন | বেফুঞ্জে চেষ্টা করুন

#>55+"]:5+5+["50g"!egaugnal gnorW"50g"'<:#>!#,_@<'tnirp">:#,_@
print """#>21g::35*:*::":"%\>:#$":"%#\ \#%":"/#::$#-g#1\_#+\#5:#5_v
#v"50g"g12"'<:#>!#,_@<'tnirp"g12">:#,_@"+55"print "::g12$<
#>21g"Wrong language!"21g"g05"21g"[+5+5:]"21g"+55>#">:#,_@
print'''print'<@_,#!>#:<'"Wrong language!"[+5+5:]'''"""

প্রোগ্রাম সি: বেফুঞ্জে চেষ্টা করুন | পাইথনে চেষ্টা করুন

print'<@_,#!>#:<'"Wrong language!"[+5+5:]

ব্যাখ্যা

প্রোগ্রাম সি: এটি নির্ভর করে যে বেফুঞ্জ -৩৩ অসমর্থিত নির্দেশিকাগুলি উপেক্ষা করে, সুতরাং pনিরীহভাবে 0; 0 তে একটি শূন্য লিখলে, বাকী দিকটি বিপরীত নির্দেশ printনা <দেওয়া পর্যন্ত উপেক্ষা করা হয় । তারপরে ডান থেকে বাম দিকে প্রবাহিত হয়ে, +5+5বার্তা স্ট্রিংয়ের পরে একটি 10 ​​(লাইনফিড) স্ট্যাকের দিকে ঠেলে দেয় এবং তারপরে স্ট্রিংটি লেখার জন্য একটি স্ট্যান্ডার্ড আউটপুট ক্রম কার্যকর করা হয়। পাইথনে এটি কেবল দুটি স্ট্রিং লিটারাল মুদ্রণ করছে যা একসাথে একত্রিত হয়, তবে প্রথমটি (বেফঞ্জ কোড সহ) শেষে অ্যারে রেফারেন্স দিয়ে ছাঁটা হয় ( [+5+5:])।

প্রোগ্রাম বি: প্রথম লাইনটি প্রোগ্রাম সি প্রিন্ট করার জন্য মোটামুটি বেসিক বেফঞ্জ সিক্যুয়েন্সটি হ'ল আকর্ষণীয় বিষয় হ'ল এটি যেভাবে উদ্ধৃতি অক্ষরগুলি ব্যবহার করে 50g(যেমন স্মৃতি থেকে চরিত্রটি পড়া) এটি ASCII কোড গণনা করার চেয়ে আরও কার্যকর। #>(দিক নির্দেশ ওপর সেতু) মূলত একটি nop যে কোড পাইথন দ্বারা দেখা হচ্ছে যেহেতু বাধা দেয় #পাইথন মন্তব্য চরিত্র। পাইথনের ব্যাখ্যাটি দুটি লাইনে শুরু হয় এবং কেবল প্রোগ্রাম এ এর ​​উত্স কোড সহ একাধিক স্ট্রিং মুদ্রণ করে is

প্রোগ্রাম এ: পাইথনে প্রথম তিনটি লাইন আবার অগ্রাহ্য করা হয়েছে কারণ সেগুলি শুরু হয় #, যখন শেষ লাইনটি কেবল প্রোগ্রাম সিটিকে প্রিন্ট করে The বেফুঞ্জ কোডটি প্রথম তিনটি লাইন ধরে সাপ ফেলে, স্ট্যাকের উপর প্রোগ্রাম বি এর উত্স তৈরি করে akes বিপরীত ক্রমে। এটি তিনটি উদ্ধৃতি দিয়ে শুরু হয়, তারপরে একটি ক্রম যা প্রোগ্রাম এ এর ​​উত্সের একটি অনুলিপি তৈরি করে এবং শেষ print """পর্যন্ত বেফঞ্জ কোডের খোলার সাথে প্রথম লাইনের সাথে একটি হার্ড কোডিং স্ট্রিং কী। এটি তখন স্ট্যান্ডার্ড আউটপুট ক্রম সহ এটি লেখার বিষয়।

বিতর্ক কিছু পয়েন্ট:

  1. আমাকে বলা হয়েছে যে gকমান্ডটি ব্যবহার করে একটি কোয়াইনকে এই সম্প্রদায়ের পক্ষে যথাযথ কুইন হিসাবে বিবেচনা করা হয় না। আমি নিশ্চিত নই যে এই নিয়মটি এই চ্যালেঞ্জের জন্যও প্রযোজ্য কিনা, তবে যদি তা হয় তবে এই উত্তরটিকেও একটি উপযুক্ত সমাধান হিসাবে বিবেচনা করা হবে না।

  2. যদিও আমি বলেছি যে বেফঞ্জ -৩৩ অসমর্থিত নির্দেশাবলী উপেক্ষা করে, এটি প্রযুক্তিগতভাবে নির্দিষ্টকরণে সংজ্ঞায়িত করা হয়নি, এবং আপনাকে -qপ্রোগ্রাম সি তে সতর্কতা এড়াতে রেফারেন্স ইন্টারপ্রেটারে (শান্ত) কমান্ড লাইন বিকল্পটি ব্যবহার করতে হবে বেশিরভাগ অন্যান্য দোভাষী ঠিক আছে, তবে কিছু flakier সম্ভাব্য ক্রাশ হতে পারে। এছাড়াও নোট করুন যে বেফুঞ্জ -98 অসমর্থিত নির্দেশাবলীর প্রতিফলন করে, সুতরাং একজন 98 দোভাষী কেবল অনির্দিষ্টকালের জন্য লুপ করবেন।


ব্যাখ্যা, দয়া করে?
noɥʇʎԀʎzɐɹƆ

-qপতাকাটি কি আসলে "বেশ", বা আপনার অর্থ "শান্ত"? মিম-হ্যাঁ, এই পতাকাটি বেশ কার্যকর।
mbomb007

@ mbomb007 হ্যাঁ, এটি টাইপো ছিল। যে স্পষ্ট জন্য ধন্যবাদ।
জেমস হোল্ডারেন্স

1
মজাদারভাবে যথেষ্ট, -98 কোনও অজানা নির্দেশ বন্ধ করে দিচ্ছে না। এটি প্রথম rইলেক্ট্রনিক্স নির্দেশ এবং 0 টি বন্ধ করে দিয়েছিল pযা প্রথম ঘরে রয়েছে
জো কিং

1

পার্ল / জাভাস্ক্রিপ্ট, 176 বাইট + 176 বাইট = 352 বাইট

অনুমান করবেন না যে আমি অনুগ্রহের জন্য অন্তর্নিহিত প্রক্রিয়াটি বন্ধ করে 52 বাইট ভাগ করতে পারি, তবে আমি এটি তৈরি করে উপভোগ করেছি। আমি মনে করি আমি যা উত্পাদন করেছি তা মানদণ্ডগুলি পূরণ করে ...

প্রোগ্রাম এ:

$P=1;$_='$L=eval("printf=console.log;J=``;q=_=>_+J;2")||1;$P?printf(q`$P=%s;$_=%s%s%s;eval($_)`,$P=$P==$L?J?2:1:0,$q=J?h^O:atob("Jw"),$_,$q):printf("Wrong language!")';eval($_)

প্রোগ্রাম বি:

$P=2;$_='$L=eval("printf=console.log;J=``;q=_=>_+J;2")||1;$P?printf(q`$P=%s;$_=%s%s%s;eval($_)`,$P=$P==$L?J?2:1:0,$q=J?h^O:atob("Jw"),$_,$q):printf("Wrong language!")';eval($_)

প্রোগ্রাম সি:

$P=0;$_='$L=eval("printf=console.log;J=``;q=_=>_+J;2")||1;$P?printf(q`$P=%s;$_=%s%s%s;eval($_)`,$P=$P==$L?J?2:1:0,$q=J?h^O:atob("Jw"),$_,$q):printf("Wrong language!")';eval($_)

ব্যাখ্যা

আমার পার্ল / জাভাস্ক্রিপ্ট পলিকুইনকে ভিত্তি হিসাবে ব্যবহার করে তবে একটি অতিরিক্ত ভেরিয়েবল সেট $Pকরে যা কোন প্রোগ্রাম উত্পন্ন করবে তা নিয়ন্ত্রণ করে। +[]পার্লে সত্য যে চেকটি ব্যবহার করে তবে জাভাস্ক্রিপ্টে মিথ্যা।

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