Perl 5 , Ruby , JavaScript (Chrome), PHP , Python 2 , Python 3 , 1206 바이트, 점수 6 6 / 1206 = 38.6865671641791
q=1//2;s=+0;s|0;"/.__id__;#";_="""q=1//2;s=+0;s|0;"/.__id__;#";_={0}{1}{0};R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q={0}{2}{0};print(_.format(Q,_,q[0:-12]+R,"%"))""";R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q="""|;#<?ob_end_clean();
eval($_='"$t"?0?[$q=37 .chr+113 .chr+38 .chr,$p=(96 .chr+39 .chr)*4,$n=10 .chr,$s=39 .chr*12,$S=34 .chr*3]:eval("printf=console.log;c=String.fromCharCode;$q=c(96);$p=c(37,113,38,39).repeat(4);$n=c(10);$s=c(39).repeat(12);$S=c(34,34,34)"):[]?[$q=q(!g)^PA,$p=HARHARHARHAR^od2od2od2od2,$n=R^X,$s=bbbbbbbbbbbb^EEEEEEEEEEEE,$S=hhh^JJJ]:[$q=O^h,$p=str_repeat(RHa3^w9GS,4),$n=R^X,$s=str_repeat(b^E,12),$S=HHH^jjj];//#');printf($x='q=1//2;s=+0;s|0;"/.__id__;#";_=%7$sq=1//2;s=+0;s|0;"/.__id__;#";_={0}{1}{0};R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q={0}{2}{0};print(_.format(Q,_,q[0:-12]+R,"%8$s"))%7$s;R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q=%7$s|;#<?ob_end_clean();%5$seval($_=%3$s%1$s%3$s);printf($x=%3$s%2$s%3$s,$_,$x,$q,$p,$n,$s,$S,"%8$s",![]||([]+[])?$n:"");//#%4$s%6$s%7$s;print(_.format(Q,_,q[0:-12]+R,"%8$s"))%9$s',$_,$x,$q,$p,$n,$s,$S,"%",![]||([]+[])?$n:"");//#`q&%`q&%`q&%`q&%''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
온라인 Perl, Ruby, PHP, Python 2 및 Python 3의 유효성을 검사하십시오!
참고 : Chrome의 Inspector 콘솔에서 위의 프로그램을 실행하면 위치 인수를 지원하는 것으로 표시되어 console.log
올바른 프로그램을 반환합니다.
설명
이것은 내가 기대했던 것보다 훨씬 길었고 인생도 조금 더 어려워서 계속 땜질 할 것입니다. 더 많은 언어를 추가하고 싶지만 $
시길을 신경 쓰지 않는 것을 찾아야합니다 ...
이것은 인용 부호의 계산이 각 언어마다 약간 다른 표준 퀴니 형식입니다. Ruby %q&
에서는 PHP를 사용하고 '
, JavaScript (Node.js)를 사용 `
하고 Perl 5는 q(
...를 사용 )
합니다. 따옴표 만 변경되기 때문에 나머지 프로그램은 여전히 각 언어에서 실행 가능하고 유효한 구문입니다. Python 2 및 Python """
은 Python 2 및 '''
Python 3을 사용하여 이전 프로그램을 래핑합니다 .
결과 Perl 및 Ruby 프로그램은 표준 quine이 아니며 추가 q
/ %q
s가 반복마다 추가되지만 첫 번째 프로그램은 올바르게 리턴됩니다.
결과는 다음과 같습니다.
- 펄 5 :
eval($_=q&
... q&);printf($x=q&
... q&,
... );//#'%`'%`'%`'%`''''''''''''"""
...
- 루비 :
eval($_=%q&
... %q&);printf($x=%q&
... %q&,
... );//#`'`'`'`'''''''''''''"""
...
- 자바 스크립트 (Chrome) :
eval($_=`
... `);printf($x=`
... `,
... );//#%q&'%q&'%q&'%q&'''''''''''''"""
...
- PHP :
eval($_='
... ');printf($x='
... ',
... );//#`q&%`q&%`q&%`q&%''''''''''''"""
...
- 파이썬 2 :
... _="""
... """;
... q="""
...''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
- 파이썬 3 :
... _='''
... ''';
... q='''
...""""""""""""''';print(_.format(Q,_,q[0:-12]+R,"%"))
나는 이것을 많이 재 작업했다. 나는 여기서 중요한 것을 놓치지 않았기를 바란다. 나는 여전히 조 킹의 점수 근처에 갈 수있는 좋은 방법을 가지고 있습니다 ...