কুইন… তবে একের পর এক স্থানান্তরিত


15

দশমিক প্রিন্টযোগ্য এএসসিআইআই অক্ষর কোডগুলি উল্লেখ করে আমরা জানি যে 32 থেকে 126 পর্যন্ত আমাদের 32 টি (স্পেস) সহ মুদ্রণযোগ্য অক্ষর রয়েছে। আপনার চ্যালেঞ্জটি 32 থেকে 125 (126 ব্যতীত) কেবলমাত্র অক্ষর ব্যবহার করে একটি প্রোগ্রাম লিখতে হয় যা সম্পাদিত হওয়ার পরে উত্স কোডের প্রতিটি অক্ষরের একটিতে ASCII কোড বৃদ্ধি পেয়ে থাকে তার ব্যতীত তার নিজস্ব উত্স কোড প্রিন্ট করে।

উদাহরণস্বরূপ, যদি সোর্স কোডটি ছিল

main(){printf("Hello World");}

এর আউটপুট হবে

nbjo)*|qsjoug)#Ifmmp!Xpsme#*<~

নিম্নলিখিত নিষিদ্ধ:

  • পড়া / লেখার / কোনও বাহ্যিক ফাইল বা স্টোরেজ (ইন্টারনেট সহ) ব্যবহার করে
  • আপনার নিজস্ব উত্স কোডটি পড়া / প্রতিধ্বনিত হচ্ছে
  • 2 টিরও কম অক্ষরের সাথে উত্স কোডগুলি (তারা কোনও মজাদার নয়)। 2 এর চেয়ে বড় বা সমান হতে হবে।

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


কেন 126 এর অনুমতি দিচ্ছেন না, তবে এটি 32 এ যেতে হবে? (কেন / কীভাবে কেউ এটি করবে তা আমি জানি না))
জাস্টিন

এই ধরণের প্রশ্নগুলির ত্রুটি বার্তাগুলিকে "আউটপুট" হিসাবে বিবেচনা করতে নিষেধ করা উচিত (দুঃখিত @ গারিবিএন)। "আউটপুট" আপনার কোড দ্বারা স্ট্যান্ডার্ড আউটপুটে ইচ্ছাকৃতভাবে মুদ্রিত স্টাফ, ভাষা নির্বাহযোগ্য দ্বারা নির্ধারিত ইচ্ছামত পার্শ্ব প্রতিক্রিয়া নয়।
l0b0

3
ব্যবহারের অক্ষমতা ~সত্যিই গল্ফস্ক্রিপ্টের জন্য স্তন্যপান করে। বাজি আপনি উদ্দেশ্য অনুযায়ী যে। :-)
ইলমারি করোনেন

1
"আপনার নিজস্ব উত্স কোড পড়া" সংজ্ঞায়িত করুন। আমাদের কি কোনও ফাংশন স্ট্রিংফাই করার অনুমতি দেওয়া হয়েছে, অথবা এর পরিবর্তে আমাদের কোনও স্ট্রিং তৈরি করতে হবে?
জন ডিভোরাক

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

উত্তর:


46

পাইথন (২ characters টি অক্ষর)

পাইথন শেলটিতে, নিম্নলিখিত স্ক্রিপ্টটি পছন্দসই ফলাফল আউটপুট দেবে:

TzoubyFssps;!jowbmje!tzouby

হ্যাঁ! এটি ফলাফল:

SyntaxError: invalid syntax

6
ওহ মানুষ, এই আসছে দেখেনি। :-D
ফিক্সড পয়েন্ট

9
আসলে ফলাফলটি ভুল উপায়ে স্থানান্তরিত হয়েছে: পি
এরবুর্থ বলেছেন রিইনস্টেট মনিকা

@ এরবুর্থ এটি আরও অনেক উত্তরের জন্য এখানে প্রাসঙ্গিক ... =)
গ্যারি বিএন

স্মার্ট পদক্ষেপ, যদিও এটি সবচেয়ে কম নয়। এক্সডি
সিজেফুরে

2
আমি ট্রোলোলোলোলল কল করছি।
পাইরুলেজ

14

তাই না? , 5 অক্ষর

Ntbg 

নোট করুন যে 5 তম অক্ষর এর পরে একটি স্থানNtbg । এটি আমার আগের উত্তরগুলির মতো একই কৌশল । Ntbgএকটি অবৈধ পাথ, সুতরাং দোভাষীর আউটপুট আসবে আপনার Ouch!এটিকে এটি চালানো উচিত:

huh.exe Ntbg 

"হু?" দিয়ে আমি বহু কুইন কল্পনা করতে পারি? এখন। বিপরীত কুইন:! HcuO কুইন: আউচ!
মিল্কওয়াই 90

8

পিএইচপি (351)

আমি নিশ্চিত যে কোডগল্ফিংয়ে আমি নতুন হয়ে আসছি, তবে এটি করার আরও ভাল উপায় আছে তবে এখানে আমার পিএইচপি সমাধান রয়েছে:

function q(){$q=chr(39);$a=array('function q(){$q=chr(39);$a=array(',');@$r.=$a[0];foreach($a as$b)$r.=$q.$b.$q.",";$r=substr($r,0,-1);$r.=$a[1];for($i=0;$i<strlen($r);$i++)$r{$i}=chr(ord($r{$i})+1);return $r;}');@$r.=$a[0];foreach($a as$b)$r.=$q.$b.$q.",";$r=substr($r,0,-1);$r.=$a[1];for($i=0;$i<strlen($r);$i++)$r{$i}=chr(ord($r{$i})+1);return $r;}

আউটপুট:

gvodujpo!r)*|%r>dis)4:*<%b>bssbz)(gvodujpo!r)*|%r>dis)4:*<%b>bssbz)(-(*<A%s/>%b\1^<gpsfbdi)%b!bt%c*%s/>%r/%c/%r/#-#<%s>tvctus)%s-1-.2*<%s/>%b\2^<gps)%j>1<%j=tusmfo)%s*<%j,,*%s|%j~>dis)pse)%s|%j~*,2*<sfuvso!%s<~(*<A%s/>%b\1^<gpsfbdi)%b!bt%c*%s/>%r/%c/%r/#-#<%s>tvctus)%s-1-.2*<%s/>%b\2^<gps)%j>1<%j=tusmfo)%s*<%j,,*%s|%j~>dis)pse)%s|%j~*,2*<sfuvso!%s<~

6

টিআই-বেসিক, 10

আপনার টিআই -83 / 84 ক্যালকুলেটরের জন্য!

DQQ9RXMS@W

আউটপুট:

ERR:SYNTAX

6

গল্ফস্ক্রিপ্ট, 15 টি অক্ষর

{`{)}%"/2+"}.1*

আউটপুট:

|a|*~&#03,#~/2+

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

"ঘূর্ণায়মান কুইন" চ্যালেঞ্জটিতে আমার প্রবেশের জন্য যে কৌশলটি ব্যবহার করেছি তার উপর ভিত্তি করে মোটামুটি সোজা সমাধান । একটি জটিল বিশদটি হ'ল চরিত্রটি ~(এএসসিআইআই 126) চ্যালেঞ্জ বিধিমালা দ্বারা অনুমোদিত নয়, তাই আমি আমার কোড ব্লকটি কার্যকর করতে এটি ব্যবহার করতে পারি না। ভাগ্যক্রমে, 1*এটি একটি প্রতিশব্দ হিসাবে ব্যবহার করা যেতে পারে।

ব্যাখ্যা:

কোড ব্লকটি {`{)}%"/2+"}নকল করে ., এবং দ্বিতীয় অনুলিপি দ্বারা সম্পাদিত হয় 1*(প্রযুক্তিগতভাবে, একটি-পুনরাবৃত্তি লুপ), স্ট্যাকের মধ্যে অন্য অনুলিপি রেখে। কোড ব্লকের অভ্যন্তরে, কোড ব্লকটিকে `স্ট্রিংফাই করে এবং {)}%এর অক্ষরগুলিকে (এএসসিআইআই কোডগুলি) লুপ করে প্রতিটি একে একে বাড়িয়ে তোলে । অবশেষে, "/2+"আক্ষরিক স্ট্রিংটি /2+(যা .1*এক দ্বারা স্থানান্তরিত হয়) স্ট্যাকের দিকে ঠেলা দেয় । প্রোগ্রামের শেষে, গল্ফস্ক্রিপ্ট ইন্টারপ্রেটার পরে স্ট্যাকের সমস্ত কিছু স্বয়ংক্রিয়ভাবে মুদ্রণ করে।

পুনশ্চ. হ্যাঁ, আমি জানি এটি কঠোর চেয়ে , তবে আমি গল্ফস্ক্রিপ্ট - এএসসিআইআই আর্ট দিয়ে আর কী করব? ;-)


3

জাভাস্ক্রিপ্ট, 117 টি অক্ষর

আমি জানি এটি কোড গল্ফ নয় তবে যাইহোক আমি এটি গল্ফ করেছি।

function f(){alert((f+';f()').split('').map(function(x){return String.fromCharCode(x.charCodeAt()+1)}).join(''))};f()

(আমি আমার নিজস্ব উত্স কোডটি পড়ছি না; আমি কেবল Functionঅবজেক্টের toStringফাংশনটি ব্যবহার করছি ।)


2

জাভা - 1331 বাইট, 618 বাইট এবং 504 বাইট

এখানে এটি জাভা হয়। দুর্দান্ত জিনিসটি হ'ল এটি বেশ সুগঠিত এবং নমনীয়। আপনি SHIFTচলকটি 0 এ পরিবর্তন করতে পরীক্ষা করতে পারেন এবং এটি একটি কুইন হবে। Negativeণাত্মক মান সহ আপনি যে কোনও মানটিতে এটি চান পরিবর্তন করতে পারেন এবং কোড অনুসারে এটি শিফট হয়ে যাবে।

public class Quinex {

    private static final int SHIFT = 1;

    private static String next(String now, boolean mangles) {
        String sb = "";
        for (char c : now.toCharArray()) {
            if (!mangles && c == 87) {
                sb += next(String.valueOf(SHIFT), true);
            } else {
                sb += (char) ((mangles ? c : c == 94 ? 10 : c == 64 ? 34 : c) + SHIFT);
            }
        }
        return sb;
    }

    public static void main(String... args) {
        System.out.println(next(TEXT, false) + next(TEXT, true) + new String(new char[] { 34, 59, 10, 125 }));
    }

    private static final String TEXT = "public class Quinex {^^    private static final int SHIFT = W;^^    private static String next(String now, boolean mangles) {^        String sb = @@;^        for (char c : now.toCharArray()) {^            if (!mangles && c == 87) {^                sb += next(String.valueOf(SHIFT), true);^            } else {^                sb += (char) ((mangles ? c : c == 94 ? 10 : c == 64 ? 34 : c) + SHIFT);^            }^        }^        return sb;^    }^^    public static void main(String... args) {^        System.out.println(next(TEXT, false) + next(TEXT, true) + new String(new char[] { 34, 59, 10, 125 }));^    }^^    private static final String TEXT = @";
}

যাইহোক, পূর্ববর্তী ক্লাসের একমাত্র ত্রুটিটি হ'ল লাইন বিরতি, যা প্রশ্ন উত্সে অনুমোদিত নয় (32 থেকে 125 সীমার বাইরে)। সুতরাং আমি এখানে একটি গল্ফযুক্ত সংস্করণ দিচ্ছি যা লাইন ব্রেক থেকে মুক্ত (এবং এগুলি পরিচালনা করার জন্য কোয়ার্ক মুক্ত)। আপনি Sশিফটটি পরিবর্তন করতে ভেরিয়েবলের মান সম্পাদনা করতে পারেন । এটিতে 618 বাইট রয়েছে:

class Q{static String g(String p,int m){int S=1;String u="";for(char c:p.toCharArray()){if(m==0&&c==87){u+=g(String.valueOf(S),1);}else{u+=(char)((m>0?c:c==64?34:c)+S);}}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T="class Q{static String g(String p,int m){int S=W;String u=@@;for(char c:p.toCharArray()){if(m==0&&c==87){u+=g(String.valueOf(S),1);}else{u+=(char)((m>0?c:c==64?34:c)+S);}}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T=@";}

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

class Q{static String g(String p,int m){String u="";for(char c:p.toCharArray()){u+=(char)((m>0?c:c==64?34:c)+1);}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T="class Q{static String g(String p,int m){String u=@@;for(char c:p.toCharArray()){u+=(char)((m>0?c:c==64?34:c)+1);}return u;}public static void main(String[]y){System.out.println(g(T,0)+g(T,1)+new String(new char[]{34,59,125}));}static final String T=@";}

1

পার্ল 5, 284 টি অক্ষরের মধ্যে লাইনফিড অন্তর্ভুক্ত রয়েছে

ব্যবহারের অনুমতি দেওয়া হচ্ছে না it এটিকে কিছুটা আরও জটিল করে তুলেছে।

#!/usr/bin/perl
$_=<<X;
#!/usr/bin/perl
Y
\$a=\$_;
s/\\\\/\\\\\\\\/g;
s/\\\$/\\\\\\\$/g;
\$b=\$_;
\$_=\$a;
s/Y/\\\$\\_\\=\\<\\<X\\;\\n\${b}X/;
s/(.)/chr(ord(\$1)+1)/ge;
print;
X
$a=$_;
s/\\/\\\\/g;
s/\$/\\\$/g;
$b=$_;
$_=$a;
s/Y/\$\_\=\<\<X\;\n${b}X/;
s/(.)/chr(ord($1)+1)/ge;
print;

1

পাইথন, 99

s='import sys;sys.stdout.write("".join(chr(ord(c)+1)for c in a%(s,a)))';a='s=%r;a=%r;exec s';exec s

আউটপুট:

t>(jnqpsu!tzt<tzt/tuepvu/xsjuf)##/kpjo)dis)pse)d*,2*gps!d!jo!b&)t-b***(<b>(t>&s<b>&s<fyfd!t(<fyfd!t

এটি 75 অক্ষরে সংক্ষিপ্ত করা যেতে পারে , তবে এটি আউটপুট পরে একটি নতুন লাইন অক্ষর প্রিন্ট করবে, প্রযুক্তিগতভাবে নিয়মগুলি ভঙ্গ করে:

s='print"".join(chr(ord(c)+1)for c in a%(s,a))';a='s=%r;a=%r;exec s';exec s

1
আপনি কেন কেবলমাত্র একটি ট্যাব ( \x09) রাখবেন না, যেহেতু একে একে সরিয়ে নেওয়া ট্যাবটি একটি নতুন লাইন ( \x0A)। তারপরে আপনার সংক্ষিপ্ত সংস্করণটি 76 বাইটের সাথে কাজ করবে।
mbomb007


0

লুয়া - 192

অনেকটাই অকপট,

s=[[print((('s=['..'['..s..']'..']'..s):gsub('.',function(x)return string.char(x:byte()+1)end)))]]print((('s=['..'['..s..']'..'];'..s):gsub('.',function(x)return string.char(x:byte()+1)end)))

0

সি - 156

char*f="char*f=%c%s%c,q[200];i;main(){sprintf(q,f,34,f,34);while(q[i])q[i++]++;puts(q);}",q[200];i;main(){sprintf(q,f,34,f,34);while(q[i])q[i++]++;puts(q);}

প্রয়োজনীয় পরিবর্তনগুলির সাথে কেবল ক্লাসিক সি কুইন

পিএস, স্পষ্টতই sprintf(f,...,f,...)একটি সেগফল্ট।


0

জাভাস্ক্রিপ্ট (276)

ব্যবহার না করে .toString():

function q(){x=String.fromCharCode;y=x(39);a=['function q(){x=String.fromCharCode;y=x(39);a=[','];r=a[0]+y+a[0]+y+","+y+a[1]+y+a[1];q="";for(c in r)q+=x(r[c].charCodeAt(0)+1);return q;}'];r=a[0]+y+a[0]+y+","+y+a[1]+y+a[1];q="";for(c in r)q+=x(r[c].charCodeAt(0)+1);return q;}

0

রুবি, 63

ডার্ন, এটির উপর কোনও হেরডোক ব্যবহার করতে পারে না।

s="s=%p;(s%%s).chars{|c|$><<c.succ}";(s%s).chars{|c|$><<c.succ}

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


0

সি, 153

main(a){char b[999];sprintf(b,a="main(a){char b[999];printf(a=%c%s%c,34,a,34);for(a=0;b[a];)b[a++]++;puts(b);}",34,a,34);for(a=0;b[a];)b[a++]++;puts(b);}

সিতে ক্লাসিক কুইনের আরও একটি পরিবর্তন ...


0

> <>, 16 বাইট

" r:2+l?!;1+o50.

এখানে চেষ্টা করুন!

এটি <>> ( gনির্দেশ ব্যবহার না করে) এর মধ্যে কম-বেশি কেবল একটি স্ট্যান্ডার্ড কুইন । কেবলমাত্র পার্থক্য হ'ল এটি নিজস্ব উত্স-কোডটি পড়ে না এবং প্রতিটি অক্ষর আউটপুট করার আগে 1 দ্বারা বৃদ্ধি করে।

আউটপুট

#!s;3,m@"<2,p61/

*> <> , 15 বাইট (প্রতিদ্বন্দ্বী)

" r:2+Ol?!;1+ou

এখানে চেষ্টা করুন!






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