Stampa il primo carattere delle risposte precedenti


17

Il vincitore accettato è isaacg, con la sua risposta ASCII a 7 bit . Tuttavia, la sfida non è ancora finita: questo premio viene assegnato alla risposta più breve. Se, in qualche modo , ottieni tutti i primi caratteri di tutte le altre risposte in 10 byte, vincerai la taglia. Ciò include tutti i caratteri della risposta GolfScript del Round 2 (più quello aggiunto dalla risposta stessa). Questa è l'UNICA volta che ti lascerò andare fuori servizio - se hai delle obiezioni, fammelo sapere nei commenti.

Vorrei dare credito a randomra, che mi ha aiutato con la mia vecchia idea e mi ha dato questa nuova.

Vincitori precedenti

  • Round 1: isaacg, con ASCII a 7 bit
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Sai, il gioco del codice è davvero bello. Le persone prendono una sfida e lentamente si riduce! Ma facciamolo in un altro modo. Quindi, ecco la mia sfida:

  • Il codice stamperà il primo carattere di tutte le risposte precedenti nell'ordine in cui sono state pubblicate (la prima risposta non stampa nulla)

  • Il codice inizia a 100 byte e diminuisce di 5 ogni volta.
  • Se due post ottengono la stessa risposta (ovvero, entrambi vengono pubblicati in pochi secondi l'uno dall'altro), il più recente deve aggiungere il carattere del vecchio e diminuire di 5 byte (anche di pochi secondi).
  • È possibile utilizzare qualsiasi lingua.
  • Il tuo codice non deve produrre errori.
  • Il codice deve utilizzare tutti i byte richiesti per il primo passaggio.
  • Il codice deve essere stampato su STDOUT.
  • I caratteri non stampabili sono OK, ma:
    • Non possono essere il primo personaggio (per il fine di questa domanda)
    • Devi far sapere a tutti dove sono
  • Puoi pubblicare più risposte, ma:
    • Devi aspettare 2 risposte prima di pubblicarne un altro (quindi se hai pubblicato i 100 byte, devi aspettare fino a 85 byte.)
  • Non puoi:
    • utilizzare più di 10 byte di commenti
    • hanno variabili che non vengono utilizzate per l'intero programma
    • riempire il programma con spazi bianchi
    • hanno nomi di variabili più lunghi di 10 byte (ma è possibile avere più variabili inferiori a 10 byte)
      (la prima risposta di EMBLEM è l'eccezione a queste regole, perché è stata pubblicata prima di queste restrizioni).
  • Nessuna scappatoia standard. A meno che tu non voglia prendere tutto il divertimento dalla sfida.
  • Quando non vengono inviate più risposte per 3 settimane, vince la risposta che utilizza il minor numero di byte. (In caso di pareggio, vince chi stampa la stringa più lunga.)

Esempio: la terza risposta deve essere un codice lungo 90 byte che genera due caratteri (il primo carattere del codice di 100 byte quindi il primo carattere del codice di 95 byte). La prima risposta non genera nulla (nessuna risposta precedente per ottenere i caratteri da).


"Spazi bianchi non necessari" è una formulazione errata. Lo spazio bianco di Python per terminare le istruzioni non è necessario, perché puoi usare i punti e virgola.
EMBLEMA

8
Forse, possiamo ricominciare da 100 byte, ma iniziare ppuppPq([#fwSmdP[come stringa iniziale e riavviare ogni volta che la stringa è più lunga del byte consentito. Tuttavia, non riesco a pensare a un criterio vincente.
Sanchises,

1
@Scimonster Onestamente pensi che ci sia un set di caratteri a 4 bit che include tutto #(PS[dfmpquw? Stiamo incontrando i limiti della densità di informazioni qui. A meno che non si scriva un programma a 10 byte che elabora tutte le risposte precedenti. Non sono sicuro se valga la pena aspettare.
Sanchises,

2
@sanchises Non stiamo dicendo che ce n'è uno. Diamo alla gente la possibilità di vedere cosa possono fare. Se nessuno può, lo riavvieremo.
ASCIIThenANSI

6
-1 Perché questa sfida non è morta con dignità dopo la soluzione a 15 byte? Sembra sconveniente cambiarlo dopo che è stata data una buona risposta "vincente", così puoi continuare a giocare secondo regole diverse.
Geobits il

Risposte:


34

ASCII a 7 bit, 15 byte

Aggiornato: non mi sono reso conto che alla fine dovrebbe avvenire l'imbottitura.

Versione corretta, imbottita alla fine:

hexdump (xxd):

0000000: e1c3 af0e 1438 a8b6 8f37 7a7b 7250 b6    .....8...7z{rP.

Stampe (non sono sicuro di quale sia corretto):

�ï8��z{rP�

áï8¨¶7z{rP¶

Vecchia versione, imbottita in modo errato nella parte anteriore:

pá×
T[G½=¹([

La lingua / formato qui è ASCII a 7 bit, in cui ciascun gruppo di 7 bit corrisponde a un carattere ASCII. Viene utilizzato per il trasferimento di dati SMS. Un decoder si trova qui.

Non esiste una sentenza ampiamente accettata sull'ammissibilità delle risposte a domande sull'output fisso che non sono scritte in un linguaggio di programmazione. Vedi questo meta post per maggiori informazioni. (Chiedo scusa, ho letto male quel post in precedenza.)


2
Congratulazioni! Sei l'unica persona che ho visto comprimere una stringa più lunga del codice in cui è inclusa! : D
ASCIIThenANSI

@ASCIIThenANSI Comprimere una stringa in un programma più breve è facile. Il programma Python print('A'*100)stampa una stringa di 100 A'. Comprimere una stringa efficacemente casuale non è facile.
Calvin's Hobbies

6
@ Calvin'sHobbies Questo sarebbe più semplice se avessimo appena iniziato tutto il nostro codice con la lettera 'p'. : D
ASCIIThenANSI

4
-1 Avrei dovuto esaminarlo prima ... Questo sembra essere codificato in modo errato. Sembra che inizi con un po 'di padding, ma da quello che posso dire dal formato (e questa risposta sta già allungando la definizione di un formato, dal momento che ASCII a 7 bit compresso non è effettivamente utilizzato da nessuna parte), i dati dovrebbero essere imbottito alla fine, non all'inizio. E anche con l'imbottitura, penso che il resto non sia codificato correttamente.
Runer112,

1
Dovrebbe essere "áï <SO><DC4>8¨¶7z {rP¶".
LegionMammal978,

25

Elemento, 80 byte

programs do many fun things, like print the letters p`, p`, u`, and p` in a row.

Questa è una lingua che ho creato tre anni fa. Puoi trovare un interprete, scritto in Perl, qui . L' `operatore stampa la prima cosa in pila (le lettere). L'altra punteggiatura fa cose, come la concatenazione, ma i risultati non vengono mai stampati.


1
Molto intelligente, signore. Molto intelligente ...
ASCIIThenANSI

10

Clip , 20 byte

[M"ppuppPq([#fwSmdP"

6
Penso che tu sia l'ultimo in piedi. A meno che qualcuno non possa comprimere ppuppPq([#fwSmdP[in 15 byte E produrlo.
Sanchises,

@sanchises Se qualcuno lo fa, assegnerei una taglia. Perché sarebbe proprio così bello.
ASCIIThenANSI

3
@sanchises Se solo ci fosse del linguaggio esoterico che ha prodotto il programma con tutte le occorrenze di psostituito con pp. Quindi una soluzione sarebbe pupPq([#fwSmdP[.
bcsb1001,

1
@ bcsb1001 Sì, ho pensato a qualcosa del genere di recente; un linguaggio esoterico in cui ogni comando è una soluzione sfida vincente su questo sito e utilizza l'output di quel comando come input per il comando successivo. Sarebbe fantastico se qualcuno potesse programmare qualcosa al riguardo.
Sanchises,

1
@sanchising Ma questo infrangerebbe una regola standard di scappatoia andando su Internet?
ASCIIThenANSI

5

Lisp comune, 65 byte

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))

Gli ultimi 112 dovrebbero essere cambiati in 80 (in qualche modo).
LegionMammal978,

12
Con questa risposta è stata introdotta un'era di oscurità.
PhiNotPi


4

Python 3, 95 byte

pre='public class f{public static void main(String[] a){System.out.print("");}}'
print(pre[0])

4

Haskell, 35 byte

main = putStrLn "\&ppuppPq([#fwS\&"

Cosa fa?
Hjulle,

4
@Hjulle Assumi due personaggi. (È un codice di escape per la stringa vuota.)
user19057

4

Sono passate 24 ore dalla modifica! Facciamolo! : D

Java, Round 2, 100 byte

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}

1
Che ne dici di segnare questo "Round 2"?
Claudiu,

4

Round 2: Ruby, 75 byte

"ppuppPq([#fwSmdP[ppnvos".chars.each do|character|;print character;end#4444

Ho pensato di renderlo un po 'più stimolante iniziando la mia risposta con un preventivo! >: D


3

Java, 100 byte

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl

3

Mathematica, 75 byte

Print[StringJoin[First/@Characters/@{"publ","pre=","usin","p1 =","prog"}]];


3

Script F #, 40 byte

System.Console.Write "\u0070puppPq([#fw"

Ha il suo tipo di file ( .fsx), quindi sono abbastanza sicuro che conta come una lingua.


1
Hai dimenticato la "w" di Scratch.
ASCIIThenANSI

Penso che manchi anche la 'f' dalla risposta javascript a 50 byte.
user19057

Risolto anche questo
LegionMammal978,

3

Round 2: /// , 65 byte

\p/CodeGolfIsAwesome!/puppPq/CodeGolfIsAwesome!([#fwSmdP[ppnvos"R

Pensavo che lo avrei speziato un po 'di più con una barra rovesciata :)


2

C #, 90 byte

using System;namespace IAmAwesome{class Program{static void Main(){Console.Write("pp");}}}

2

Rubino, 70 byte

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}

Dovresti riordinarlo a ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978,



2

MATLAB, 30 byte

disp([112 112 'uppPq([#fwSm'])

Mostra bene come MATLAB si libera con i tipi di dati.


2

Mathematica, 25 byte

Print["ppuppPq([#fwSmd"];

1
Avevo una nuova soluzione CJam da 25 byte che codificava la stringa in modo non semplice. Sfortunatamente, sembra che non vedrà mai la luce del giorno. : - /
Runer112

@ Runer112 Tu e tutte le tue piccole rime / Ancora, ho avuto questa risposta ~ 20 secondi prima di quella a 30 byte.
LegionMammal978,

2

Round 2: batch, 70 byte

REM BATCHS
GOTO B
:C
ECHO ppuppPq([#fwSmdP[ppnvos"
GOTO A
:B
GOTO C
:A

La tua citazione è stata inutile. D:>

Modifica: mi è appena venuto in mente che stavo andando per dimensione del file anziché conteggio dei caratteri, non sono sicuro di come contare i byte: P

Modifica 2: aggiunto un commento per riempire i byte. Se controlli il conteggio dei byte su una macchina Windows, fai solo finta che "REM BATCHS" sia solo "REM", immagino. : P


Sto contando i byte con gedit; dice che la tua risposta è 63. Nessun problema; sei abbastanza vicino da riempire il vuoto con i commenti.
EMBLEMA

1
Ah, va bene, inserirò un commento.
Bloo,

3
@EMBLEM È perché la newline di Windows è \r\n. Ci sono 7 extra \rlì.
jimmy23013,


2

Round 2, > <> , 45 byte

4 caratteri di commenti.

'c(v\R"sovnpp[PdmSwf#[(qPppupp'01.uwyz
ol?!;

La stringa ora contiene entrambe "e ', quindi> <> le risposte non possono più limitarsi a circondarle (è così che ho evitato qualsiasi evasione).


2

Round 2, Golfscript, 35 byte

"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'P"

Nessun byte di scarto. Inizia di nuovo con un preventivo!


ASCII a 7 bit non funzionerà qui, crea solo 28 byte e include un ulteriore NUL
LegionMammal978

Qualcuno più intelligente di me dovrà farlo ... forse c'è un po 'di linguaggio codificato in 6 bit che può essere eseguito per produrre l'output corretto ..
Claudiu

No, 6 bit creerebbero 24 byte, ma abbiamo bisogno di 30.
LegionMammal978

@ LegionMammal978: giusto, 24 byte, quindi 8 istruzioni a sei bit per stamparli o fare qualunque cosa
Claudiu,

1
Ti manca l'apostrofo con 2 risposte indietro
14mRh4X0r

1

Python 3, 85 byte

p1 = 'publ'
p2 = 'pre'
p3 = 'usi'
def cprint():
  print(p1[0], p2[0], p3[0])
cprint()

1

Round 2, C #, 95 byte

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}

Che ne dici di segnare questo "Round 2"?
Claudiu,

1

Round 2, script F #, 55 byte

(**)System.Console.Write(@"uppPq([#fwSmdP[ppnvos""R\v")

Vedi il mio precedente script F # anwer per il motivo per cui penso che sia un linguaggio valido.


1

Round 2, R, 50 byte

cat('ppuppPq([#fwSmdP[ppnvos\"R\\v(',file=stdout())

1

Round 2, Javascript, 60 byte

var _p = "p"; alert (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos \" R \\ ");

Penso che la tua __rientrerebbe in variabili non necessarie. Prova a cambiare pcon un nome di due lettere e aggiungi la stringa tra virgolette doppie per aggiungere una barra rovesciata per la citazione stampata. Ciò dovrebbe compensare i 3 caratteri persi dalla rimozione di __,.
LegionMammal978,

1
Non hanno detto di non usarli. Dissero di usarne al massimo dieci byte.
SuperJedi224,

Ciò significa che è possibile utilizzare le variabili necessarie fino a 10 byte, ma non è possibile utilizzare del tutto le variabili non necessarie .
LegionMammal978,

@Rainbolt Lo stai interpretando come "Non puoi usare più di 10 byte di (commenti), (variabili non necessarie), (riempire il programma con spazi bianchi) o (nomi di variabili) più lunghi di 10 byte", ma a causa di il secondo riferimento, lo vedo come "Non è possibile utilizzare (più di 10 byte di commenti), (variabili non necessarie), (riempire il programma con spazi bianchi) o (nomi di variabili più lunghi di 10 byte)".
LegionMammal978,

Ho risolto l'ambiguità. Nella domanda, var __non è consentito (non utilizzato nel resto del programma), ma la ridenominazione psarebbe accettabile.
ASCIIThenANSI

1

Round 2: Javascript, 90 byte

var p = "p"; alert (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " n "); // p

Che ne dici di segnare questo "Round 2"?
Claudiu,

Il __,cadrebbe sotto le variabili non necessarie .
LegionMammal978,
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.