Imprime el primer caracter de las respuestas anteriores

17

El ganador aceptado es Isaac, con su respuesta ASCII de 7 bits . Sin embargo, el desafío aún no ha terminado: esta recompensa se otorga a la respuesta más corta. Si, de alguna manera , obtienes todos los primeros caracteres de todas las otras respuestas en 10 bytes, ganarás la recompensa. Esto incluye todos los caracteres de la respuesta GolfScript de la Ronda 2 (más el agregado por esa respuesta). Esta es la ÚNICA vez que te dejaré fuera de servicio; si tienes alguna objeción a esto, házmelo saber en los comentarios.

Me gustaría dar crédito a randomra, que me ayudó con mi vieja idea y me dio esta nueva.

Ganadores anteriores

  • Ronda 1: isaacg, con ASCII de 7 bits
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Ya sabes, el golf de código es realmente genial. ¡La gente toma un desafío, y lentamente se hace más pequeño! Pero hagamos esto de otra manera. Entonces, aquí está mi desafío:

  • El código imprimirá el primer carácter de todas las respuestas anteriores en el orden en que se publicaron (la primera respuesta no imprime nada)

  • El código comienza en 100 bytes y disminuye en 5 cada vez.
  • Si dos publicaciones tienen la misma respuesta (es decir, ambas se publicaron dentro de unos pocos segundos una de la otra), la nueva debe agregar el carácter anterior y disminuir en 5 bytes (incluso por unos segundos).
  • Se puede usar cualquier idioma.
  • Su código no debe producir ningún error.
  • Su código debe usar todos los bytes necesarios para el primer paso.
  • Su código debe imprimirse en STDOUT.
  • Los caracteres no imprimibles están bien, pero:
    • No pueden ser el primer personaje (por el bien de esta pregunta)
    • Debes hacer saber a todos dónde están
  • Puede publicar múltiples respuestas, pero:
    • Debe esperar 2 respuestas antes de publicar otra (por lo tanto, si publicó los 100 bytes, tendrá que esperar hasta 85 bytes).
  • No puedes:
    • usa más de 10 bytes de comentarios
    • tener variables que no se utilizan para todo el programa
    • llenar el programa con espacios en blanco
    • tener nombres de variables de más de 10 bytes (pero puede tener múltiples variables de menos de 10 bytes)
      (la primera respuesta de EMBLEM es la excepción a estas reglas, porque se publicó antes de estas restricciones).
  • No hay lagunas estándar. A menos que quieras sacar toda la diversión del desafío.
  • Cuando no se envían más respuestas durante 3 semanas, gana la respuesta que utiliza la menor cantidad de bytes. (En caso de empate, gana el que imprime la cadena más larga).

Ejemplo: La tercera respuesta tiene que ser un código de 90 bytes de longitud con dos caracteres (el primer carácter del código de 100 bytes y el primer carácter del código de 95 bytes). La primera respuesta no genera nada (no hay respuestas anteriores para obtener caracteres).

ASCIIThenANSI
fuente
"Espacio en blanco innecesario" es una mala redacción. El espacio en blanco de Python para finalizar las declaraciones es innecesario, porque puede usar punto y coma.
EMBLEMA
8
Quizás, podemos comenzar con 100 bytes nuevamente, pero comenzar ppuppPq([#fwSmdP[como la cadena de inicio y reiniciar cada vez que la cadena sea más larga que el bytecount permitido. Sin embargo, no puedo pensar en un criterio ganador.
Sanchises
1
@Scimonster ¿ Honestamente crees que hay un conjunto de caracteres de 4 bits que incluye todo #(PS[dfmpquw? Nos encontramos con los límites de la densidad de información aquí. A menos que escriba un programa de 10 bytes que procese todas las respuestas anteriores. No estoy seguro si vale la pena esperar.
Sanchises
2
@sanchises No estamos diciendo que haya uno. Le estamos dando a las personas la oportunidad de ver qué pueden hacer. Si nadie puede, lo reiniciaremos.
ASCIIThenANSI
66
-1 ¿Por qué este desafío no murió con dignidad después de la solución de 15 bytes? Parece falso cambiarlo después de que se haya dado una buena respuesta "ganadora" solo para que puedas seguir jugando según diferentes reglas.
Geobits

Respuestas:

34

ASCII de 7 bits, 15 bytes

Actualizado: no me di cuenta de que el relleno debería ocurrir al final.

Versión correcta, acolchada al final:

hexdump (xxd):

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

Impresiones (no estoy seguro de cuál es la correcta):

�ï8��z{rP�

áï8¨¶7z{rP¶

Versión anterior, incorrectamente acolchada en la parte delantera:

pá×
T[G½=¹([

El idioma / formato aquí es ascii de 7 bits, donde cada grupo de 7 bits corresponde a un carácter ASCII. Se utiliza para transferir datos de SMS. Un decodificador se encuentra aquí.

No existe una decisión ampliamente aceptada sobre si se permiten respuestas a preguntas de salida fija que no están escritas en un lenguaje de programación. Vea esta meta publicación para más información. (Pido disculpas, leí mal esa publicación antes).

isaacg
fuente
2
¡Felicidades! ¡Eres la única persona que he visto que comprime una cadena más larga que el código en el que está incluida! : D
ASCIIThenANSI
@ASCIIThenANSI Comprimir una cadena en un programa más corto es fácil. El programa Python print('A'*100)imprime una cadena de 100 A's. Comprimir una cadena efectivamente aleatoria no es fácil.
Aficiones de Calvin
66
@ Calvin'sHobbies Esto sería más fácil si todos hubiéramos empezado todo nuestro código con la letra 'p'. : D
ASCIIThenANSI
44
-1 Debería haberlo visto antes ... Esto parece estar codificado incorrectamente. Parece que comienzas con un poco de relleno, pero por lo que puedo decir del formato (y esta respuesta ya está ampliando la definición de un formato, ya que el ASCII de 7 bits empaquetado no se usa en ninguna parte), los datos deberían ser acolchado al final, no al principio. E incluso con el relleno, creo que el resto no está codificado correctamente.
Runer112
1
Debería ser "áï <SO><DC4>8¨¶7z {rP¶".
LegionMammal978
25

Elemento, 80 bytes.

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

Este es un lenguaje que creé hace más de tres años. Puede encontrar un intérprete, escrito en Perl, aquí . El `operador imprime la parte superior de la pila (las letras). La otra puntuación hace cosas, como la concatenación, pero los resultados nunca se imprimen.

PhiNotPi
fuente
1
Muy listo, señor. Muy inteligente ...
ASCIIThenANSI
10

Clip , 20 bytes

[M"ppuppPq([#fwSmdP"
bcsb1001
fuente
66
Creo que eres el último en pie. A menos que alguien pueda comprimir ppuppPq([#fwSmdP[en 15 bytes Y generarlo.
Sanchises
@sanchises Si alguien lo hace, otorgaría una recompensa. Porque sería así de bueno.
ASCIIThenANSI
3
@sanchises Si solo hubiera algún lenguaje esotérico que generara el programa con todas las ocurrencias de preemplazado por pp. Entonces una solución sería pupPq([#fwSmdP[.
bcsb1001
1
@ bcsb1001 Sí, recientemente pensé en algo así; un lenguaje esotérico donde cada comando es una solución de desafío ganadora en este sitio, y utiliza la salida de ese comando como entrada para el siguiente comando. Sería increíble si alguien pudiera programar algo en eso.
Sanchises
1
@sanchises ¿Pero eso rompería una regla de laguna legal al salir a internet?
ASCIIThenANSI
5

Lisp común, 65 bytes

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))
Geobits
fuente
El último 112 debe cambiarse a 80 (de alguna manera).
LegionMammal978
12
Con esta respuesta, se ha introducido una era de oscuridad.
PhiNotPi
5

Scratch, 45 bytes

when green flag clicked
show
say[ppuppPq([#f]

Recuento de bytes según la representación del texto . Ver meta .

Scimonster
fuente
Buen trabajo. Nunca pensé en usar Scratch.
ASCIIThenANSI
4

Python 3, 95 bytes

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

Haskell, 35 bytes

main = putStrLn "\&ppuppPq([#fwS\&"
usuario19057
fuente
¿Que es lo que hace?
Hjulle
44
@Hjulle Toma dos personajes. (Es un código de escape para la cadena vacía)
User19057
4

¡Han pasado 24 horas desde la edición! ¡Hagámoslo! :RE

Java, ronda 2, 100 bytes

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}
EMBLEMA
fuente
1
¿Qué hay de marcar esta "Ronda 2"?
Claudiu
4

Ronda 2: Ruby, 75 bytes

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

¡Pensé que sería un poco más difícil comenzar mi respuesta con una cita! >: D

EMBLEMA
fuente
3

Java, 100 bytes

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

Mathematica, 75 bytes

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

F #, 60 bytes

[<EntryPoint>]let main arg=System.Console.Write "ppuppPq(";0
LegionMammal978
fuente
3

F # script, 40 bytes

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

Tiene su propio tipo de archivo ( .fsx), así que estoy bastante seguro de que cuenta como un idioma.

LegionMammal978
fuente
1
Olvidaste la 'w' de Scratch.
ASCIIThenANSI
Creo que a esto también le falta la 'f' de la respuesta de JavaScript de 50 bytes.
user19057
También se
corrigió
3

Ronda 2: /// , 65 bytes

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

Pensé en darle un poco más de sabor con una barra invertida :)

rodolphito
fuente
2

C #, 90 bytes

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

Ruby, 70 bytes

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}
EMBLEMA
fuente
Tendrías que reorganizarlo ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978
2

C, 55 bytes

#include<stdio.h>
int main(){return puts("ppuppPq([");}
usuario19057
fuente
Debería cambiarse a "ppuppPq([".
LegionMammal978
@ LegionMammal978 Gracias, arreglado.
user19057
2

JavaScript, 50 bytes

function foo() {console.log("ppuppPq([#");}
foo();
EMBLEMA
fuente
Debería serppupPq([#
ASCIIThenANSI
3
@ ASCIIThenANSI No lo creo.
Scimonster
2

MATLAB, 30 bytes

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

Muy bien muestra cuán flexible es MATLAB con los tipos de datos.

Sanchises
fuente
2

Mathematica, 25 bytes

Print["ppuppPq([#fwSmd"];
LegionMammal978
fuente
1
Tenía una nueva solución CJam de 25 bytes que codificaba la cadena de una manera no directa. Desafortunadamente, parece que nunca verá la luz del día. : - /
Runer112
@ Runer112 Tú y todas tus pequeñas rimas / Aún así, tuve esta respuesta ~ 20 segundos antes de que sonara el de 30 bytes.
LegionMammal978
2

Ronda 2: lote, 70 bytes

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

Tu cita fue inútil. D:>

Editar: se me ocurrió que iba por tamaño de archivo en lugar de recuento de caracteres, no estoy seguro de cómo se deben contar los bytes: P

Edición 2: se agregó un comentario para completar los bytes. Si verifica el recuento de bytes en una máquina con Windows, solo suponga que "REM BATCHS" es solo "REM", supongo. :PAG

bloo
fuente
Estoy contando bytes con gedit; dice que tu respuesta es 63. No te preocupes; estás lo suficientemente cerca como para llenar el vacío con comentarios.
EMBLEMA
1
Ah, está bien, voy a poner un comentario allí.
bloo
3
@EMBLEM Es porque la nueva línea de Windows es \r\n. Hay 7 \rs adicionales allí.
jimmy23013
2

Ronda 2, Mathematica, 40 bytes

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

Yay segunda página!

LegionMammal978
fuente
¿No le falta a la salida c?
plannapus
1
@plannapus Fue arreglado
LegionMammal978
2

Ronda 2, > <> , 45 bytes

4 caracteres de comentarios.

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

La cadena ahora contiene ambas "y ', por lo tanto , las respuestas> <> ya no pueden rodearla más (así es como evité cualquier escape).

bcsb1001
fuente
2

Ronda 2, Golfscript, 35 bytes

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

No hay desperdicio de bytes. Comienza con una cita de nuevo!

Claudiu
fuente
El ASCII de 7 bits no funcionará aquí, solo crea 28 bytes e incluye un NUL adicional
LegionMammal978
Alguien más inteligente que yo tendré que hacerlo ... tal vez haya algún lenguaje codificado en 6 bits que pueda ejecutarse para producir la salida adecuada ...
Claudiu
No, 6 bits crearían 24 bytes, pero necesitamos 30.
LegionMammal978
@ LegionMammal978: Derecha, 24 bytes, luego 8 instrucciones de seis bits para imprimirlas o hacer lo que sea
Claudiu
1
Te estás perdiendo el apóstrofe de 2 respuestas
14mRh4X0r
1

Python 3, 85 bytes

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

Ronda 2, C #, 95 bytes

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}
LegionMammal978
fuente
¿Qué hay de marcar esta "Ronda 2"?
Claudiu
1

Ronda 2, secuencia de comandos F #, 55 bytes

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

Vea mi respuesta anterior de script F # para saber por qué creo que es un lenguaje válido.

LegionMammal978
fuente
1

Ronda 2, R, 50 bytes

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

Ronda 2, Javascript, 60 bytes

var _p = "p"; alerta (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos \" R \\ ");
SuperJedi224
fuente
Creo que __caería bajo variables innecesarias. Intente cambiar pa un nombre de dos letras y haga que la cadena entre comillas dobles para agregar una barra diagonal inversa para la cita impresa. Eso debería compensar los 3 caracteres que perdiste al eliminar el __,.
LegionMammal978
1
No dijeron que no los usaran. Dijeron que usen como máximo diez bytes de ellos.
SuperJedi224
Significa que puede usar variables necesarias de hasta 10 bytes, pero no puede usar variables innecesarias por completo.
LegionMammal978
@Rainbolt Lo estás interpretando como "No puedes usar más de 10 bytes de (comentarios), (variables innecesarias), (llenar el programa con espacios en blanco) o (nombres de variables) más de 10 bytes", pero debido a la segunda referencia, lo veo como "No puede usar (más de 10 bytes de comentarios), (variables innecesarias), (llenar el programa con espacios en blanco) o (nombres de variables de más de 10 bytes)".
LegionMammal978
He arreglado la ambigüedad. En la pregunta, var __no está permitido (no se usa en el resto del programa), pero el cambio de nombre psería aceptable.
ASCIIThenANSI
1

Ronda 2: Javascript, 90 bytes

var p = "p"; alerta (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " notario público
SuperJedi224
fuente
¿Qué hay de marcar esta "Ronda 2"?
Claudiu
El __,caería bajo variables innecesarias .
LegionMammal978