퀸에서 다시 여행


12

여기서의 도전은 간단하지만 바이트 수에 관한 것이 아닙니다. 당신의 임무는 이전 퀴네 소스 코드의 처음 50자를 출력하는 것입니다. 아래 50 개의 문자로 시작하는 첫 50 개의 문자와 연결되어 있습니다.

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY

05AB1E로 답한다면, 처음 50 바이트 만 출력하는 솔루션은 다음과 같습니다.

ži50£

출력해야 할 것입니다.

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYži50£

프로그램이 짧으면 첫 x < 50문자 만 사용하십시오 . 프로그램이 더 이상 처음 50자를 연결하면 50 번째 문자로 끝납니다. 다음 사람은 자신의 코드와 연결된 퀴네의 처음 50자를 출력해야합니다.

코드의 크기는 제한이 없지만 코드의 처음 50 자만 이전 답변 코드의 첫 50 바이트 끝에 연결해야합니다.


제한 사항 :

이것은 적절한 quine 의 정의를 사용하며 그 외에도 다음과 같은 것들을 사용합니다.

  • 댓글은 전적으로 허용되지 않습니다.
  • 이 섹션에주의를 기울이십시오. 번잡 한 직원이 발생하면 발전 할 수 있습니다.

연결 답변을 게시하는 방법 :

  1. 자리 표시 자 게시 :
    • 답변 번호와 사용할 언어를 언급하십시오.
  2. 날짜별로 정렬 : 다른 사람이 1 밀리 초 전에 자리 표시자를 게시 한 것을 발견 한 경우 :
    • 당신을 삭제하고 다음 기회를 기다리십시오. 죄송합니다.
  3. 다음 장소를 확보했다면 6 시간 이내에 답변하십시오 .
    • 응답 할 수 없으면 예약 된 공간을 제거하십시오.
  4. 공간이 6 시간 이상 동안 삐걱 거리는 경우.
    • 예약 된 공간을 삭제하려면 투표하십시오. 처리하겠습니다.

귀하의 게시물 형식 :

#[Answer #]:[Character Count] Characters, [Language Used]

{TIO MARKDOWN}

{LINE_SEPARATOR="---"}

{ADDITIONAL EXPLANATION OR INFORMATION}

일부 특정 참고 사항 (경쟁 용이성에 중요) :

  • 이전 사람이 개행 문자 또는 비 ASCII 문자를 소스에 포함시킨 경우 해당 문자를자를 수 있습니다. 이 수단 x="a\nb"이된다 ab, 여기서 x[0]=a;x[1]=b;.
    • 이전 소스에 적용한 돌연변이를 명시해야합니다.
  • 코드 페이지 나 언어 인코딩에도 불구하고 모든 문자는 단일 문자로 계산됩니다. 바이트 수를 사용하지 말고 문자 수를 사용하십시오.

받아 들여진 대답은 50th바로 그 대답 일 것입니다 . 결국 SE입니다.


댓글이 왜 금지 되나요? 또한 바이트를 문자로 재정의하는 대신 왜 문자를 사용하지 않습니까?
CalculatorFeline

@CalculatorFeline 의견을 사용하여 꽤 절름발이하고 흥미 진진한 허점을 할 수 있다고 생각하지만 그건 나뿐입니다. 첫 번째 장소를 예약하고 의견으로 나를 잘못 증명하면 금지를 해제합니다.
매직 문어 Urn

5
적절한 퀴를 정의하는 연결된 메타 포스트에는 기능이없는 코드가 없다는 언급이 없습니다.
Ørjan Johansen

1
의견을 어떻게 정의하고 있습니까? 주석은 잘 정의 된 용어가 아닙니다.
Ad Hoc Garf Hunter 4

1
또한 문자와 바이트라는 용어를 바꾸는 것 같습니다. 처음 50 자 또는 바이트인지 확실하지 않습니다.
Ad Hoc Garf Hunter

답변:


7

1:96 자 , 하스켈

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY:z=['`'..'z']++'A':['C'..'Y']
main=putStr$z++z

온라인으로 사용해보십시오!


나는 어리석은 느낌이 들었고 첫 번째 항목 이 초기 문자열과 정확히 동일한 50 자로 시작하는 것을 막을 수 없었습니다 .

  • ['`'..'z']++'A':['C'..'Y']`접두사를 사용하여 해당 문자의 문자열을 평가하는 표현식 입니다.
  • 그 결과 패턴 변수를 만들기에 일치되어 abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY동일 '`'하고, z50 자와 동일.
  • main=putStr$z+z 그런 다음 실제 출력을 수행합니다.

나는이 도전이 a-zA-Z로 시작한 방식을 좋아하며 이제는 기본적으로 더 이상 알파벳이 아닙니다. 첫 번째 프로그램에 전화하십시오.
Magic Octopus Urn

5

5:76 자, 이모티콘 코드

🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzACD🔤😀🍪a🔤🏁🍇🍦a❌🔤🔤🔪a 0 45🍪🍉

온라인으로 사용해보십시오!


설명:

🏁🍇		👴 start
  🍦 a 🔤...🔤	👴 define variable a as that string
  😀    	👴 print:
    🍪		👴 combine those strings:
      a		👴 a, and:
      🔤🏁🍇🍦a❌🔤🔤	👴 string literal. the ❌🔤 works like \"
      🔪a 0 45	👴 between indexes 0 and 45 of a
    🍪
🍉		👴 end

1
알파벳이 천천히 사라지고 있습니다 : O.
Magic Octopus Urn

사용 : 힌트를 포맷 <pre><code>하고 </code></pre>다음 사용할 수 있습니다, &#9;심지어 이모티콘과 같은 가변 폭 문자 의도 한대로 정렬 탭에 대해. BTW, 나는 Emojicode에서 quine을 만드는 방법에 대해 생각하고 있었고 아래로 스크롤했습니다 ...
NieDzejkob

@NieDzejkob 좋은 생각입니다, 감사합니다.
betseg

@betseg 그것은 나를 위해 몇 곳에서 약간 떨어져 있지만 어쨌든 더 읽기 쉽습니다. 기쁘게 생각합니다
NieDzejkob

@NieDzejkob 몇 개? 내 글꼴을 사용하면 문자열 리터럴의 명령이 길기 때문에 꺼져 있습니다.
betseg

4

2 : 119 자, 자바 스크립트

alert(eval(c="'abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY'+`alert(eval(c=${JSON.stringify(c).substr(0,37)}`"))

온라인으로 시도 ( 출력 console.log대신 사용 alert)

이 JS quine을 기반으로 합니다.

이전 버전 (소스 코드를 읽음) :

f=_=>`abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYf=${(f+"").substr(0,48)}`;alert(f())

이 JS quine을 기반으로


함수가 자신을 참조하는 것처럼 올바른 퀴인은 아닙니다.
얽히고 설킨

@Shaggy 저는 유효한 것을 추가했습니다
SuperStormer

1
@Shaggy Self-referential 함수는 정의에 따라 유효합니다.
ATaco

3

8:70 자, Stax

"v->{String t=`"⛽as=:'\`"alert(eval(c=\`"''abcdefghijk"c'".`"R34|S50(+

온라인 실행 및 디버그

설명

"..."c'".`"R34|S50(+
"..."                   The string from last output
     c'".`"R            Escape all double quotes
            34|S        Surround with double quotes
                50(     Take the first 50 characters
                   +    Append to the string from last output
                        Implicit output

2

3:56 자, SOGL

"alert(eval(c="'abcdefghijklmnopqrstuvwxyzACDEFGHIJ”1#Οj

여기 사용해보십시오!

설명:

"...”      push the first 50 bytes of the previous answer
     1#Ο   wrap a quote around with that
        j  take the last letter off, as my answer has one more byte for the starting quote.

Javascript 답변에 따옴표가 있으므로 시작 따옴표를 추가해야했지만 코드 골프가 아니기 때문에 중요하지 않습니다.



2

7 : 137 자, Java 8

v->{String t="⛽as=:'\"alert(eval(c=\"''abcdefghijklmnopqrstuvwxyzA";return t+("v->{String t=\""+t.replace("\"","\\\"")).substring(0,50);}

온라인으로 사용해보십시오.

설명:

v->{        // Method with empty unused parameter and String return-type
  String t="⛽as=:'\"alert(eval(c=\"''abcdefghijklmnopqrstuvwxyzA";
            //  String containing the first 50 characters of the previous answer
  return t  //  Return those first 50 characters
   +"v->{String t=\""+t.replace("\"","\\\"")).substring(0,50);}
            //  Concatted with the first 50 characters of my answer
            //  with correct escape-slashes

아하! 나는 이모지가이 도전을 잘 죽였다고 생각했다. 좋은데
Magic Octopus Urn

@MagicOctopusUrn 나는 이제 " 당신이 이전에 그 사람이 개행 문자 나 비 ASCII 문자를 그들의 출처에 포함 시켰다면, 당신은 그것들을 잘라낼 수있다"는 규칙에 주목 한다 . 내 대답은 어쨌든 바이트가 아닌 문자로 계산되기 때문에 어느 쪽도 중요하지 않습니다.
Kevin Cruijssen

그것은 정직한 캐릭터 수에 관한 것이 아닙니다. 그렇습니다. 나는 그 규칙에 대해 잊어 버렸습니다 (일반적으로 도전을 잊어 버렸습니다).
Magic Octopus Urn

솔직히 생각 해봐, 이건 정말 어려운 일이 아닌가?
Magic Octopus Urn

@MagicOctopusUrn 그것은 다소입니다. 기본적으로 퀴네의 첫 50자를 얻습니다. Java에서 quines는 일반적으로 형식화되지 않은 소스 코드를 문자열에 넣은 다음 큰 따옴표와 슬래시를 올바르게 형식화 / 이스케이프 처리하여 형성됩니다. Java 8의 기본 quine lambda 함수는 이미 88 바이트 ( 온라인 시도 )이므로 Java에서는 전체 quine을 사용하지 않고이 과제가 훨씬 짧습니다. 그래도 quine이 대부분의 언어에서 가장 좋은 방법이라고 생각할 수 있습니다.
케빈 크루이 센

1

6 : 70 자, 이모티콘

⛽as=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzAC🚘👥💬⛽💬🔀👫💬0💬📥💬-1💬📥✂👫➡

온라인으로 사용해보십시오!

후행 줄 바꿈을 출력하지 않는 것은 불가능한 것 같습니다. 그래도 문제가 해결되지 않으면 답변을 삭제하겠습니다.

설명:

⛽ ... 🚘	String literal
👥		Duplicate
💬⛽💬		Push ⛽ as a string
🔀		Swap the top two strings. Stack: [long literal] "⛽" [long literal]
👫		Concatenate.
💬0💬📥💬-1💬📥✂	Remove the last character
👫		Concatenate.
➡		Print.

⛽🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwx🚘👥💬⛽💬🔀👫💬0💬📥💬-1💬📥✂👫➡대신 해서는 안 됩니까? betseg 의 Emojicode의 대답은로 시작하지 않는 as=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzAC만에 🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwx대신.
케빈 크루이 센

@KevinCruijssenIf the person before you has included newlines or non-ASCII characters in their source, you may STRIP them.
NieDzejkob

아, 나는 그 규칙을 놓쳤다. 그 경우에 나는 나의 대답을 업데이트 할 것이다.
Kevin Cruijssen

호기심 때문에 왜 벗겨 냈습니까? 향후 답변을 더 쉽게하기 위해? 이전 답변의 이모티콘을 제거하지 않고 코드가 완벽하게 실행 되므로 여기에서 시도하십시오 .
Kevin Cruijssen

@KevinCruijssen 반년 전입니다. 기억이 안나요
NieDzejkob

1

12 : 202 자, 루비

puts "21ipdgmtwkkke7ynvzpcnlzt7kl".to_i(36).to_s(7).gsub('0','>').gsub('1','+').gsub('2','-').gsub('3','<').gsub('4','[').gsub('5','.').gsub('6',']')+'puts "21ipdgmtwkkke7ynvzpcnlzt7kl".to_i(36).to_s(7'

온라인으로 사용해보십시오!


기본 7의 이전 답변의 첫 50자를 인코딩합니다.

  • 0 :>
  • 1 : +
  • 2 :-
  • 3 : <
  • 4 : [
  • 5 :.
  • 6 :]

그런 다음 기본 36으로 변환하여 "21ipdgmtwkkke7ynvzpcnlzt7kl"을 얻습니다.


0

9 : 55 자, 젤리

“"v->{String t=`"as=:'\`"alert(eval(c=\`"''abcdefg”;”“;

온라인으로 사용해보십시오!


ASCII가 아닌 문자 를 출력에서 제거 하고 Jelly가 무시했기 때문에 출력에서 비 ASCII 문자 를 제거 했습니다.

설명

이것은 이전 답변 의 처음 50 자 (마이너스 )의 문자열 리터럴로 시작 하여 문자 ;”“추가 한 다음 원래 문자열 리터럴을 마지막에 마지막에 추가 ;합니다. 문자가 제거되었으므로 소스 코드의 첫 50 문자는 이전 답변의 49 문자이며 앞에는이 프로그램이 너무 짧습니다. (예 , 이것이 가 아니라는 것을 알고 있지만 가능하다면 골프를하지 않는 이유는 무엇입니까?)


0

10 : 116 자, Python 3

print('''“"v->{String t=`"as=:'\`"alert(eval(c=\`"''abcdefgprint(\'\'\'“"v->{String t=`"as=:'\`"alert(eval(c=\`"''')

응답 9의 처음 50 자로 구성되고 그 뒤에 자체 소스의 처음 50 자로 구성되는 문자열을 인쇄합니다. \'\'\'쉰 같은 영리함이 필요 하지 않습니다. 50 번째 문자 뒤에 이스케이프 된 따옴표 ( )가 표시되므로 출력에서 ​​재현 할 필요가 없습니다.

이 방법은 거의 모든 언어에서 작동합니다. 이전 답변에 표시된 따옴표 만 이스케이프하면됩니다. 따라서 나는이 도전에 많은 도전이 있다고 생각하지 않는다.


0

11 : 723 자, Brainf ***

+[------->++<]>++.++.---------.+++++.++++++.+[--->+<]>+.-...-----.[----->++<]>++.--[++>---<]>-.---[-->+++<]>-.[->++<]>-.[--->++<]>+.[--->+<]>+++.--.---------.+++++.-------.-[--->+<]>--.---[->++++<]>.[-->+<]>+++.+++[-->+++<]>.[->+++<]>++.+[--->+<]>.--[--->+<]>--.+[-->+<]>+++.---.-[--->++<]>+.+[------>+<]>.++++.[->+++<]>++.+[--->+<]>.+++++++++++.-------.+++++++++++++.++.+[--->+<]>+.+[--->+<]>++.[--->+<]>-.[->+++<]>-.+++++++++++.[--->+<]>++++.+[--->+<]>.[--->++<]>-----.+[-->+++<]>-.++++.[->+++<]>++.[[-]<]++[------>+<]>.++[->++<]>+.-[-->+<]>.......---[-->+++<]>-.+[--->++<]>+..+[----->+<]>.++[-->+++<]>.[--->++<]>.+[--->++<]>+..+++.---..+++.-.........+.---.....+++.---......+++.---.++[->++<]>+.-[-->+<]>...---[-->+++<]>-.

인쇄 할 수없는 문자가 제거되었습니다. Brainfuck Text Generator에 의해 거의 완벽하게 생성됩니다 . 게으른 것일 수도 있겠지?

TIO

Print [print('''"v->{String t=`"as=:'\`"alert(eval(c=\`"] +[------->++<]>++.++.---------.+++++.++++++.+[--->+<]>+.-...-----------.++++++.[----->++<]>++.--[++>---<]>-.---[-->+++<]>-.[->++<]>-.[--->++<]>+.[--->+<]>+++.--.---------.+++++.-------.-[--->+<]>--.---[->++++<]>.[-->+<]>+++.+++[-->+++<]>.[->+++<]>++.+[--->+<]>.--[--->+<]>--.+[-->+<]>+++.---.-[--->++<]>+.+[------>+<]>.++++.[->+++<]>++.+[--->+<]>.+++++++++++.-------.+++++++++++++.++.+[--->+<]>+.+[--->+<]>++.[--->+<]>-.[->+++<]>-.+++++++++++.[--->+<]>++++.+[--->+<]>.[--->++<]>-----.+[-->+++<]>-.++++.[->+++<]>++.
Clear all cells to left until first empty cell [[-]<]
Print [+[------->++<]>++.++.---------.+++++.++++++.+[--->] ++[------>+<]>.++[->++<]>+.-[-->+<]>.......---[-->+++<]>-.+[--->++<]>+..+[----->+<]>.++[-->+++<]>.[--->++<]>.+[--->++<]>+..+++.---..+++.-.........+.---.....+++.---......+++.---.++[->++<]>+.-[-->+<]>...---[-->+++<]>-.

처음 50 개 대신 Brainfuck 답변의 2 ~ 51 번째 문자를 인쇄하는 것 같습니다 (첫 번째 누락 >) : 온라인으로 시도하십시오. 또한 Brainfuck 답변이 현재 인쇄 할 수없는``로 출력하기 때문에 캐릭터 를 떨어 뜨릴 수 있습니다 .
케빈 크루이 센

>시작 부분은 실수로 추가 된 것 같다, 나는 삭제 된 문자를. 다른 답변을 바탕으로 처음 49 자만 인쇄하면됩니다.
Panda0n 지구
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.