Viaje de regreso a Quine

12

El desafío aquí es simple, y no se trata del conteo de bytes. Su trabajo es generar los primeros 50 caracteres del código fuente de la quine anterior, concatenados con los primeros 50 caracteres suyos, comenzando con los 50 caracteres que he colocado a continuación:

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY

Entonces, tomemos un ejemplo aquí, si tuviera que responder en 05AB1E, una solución para simplemente generar los primeros 50 bytes sería:

ži50£

Lo que significaría que necesitarías generar:

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYži50£

Si su programa es más corto, simplemente use los primeros x < 50caracteres. Si su programa es más largo, solo concatene los primeros 50 caracteres, terminando en el 50 ° carácter. La siguiente persona tendrá que generar los primeros 50 caracteres de su quine concatenados con su propio código.

Su código puede ser de cualquier tamaño, pero solo debe mostrar los primeros 50 caracteres de su código concatenados al final de los primeros 50 bytes del código de la respuesta anterior.


Restricciones:

Utiliza la definición de una quine adecuada y, además de esto, las siguientes cosas:

  • Los comentarios no están permitidos, por completo.
  • PONGA ATENCIÓN A ESTA SECCIÓN, PUEDE EVOLUCIONAR SI SURGE ABURRIDOS LABORATORIOS

Cómo publicar una respuesta encadenada:

  1. Publicar un marcador de posición:
    • Mencione su número de respuesta y el idioma que usará.
  2. Ordenar por fecha, si observa que alguien más publicó un marcador de posición 1 milisegundo antes que usted:
    • Elimina la tuya, espera la próxima oportunidad, lo siento.
  3. Si aseguró el siguiente lugar, POR FAVOR CONTESTE EN EL PLAZO DE 6 HORAS :
    • Si no puede responder, elimine su espacio reservado.
  4. SI el espacio ha estado acaparado por más de 6 horas.
    • Vote para eliminar el espacio reservado, lo manejaré.

Su formato de publicación:

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

{TIO MARKDOWN}

{LINE_SEPARATOR="---"}

{ADDITIONAL EXPLANATION OR INFORMATION}

Algunas notas específicas (importantes para la facilidad de competencia):

  • Si la persona que tienes delante ha incluido nuevas líneas o caracteres no ASCII en su fuente, puedes DESTRUIRLOS. Esto significa que se x="a\nb"convierte ab, donde x[0]=a;x[1]=b;.
    • Debe indicar la mutación que ha aplicado a la fuente anterior.
  • Todos los caracteres se cuentan como un solo carácter, a pesar de las páginas de códigos o la codificación del idioma. Por favor no use byte-count, use character-count.

La respuesta aceptada será la 50threspuesta, solo porque; Quiero decir, es SE después de todo.

Urna de pulpo mágico
fuente
¿Por qué están prohibidos los comentarios? Además, en lugar de redefinir bytes a caracteres, ¿por qué no solo usar caracteres?
CalculatorFeline
@CalculatorFeline Creo que podrías hacer algunas lagunas bastante aburridas y poco interesantes usando comentarios, pero solo soy yo. Reserve el primer lugar y demuestre que estoy equivocado con un comentario y levantaré la prohibición.
Magic Octopus Urn
55
La meta publicación vinculada que define las quines adecuadas no menciona que no haya código difunto.
Ørjan Johansen
1
¿Cómo estás definiendo el comentario? Comentario no es un término muy bien definido.
Ad Hoc Garf Hunter
1
También parece intercambiar los términos carácter y byte, lo cual es un poco confuso. No estoy seguro de si son los primeros 50 caracteres o bytes.
Ad Hoc Garf Hunter

Respuestas:

7

1: 96 Personajes, Haskell

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

Pruébalo en línea!


Me sentía tonto y no vi nada que prohibiera que la primera entrada comenzara con exactamente los mismos 50 caracteres que la cadena inicial.

  • ['`'..'z']++'A':['C'..'Y']es una expresión que evalúa la cadena de esos caracteres, con un `antecedente.
  • El resultado es un patrón que coincide, haciendo que la variable sea abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYigual '`'e zigual a los 50 caracteres.
  • main=putStr$z+z entonces hace la salida real.
Ørjan Johansen
fuente
Me encanta cómo comenzó este desafío con a-zA-Z y ahora ya no es básicamente el alfabeto. Buena convocatoria en el 1er programa.
Magic Octopus Urn
5

5:76 personajes, Emojicode

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

Pruébalo en línea!


Explicación:

🏁🍇		👴 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
Betseg
fuente
1
El alfabeto está desapareciendo lentamente: O.
Urna de pulpo mágico el
Sugerencia de formato: use <pre><code>y </code></pre>, luego puede usar &#9;para pestañas, que se alinean según lo previsto, incluso con caracteres de ancho variable como emoji. Por cierto, estaba pensando en cómo hacer una quine en Emojicode y luego me desplacé hacia abajo ...
NieDzejkob
@NieDzejkob buena idea, gracias.
betseg
@betseg está ligeramente apagado en algunos lugares para mí, pero de todos modos es más legible. Me alegro de que te haya gustado
NieDzejkob
@NieDzejkob algunos? con mi fuente, solo el comando del literal de cadena está desactivado porque es largo, ¿dónde más en su extremo?
betseg
4

2: 119 caracteres, Javascript

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

Pruébelo en línea (utiliza en console.loglugar de alertgenerar)

Basado en esta quine JS.

Versión anterior (lee el código fuente):

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

Basado en esta quine JS

SuperStormer
fuente
Esta no es una quine adecuada ya que la función se hace referencia a sí misma.
Shaggy
@Shaggy agregué una válida
SuperStormer el
1
@Shaggy Las funciones autorreferenciales son válidas por nuestra definición.
ATaco
3

8: 70 caracteres, Stax

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

Ejecute y depure en línea

Explicación

"..."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
Weijun Zhou
fuente
2

3:56 Personajes, SOGL

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

Pruébalo aquí!

Explicación:

"...”      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.

La respuesta de Javascript tenía una cita, así que tuve que agregar una cita inicial, pero como esto no es código golf, no importa.

dzaima
fuente
2

4:81 caracteres, J

s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzACDEFGHI'
echo s,50{.'s=:',quote s

Pruébalo en línea!


Conor O'Brien
fuente
2

7: 137 caracteres, Java 8

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

Pruébalo en línea.

Explicación:

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
Kevin Cruijssen
fuente
¡Ajá! Me imaginé que Emoji mató este desafío para siempre. Buena esa.
Magic Octopus Urn
@MagicOctopusUrn Solo ahora me doy cuenta de tu regla sobre " Si la persona anterior a ti ha incluido nuevas líneas o caracteres no ASCII en su fuente, puedes DESTRUIRLOS ", por lo que una respuesta podría deshacerse de los Emojis si así lo desean. Para mi respuesta, no importa de ninguna manera, ya que estamos contando caracteres en lugar de bytes de todos modos.
Kevin Cruijssen
Eso y no se trata de la cantidad de personajes honestamente, y sí, olvidé esa regla (además, olvidé el desafío en general).
Magic Octopus Urn
Honestamente, ahora que lo pienso, esto realmente no es un gran desafío, ¿verdad?
Magic Octopus Urn
@MagicOctopusUrn Es un poco. Básicamente obtienes los primeros 50 caracteres de tu quine. En Java, las quines generalmente se forman al colocar el código fuente sin formato en una Cadena y luego formatear / escapar correctamente las comillas dobles y las barras inclinadas. Sin embargo, la función lambda básica de quine en Java 8 ya es de 88 bytes ( Pruébelo en línea ), por lo que en Java este desafío es mucho más corto sin usar un quine completo. Sin embargo, me imagino que quine es el mejor enfoque en la mayoría de los idiomas.
Kevin Cruijssen
1

6: 70 caracteres, Emoji

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

Pruébalo en línea!

Parece que es imposible hacer que no muestre la nueva línea final. Si eso no está bien, eliminaré la respuesta.

Explicación:

⛽ ... 🚘	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.
NieDzejkob
fuente
¿No debería ser ⛽🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwx🚘👥💬⛽💬🔀👫💬0💬📥💬-1💬📥✂👫➡en su lugar? betseg 's respuesta Emojicode no se inicia con as=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzACpero con 🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxsu lugar.
Kevin Cruijssen
@KevinCruijssenIf the person before you has included newlines or non-ASCII characters in their source, you may STRIP them.
NieDzejkob
Ah, me perdí esa regla ... En ese caso actualizaré mi respuesta.
Kevin Cruijssen
Por curiosidad, ¿por qué los desnudaste? ¿Para facilitar las respuestas futuras? Debido a que su código se ejecuta perfectamente sin quitar los Emojis de la respuesta anterior: Pruébelo aquí .
Kevin Cruijssen
@KevinCruijssen Fue hace medio año. No me acuerdo
NieDzejkob
1

12: 202 caracteres, Ruby

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'

Pruébalo en línea!


Codifica los primeros cincuenta caracteres de la respuesta anterior en la base siete

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

Luego lo convierte a la base 36 para obtener "21ipdgmtwkkke7ynvzpcnlzt7kl"

Alex Allen
fuente
0

9: 55 caracteres, gelatina

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

Pruébalo en línea!


Eliminé el carácter no ASCII de la salida ya que eso está permitido y Jelly lo estaba ignorando.

Explicación

Esto comienza con el literal de cadena de los primeros 50 caracteres (menos ) de la respuesta anterior, luego agrega el carácter y ;”“luego agrega el literal de cadena original al final nuevamente con el final ;. Como se eliminó un carácter, los primeros 50 caracteres de mi código fuente son los 49 de la respuesta anterior con un frente que permite que este programa sea tan corto. (Sí, me doy cuenta de que esto no es pero ¿por qué no jugarlo si puedes?)

dylnan
fuente
0

10: 116 Personajes, Python 3

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

Simplemente imprime una cadena que consta de los primeros 50 caracteres de la respuesta 9, seguida de los primeros 50 caracteres de su propia fuente. No se necesita una inteligencia similar a una quine, ya que las comillas escapadas ( \'\'\') aparecen después del carácter 50 y, por lo tanto, no necesitan reproducirse en la salida.

Este método funcionará en prácticamente cualquier idioma: solo tendrá que escapar de los caracteres de comillas que aparecen en la respuesta anterior. En consecuencia, no creo que haya mucho desafío en este desafío.

Nathaniel
fuente
0

11: 723 Personajes, Brainf ***

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

Despojado de caracteres no imprimibles . Casi completamente generado por Brainfuck Text Generator . Bien podría ser perezoso, ¿verdad?

TIO

Print [print('''"v->{String t=`"as=:'\`"alert(eval(c=\`"] +[------->++<]>++.++.---------.+++++.++++++.+[--->+<]>+.-...-----------.++++++.[----->++<]>++.--[++>---<]>-.---[-->+++<]>-.[->++<]>-.[--->++<]>+.[--->+<]>+++.--.---------.+++++.-------.-[--->+<]>--.---[->++++<]>.[-->+<]>+++.+++[-->+++<]>.[->+++<]>++.+[--->+<]>.--[--->+<]>--.+[-->+<]>+++.---.-[--->++<]>+.+[------>+<]>.++++.[->+++<]>++.+[--->+<]>.+++++++++++.-------.+++++++++++++.++.+[--->+<]>+.+[--->+<]>++.[--->+<]>-.[->+++<]>-.+++++++++++.[--->+<]>++++.+[--->+<]>.[--->++<]>-----.+[-->+++<]>-.++++.[->+++<]>++.
Clear all cells to left until first empty cell [[-]<]
Print [+[------->++<]>++.++.---------.+++++.++++++.+[--->] ++[------>+<]>.++[->++<]>+.-[-->+<]>.......---[-->+++<]>-.+[--->++<]>+..+[----->+<]>.++[-->+++<]>.[--->++<]>.+[--->++<]>+..+++.---..+++.-.........+.---.....+++.---......+++.---.++[->++<]>+.-[-->+<]>...---[-->+++<]>-.
Panda0nEarth
fuente
Parece que imprime del 2 ° al 51 ° caracteres de su respuesta Brainfuck en lugar de los primeros 50 (falta el primero >): Pruébelo en línea. Además, es posible que desee soltar el carácter, ya que su respuesta Brainfuck actualmente lo está imprimiendo como no imprimible ''.
Kevin Cruijssen
Al >principio parece haber sido una adición accidental, y dejé caer al personaje. Basado en otras respuestas, creo que eso significa que solo necesito imprimir los primeros 49 caracteres.
Panda0nEarth