Torna indietro a Quine


12

La sfida qui è semplice e non riguarda affatto il conteggio dei byte. Il tuo compito è quello di produrre i primi 50 caratteri del codice sorgente del quine precedente, concatenati con i tuoi primi 50 caratteri a partire dai 50 caratteri che ho inserito di seguito:

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY

Quindi, facciamo un esempio qui, se dovessi rispondere in 05AB1E, una soluzione per produrre semplicemente i primi 50 byte sarebbe:

ži50£

Ciò significherebbe che dovresti produrre:

abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYži50£

Se il tuo programma è più breve, usa semplicemente i primi x < 50caratteri. Se il tuo programma è più lungo concatena solo i primi 50 caratteri, finendo con il 50 ° carattere. La persona successiva dovrà quindi generare i primi 50 caratteri del tuo quine concatenati con il proprio codice.

Il tuo codice può avere qualsiasi dimensione, ma dovresti generare solo i primi 50 caratteri del tuo codice concatenati alla fine dei primi 50 byte del codice della risposta precedente.


restrizioni:

Questo utilizza la definizione di un quine corretto e, oltre a questo, le seguenti cose:

  • I commenti non sono consentiti, interamente.
  • PRESTARE ATTENZIONE A QUESTA SEZIONE, PUO 'EVOLVERE SE SORGONO LOOPHOLES ABUSIVI

Come inviare una risposta concatenata:

  1. Pubblica un segnaposto:
    • Indica il numero di risposta e la lingua che utilizzerai.
  2. Ordina per data, se noti che qualcun altro ha pubblicato un segnaposto 1 millisecondo prima di te:
    • Elimina il tuo, attendi la prossima occasione, scusa.
  3. Se ti sei assicurato il posto successivo, PER FAVORE RISPONDI ENTRO 6 ORE :
    • Se non riesci a rispondere, rimuovi lo spazio riservato.
  4. SE lo spazio è stato bloccato per più di 6 ore.
    • Vota per eliminare lo spazio riservato, lo gestirò.

Il tuo formato post:

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

{TIO MARKDOWN}

{LINE_SEPARATOR="---"}

{ADDITIONAL EXPLANATION OR INFORMATION}

Alcune note specifiche (importanti per la facilità di concorrenza):

  • Se la persona prima di te ha incluso nuove righe o caratteri non ASCII nella loro fonte, puoi STRIPerli. Ciò significa che x="a\nb"diventa ab, dove x[0]=a;x[1]=b;.
    • Devi dichiarare la mutazione che hai applicato alla fonte precedente.
  • Tutti i caratteri vengono conteggiati come un singolo carattere, nonostante le codepage o la codifica della lingua. Non utilizzare il conteggio byte, utilizzare il conteggio caratteri.

La risposta accettata sarà la 50thrisposta, proprio perché; Voglio dire, dopotutto è SE.


Perché i commenti sono vietati? Inoltre, invece di ridefinire i byte in caratteri, perché non usare solo i caratteri?
Calcolatrice

@CalculatorFeline Penso che potresti fare delle scappatoie scarse e poco interessanti usando i commenti, ma sono solo io. Prenota il primo posto e dimostrami che mi sbaglio con un commento e revocherò il divieto.
Magic Octopus Urn,

5
Il meta post collegato che definisce le quines appropriate non menziona il fatto di non avere codice defunto.
Ørjan Johansen,

1
Come definisci il commento? Il commento non è un termine molto ben definito.
Ad Hoc Garf Hunter

1
Sembra anche di scambiare i termini carattere e byte, il che è un po 'confuso. Non sono sicuro che siano i primi 50 caratteri o byte.
Ad Hoc Garf Hunter

Risposte:


7

Personaggi 1: 96, Haskell

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

Provalo online!


Mi sentivo sciocco e non ho visto nulla che proibisse la prima voce che iniziava con gli stessi identici 50 caratteri della stringa iniziale.

  • ['`'..'z']++'A':['C'..'Y']è un'espressione che valuta la stringa di quei caratteri, con un `anteposto.
  • Il risultato è una corrispondenza del modello, che rende la variabile abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYuguale '`'e zuguale a 50 caratteri.
  • main=putStr$z+z quindi esegue l'output effettivo.

Adoro il modo in cui questa sfida è iniziata con la a-zA-Z e ora praticamente non è più l'alfabeto. Buona chiamata al 1 ° programma.
Magic Octopus Urn

5

5:76 caratteri, Emojicode

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

Provalo online!


Spiegazione:

🏁🍇		👴 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
L'alfabeto sta lentamente scomparendo: O.
Magic Octopus Urn

Suggerimento per la formattazione: utilizzare <pre><code>e </code></pre>, quindi, è possibile utilizzare &#9;per le schede, che si allineano come previsto anche con caratteri a larghezza variabile come le emoji. A proposito, stavo pensando a come fare un quine in Emojicode e poi ho fatto scorrere verso il basso ...
NieDzejkob

@NieDzejkob buona idea, grazie.
Betseg,

@betseg per me è leggermente fuori posto, ma comunque più leggibile. Sono contento che ti sia piaciuto
NieDzejkob,

@NieDzejkob alcuni? con il mio carattere solo il comando letterale della stringa è disattivato perché è lungo, dove altro alla tua estremità?
Betseg,

4

2: 119 personaggi, Javascript

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

Provalo online (utilizza console.loginvece di alertprodurre)

Basato su questo quinto JS.

Vecchia versione (legge il codice sorgente):

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

Basato su questo quinto JS


Non si tratta di un quine appropriato poiché la funzione fa riferimento a se stessa.
Shaggy,

@Shaggy Ne ho aggiunto uno valido
SuperStormer il

1
Le funzioni autoreferenziali @Shaggy sono valide secondo la nostra definizione.
ATaco,

3

8: 70 caratteri, Stax

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

Esegui ed esegui il debug online

Spiegazione

"..."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 Personaggi, SOGL

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

Provalo qui!

Spiegazione:

"...”      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 risposta Javascript conteneva un preventivo, quindi ho dovuto aggiungere un preventivo iniziale, ma poiché non si tratta di code-golf, non importa.



2

7: 137 caratteri, Java 8

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

Provalo online.

Spiegazione:

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

Aha! Ho pensato che Emoji avesse ucciso questa sfida per sempre. Ben fatto.
Magic Octopus Urn

@MagicOctopusUrn Ho notato solo ora la tua regola su " Se la persona prima di te ha incluso nuovi caratteri o caratteri non ASCII nella loro fonte, puoi STRIParli. ", Quindi una risposta potrebbe sbarazzarsi degli Emoji se lo desiderano. Per la mia risposta non importa in entrambi i casi, poiché contiamo comunque i caratteri anziché i byte.
Kevin Cruijssen,

Questo e non riguarda la quantità di personaggi onestamente, e sì, mi sono dimenticato di quella regola (inoltre, ho dimenticato la sfida in generale).
Magic Octopus Urn

Onestamente, vieni a pensarci bene, questa non è una vera sfida, vero?
Magic Octopus Urn

@MagicOctopusUrn È un po '. Praticamente ottieni i primi 50 personaggi del tuo quine. In Java le quine si formano di solito inserendo il codice sorgente non formattato in una stringa, quindi formattando / scappando correttamente le doppie virgolette e le barre. Tuttavia, solo la funzione lambda quine di base in Java 8 è già di 88 byte ( provala online ), quindi in Java questa sfida è molto più breve senza usare un quine completo. Tuttavia, immagino che quine sia l'approccio migliore nella maggior parte delle lingue.
Kevin Cruijssen,

1

6: 70 personaggi, Emoji

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

Provalo online!

Sembra che sia impossibile far sì che non venga emessa la nuova riga finale. In caso contrario, rimuoverò la risposta.

Spiegazione:

⛽ ... 🚘	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.

Non dovrebbe essere ⛽🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwx🚘👥💬⛽💬🔀👫💬0💬📥💬-1💬📥✂👫➡invece? betseg 's risposta Emojicode non inizia con as=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxyzAC, ma con 🏁🍇🍦a🔤s=:'"alert(eval(c="''abcdefghijklmnopqrstuvwxinvece.
Kevin Cruijssen,

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

Ah, ho perso quella regola .. In tal caso aggiornerò la mia risposta.
Kevin Cruijssen,

Per curiosità, perché li hai spogliati? Per facilitare le risposte future? Perché il tuo codice funziona perfettamente senza togliere gli Emoji dalla risposta precedente: provalo qui .
Kevin Cruijssen,

@KevinCruijssen Era un anno e mezzo fa. Non ricordo.
NieDzejkob,

1

12: 202 personaggi, 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'

Provalo online!


Codifica i primi cinquanta caratteri della risposta precedente nella base sette

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

Quindi lo converte in base 36 per ottenere "21ipdgmtwkkke7ynvzpcnlzt7kl"


0

9: 55 personaggi, Jelly

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

Provalo online!


Ho rimosso il carattere non ASCII dall'output poiché è consentito e Jelly lo stava ignorando.

Spiegazione

Questo inizia con la stringa letterale dei primi 50 caratteri (meno ) della risposta precedente, quindi aggiunge il carattere ad essa con ;”“quindi accoda nuovamente la stringa originale letterale alla fine con la finale ;. Da quando un personaggio è stato rimosso, i primi 50 caratteri del mio codice sorgente sono i 49 della risposta precedente con un davanti che permette a questo programma di essere così breve. (Sì, mi rendo conto che non si tratta di ma perché non giocare a golf se puoi?)


0

10: 116 personaggi, Python 3

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

Stampa semplicemente una stringa composta dai primi 50 caratteri della risposta 9, seguita dai primi 50 caratteri della propria fonte. Non è necessaria alcuna intelligenza simile a quella di una quine, poiché le virgolette ( \'\'\') appaiono dopo il 50 ° carattere e quindi non devono essere riprodotte nell'output.

Questo metodo funzionerà praticamente in qualsiasi lingua: dovresti semplicemente sfuggire a qualsiasi carattere di citazione che appare nella risposta precedente. Di conseguenza, non credo che ci sia molta sfida in questa sfida.


0

11: 723 Personaggi, Brainf ***

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

Carattere non stampabile spogliato . Quasi completamente generato da Brainfuck Text Generator . Potrebbe anche essere pigro, giusto?

TIO

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

Sembra che tu stampi dal 2 ° al 51 ° carattere della tua risposta Brainfuck invece dei primi 50 (manca il primo >): provalo online. Inoltre, potresti voler eliminare il personaggio, poiché la tua risposta Brainfuck lo sta attualmente dichiarando come non stampabile ''.
Kevin Cruijssen,

>L'all'inizio sembra essere stato un'aggiunta accidentale, e ho lasciato cadere il personaggio. Sulla base di altre risposte, penso che ciò significhi che devo solo stampare i primi 49 caratteri.
Panda0n Terra
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.