Toda su base nos pertenece (restringida)

57

La entrada no debe ser necesaria y la salida debe leer " All your base are belong to us".

Restricciones

  • Sin recursos externos.

    Más un mínimo de dos de los siguientes:

  • No puede usar "a", "b", "t", "u" o "y" en ningún caso en su código (bonificación -10 a su puntaje de golf si puede hacerlo)

  • No puede usar "l", "o", "s", "e" o "r" en ningún caso en su código (bonificación -20 a su puntaje de golf si puede hacerlo)

  • No puede usar "n", "g", "0", "1" o "2" en ningún caso en su código (bonificación -30 a su puntaje de golf si puede hacerlo)

Entonces, por ejemplo, si logra hacer el código con 40 caracteres y usa las reglas 1 y 2, su puntaje de golf es 40 - 10 - 20 = 10 caracteres.

El puntaje de golf de código más pequeño gana ... ¡Buena suerte!

WallyWest
fuente
55
Tanto como declarar un stringrompe las tres restricciones, y char, vary Writerompe dos de ellas cada una. Va a ser difícil obtener respuestas válidas, quizás Barinfuck.
Hand-E-Food
77
"no se requiere entrada ". ¿No significa eso que podría, por ejemplo, hacer algo como print(input())(python)? Se requeriría que el usuario ingrese la cadena correcta, pero eso no está prohibido.
Justin el
55
@Quincunx No aceptaría tal solución, ya que no se garantiza que el código genere una solución correcta. Además, stdines posiblemente una "fuente externa".
nitro2k01
2
@PranavHosangadi Hay una respuesta eliminada a esta pregunta con una puntuación de -6 que es esencialmente la misma. Se ha hecho varias veces antes en varias preguntas y está explícitamente prohibido en la etiqueta de código de golf .
Gareth
1
De acuerdo con las respuestas de las reglas estándar de code-golf en latin1 / unicode / name, su mapa de caracteres se clasifica en bytes después de la conversión a utf-8. ¿Vamos a contar así o ha elegido un método de puntaje diferente? El líder actual estaría entonces en 0 en lugar de -40.
Sylwester

Respuestas:

4

SOGL V0.12 , 15-60 = -45

šz█P'zUS½█│β3‘⁾

Pruébalo aquí!

šz█P'zUS½█│β3‘es una cadena comprimida de all your base are belong to us, pero debido a que la cadena exacta comprimido contenido 0, es dividida en 3 partes: all your base are, , belong to us(que cuestan un byte, pero dio un bono -30 byte). La primera y la última cadena se comprimen con el diccionario de inglés SOGL y se unen implícitamente con espacios. El resto es un caso de oración simple incorporado.
Tenga en cuenta que SOGL es posterior a este desafío, pero eso está permitido ahora.

dzaima
fuente
Solo tengo que preguntar ... ¿Cómo? ¿Estamos tratando con alguna técnica de compresión inteligente aquí? No sé nada de SOGL ...
WallyWest
45

GolfScript, -22 (38 caracteres, -60 bonus)

"„¯¯c¼²¸µc¥¤¶¨c¤µ¨c¥¨¯²±ªc·²c¸¶"{67-}%
Howard
fuente
44
¿Como funciona esto?
The Guy with The Hat
37
@RyanCarlson Magic.
Howard
44
"..."define una cadena y el bloque {}%realiza una operación de mapeo sobre todos los caracteres. Dentro del bloque, el valor ASCII está disponible en la pila y 67-resta 67 de cada valor ASCII.
Howard
44
OK, caso es probablemente la palabra incorrecta para usar, pero sabes a lo que me refiero. Estoy bastante seguro de que el superíndice 2 sigue siendo un 2, por lo que no se ha cumplido la Regla 3.
Trent
3
@FizzBuzz Sé lo que estás tratando de decir, pero creo que lo que importa es que 2 y ² son glifos diferentes con puntos de código distintos. Puede argumentar que, en un sentido denotacional, son el mismo símbolo, pero creo que es una interpretación mucho más abstracta de lo que merece la pregunta.
Jordan Gray
36

Sclipting , −40

뀖롬긇땯덗긠눦굳뉒걡댦넠눦녬닶멧긇끯긇녳
  • = 20 caracteres - 60 bonus
  • Solo funciona si la entrada está vacía, lo cual considero que es el caso; si no, agregue al frente, cambiando el puntaje a −39.
  • Si puedo asumir que la entrada es lo que quiero (como aparentemente hace esta respuesta ), entonces el programa vacío es una solución y mi puntaje es −60.
Timwi
fuente
Bueno, "input is not required"como dije, entonces lanzaría el 丟 al frente y alteraría el puntaje a -39, ¡pero gran esfuerzo! ¡Especialmente considerando que inventaste el idioma, amigo!
WallyWest
1
Como coreano, ver sílabas coreanas en código es increíble.
Matthew Roh
29

JavaScript - 140 bytes - 60 bonus = 80 puntos

(x="Ǎľľ y̌ǒǔř b̌ǎšě ǎřě b̌ěľǒňǧ ťǒ ǔš")[x[3*9]+x[34]+"p"+x[4]+x[5*5]+"c"+x[34]]("̌","",x[6*7])

Ejecutar en Firefox

Sé lo que estás pensando. No, esos no son los personajes que figuran en la pregunta. Esos son personajes con un caron o háček (elegidos al azar de una lista de diacríticos). Aunque están combinando marcas, no son dos personajes separados.

Kendall Frey
fuente
Node.js REPL:String.fromCharCode(65,108,108,32,121,111,117,114,32,98,97,115,101,32,97,114,101,32,98,101,108,111,110,103,32,116,111,32,117,115);
nick indiessance
28

APL (43-30-20 = -7)

⎕AV['⊥┤┤ ø┼&┐ `∣┘û ∣┐û `û┤┼─ù ´┼ &┘'⍳⍨⌽⎕AV]

Esto satisface las reglas 2 y 3.

marinus
fuente
¡Esto va a ser difícil de superar!
Paul Prestidge
1
¿esto devuelve el resultado o lo imprime?
Aaron Davies el
@AaronDavies: ambos, el resultado se imprime automáticamente
marinus el
@marinus Probé esto en TryAPL.com y obtuve un INVALID TOKENerror ... quizás del carácter inicial y de cola antes de AV ... ¿Hay algún otro lugar donde pueda probar esto ...?
WallyWest
@WallyWest: use Dyalog APL ( dyalog.com ). Obtenga la versión no registrada, es gratis. TryAPL es tan limitado que es casi inútil.
marinus
28

Brainfuck, 267-60 = 207

++++++++[>++++++++<-]>+.<+++++++[>++++++<-]>+..>>++++++[<+++++>-]<++.<+++++++++
++++.----------.++++++.---.>.<<++++[>----<-]>.-.<+++[>++++++<-]>.--------------
.>.<----.<++++[>++++<-]>+.-------------.>.<---.+++.+++++++.+++.-.-------.>.<+++
++++++++++.-----.>.<++++++.--.
Hand-E-Food
fuente
¿Se puede reducir eso más, me pregunto? :)
WallyWest
2
A fbonetti le fue mejor en su respuesta Brainfuck.
Hand-E-Food
2
Y FIQ incluso mejoró 4 días más tarde
schnaader
22

HTML / CSS 70

<p style="transform:rotate(.5turn)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>

http://jsbin.com/EjekuvuF/1/

Pensé que estaba siendo inteligente con el tipo invertido, pero luego me di cuenta de que no podía cumplir ninguna de las reglas auxiliares con el HTML / CSS real. Oh bien.

ACTUALIZAR:

User Flame sugirió una solución más compatible con varios navegadores:

<p style="transform:rotate(180deg)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>  

http://jsbin.com/EjekuvuF/6

ABOGADO DE DISTRITO.
fuente
Supongo que puedes usar referencias de caracteres XML para salvar la situación.
MvG
3
Sin embargo, me gusta la idea detrás de la solución.
Sumurai8
También le daré mi apoyo ... pensé que por alguna razón se transform:rotate(.5turn)resuelve un error de sintaxis ... Me gusta la imaginación puesta en esto ...
WallyWest
@WallyWest No probé en todos los navegadores. Apuesto a que podría ser específico del navegador en lugar de la sintaxis oficial del W3C. (Sin embargo, funciona en Chrome)
DA.
3
Deberías usar ∀ en lugar de ɐ :)
Timwi
12

MATLAB, Todas las bonificaciones: Puntuación de -20 (40-60)

['' '¤ÏÏèÜÒØÕèÅÄÖÈèÄÕÈèÅÈÏÒÑÊè×ÒèØÖ'-99]

EDITAR:

Tenga en cuenta que no estoy seguro de cuáles son los requisitos del sistema para ejecutar esto, probado en Windows. Para aquellos que luchan por copiar, se puede generar un código similar de esta manera:

char('All your base are belong to us' + 99)

Si se le hubiera permitido preguntar algo como entrada, por supuesto sería posible una solución con menos caracteres (pero también sin la bonificación).

input('')
Dennis Jaheruddin
fuente
Por favor, explique cómo planea emitir cualquier cosa usando solo input. La segunda respuesta es (afaik) simplemente no es cierto.
DJSpud
2
@Jhawins: MATLAB genera el resultado de cada expresión que no termina en punto y coma. La input('')llamada no termina en punto y coma, por lo tanto, generará salida.
Ben Voigt el
66
Si eso es correcto, entonces mi respuesta JS es " prompt()"
DJSpud
Y Shell sería dd, pero tal vez eso cuente como un recurso externo. Lo mismo haría la entrada del usuario, por supuesto.
gerrit
Intenté ejecutar esto y obtuve lo siguiente: _A ,, E9 /5 2E "! 3% E! 2% E" %, /. 'E 4/ E5`3 Puedo entender la primera respuesta, pero la segunda respuesta requiere información, que dije que no era" requerida "
WallyWest
10

k (-7 = 53-60)

(#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";

no incluye la nueva línea final, se puede agregar al costo de un carácter adicional:

(-#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";

molestamente, las únicas compensaciones que funcionan para este truco son 154 y 155

editar:

si es suficiente para mostrar la cadena (en lugar de imprimirla), como sospecho que la solución APL funciona (no funciona en http://tryapl.com/ , por lo que no puedo probarla correctamente), es

  "c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&("
"All your base are belong to us"

que es -12 = 48 - 60. ¿Puedo obtener una decisión sobre si esto es suficiente?

Aaron Davies
fuente
Nunca pedí una nueva línea final ... :)
WallyWest
10

dc, 97-60 = 37 91-60 = 31 88-60 = 28 81-60 = 21

3C87596P4d^8/P7958389P7479394P6386533P7C89P749698CP644848CP459 8^699 7^3849736388974773333 86-++P

Versión mejorada (la idea principal aquí es variar la base de entrada, para aumentar las posibilidades de encontrar un gran número útil sin dígitos problemáticos):

IDi67793554D647F84C836645D6569F69Pi6385C77P9i35PDdi6^I9^+6D59CD83D664D34+P8CPFi98CCF5PCi97P

En la base 7, ¡todo puede convertirse en un solo número! Las bases inferiores son naturalmente menos compactas, pero la falta de operaciones de reparación aquí lo compensa.

7i4398873968644388737548444897643735447698675366869556798538985674336396359936458859886P

Mi primera solución de base utilizada 10. La segunda utiliza una mezcla de base 9, 10, 12, 13 y 15. Éste está en la base 7. verdaderamente siento que toda la base son pertenecen a mí.

El último, en serio: Base 13 hace un gran trabajo en el primer segmento, luego la base 7 para el resto.

Di67793554D647F84C836645D6569F69P7i798789699638355733695878558396339387963789536P

fuente
En otras palabras, ¿toda tu base 7 te pertenece, @Wumpus?
WallyWest
10

REPL Python, 122 116 98 caracteres - 30 bono = 92 86 68 puntos

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6fng \x74\x6f \x75\x73'

'All your base are belong to us'

Podría deshacerme de los ceros en Python 3.3 reemplazando ' \40' con \N{SP}, pero desafortunadamente, Nno está permitido.

Editar : inspirado por esta respuesta , lo acorté aún más al reemplazarlo \x40por . Por otra parte, puesto que ya utilizo el 1, reemplazando \156por ny \x67por glo acorta por otros 6 caracteres, mientras que incurrir en ninguna penalización adicional.

gerrit
fuente
1
Me pregunto si esta es una entrada válida, porque solo funciona el shell interactivo. Si coloca esto en un .pyarchivo y lo ejecuta, no hay salida.
Daniel Hepper el
1
Depende ... Creo que no hay una regla general. Algunas preguntas permiten el modo interactivo, otras no.
Bakuriu
1
Esto también funciona en R
Zach
1
@AaronHall ¡Y después de mi edición, bajé la mía a 68!
gerrit
8

Brainfuck, 205 203 - 60 = 145 143 bytes

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

Versión legible:

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]
64 32 112 96 128

>+.>>----..<.                     All                 65 108 108  32
>>>-------.<<+++.>>----.---.<<<.  your           121 111 117 114  32
>>++.-.>+.<++++.<<.               base            98  97 115 101  32
>>----.>-.<++++.<<.               are                 97 114 101  32
>>---.+++.<---.>>---.-.<<-----.<. belong  98 101 108 111 110 103  32
>>>++++++.-----.<<<.              to                     116 111  32
>>>++++++.--.                     us                     117 115
FIQ
fuente
Eventualmente casi esperaba una solución Brainfuck ... ¡Buen trabajo!
WallyWest
7

Befunge 98: 122 - 60 = 62

5f8+*:53-+:' \6-:5+' 91+:*3+::7+\8+:3-:7-:3-:' \3+::3-4+',' -+\4-:' \:4+\6+c+:f3+-:4+3-' '&3*:3+:6-:f+5-:' \d-:' '!+ff+k,@

Calcula los valores ascii, luego los imprime. Todavía necesito probar otros métodos para formar los números para ver si hay formas más cortas.

Justin
fuente
Me preguntaba cuándo ibas a poner tus 2 bytes en ... ¡Buen trabajo!
WallyWest
7

Python, 195-40 = 155

x,w,y,z,v=4*8,55,56,57,58;exec(("%c"*38)%(y+y,z+z,49+y,w+w,v+v,39-7,34,65,54+54,54+54,x,v+63,48+63,48+69,z+z,x,98,97,59+y,45+y,x,97,z+z,45+y,x,98,45+y,54+54,w+y,w+w,45+v,x,v+v,w+y,x,v+59,z+v,34))
Daniel Hepper
fuente
6

Rubí, 121-50 = 71

Un poco de fuerza bruta, pero se descartan la mayoría de los métodos lindos:

$><<[65,c=36*3,c,d=8*4,363/3,f=c+3,c+9,c+6,d,x=98,97,j=c+7,k=3+x,d,97,c+6,k,d,x,k,c,f,j-5,5+x,d,c+8,f,d,c+9,j].pack('C*')

Rompe la regla # 1 debido a la A en pack, los otros dos deberían estar bien.

Paul Prestidge
fuente
Puedo guardar 6 caracteres si solo devolvemos el resultado en lugar de imprimirlo, no estaba claro después de mirar las otras respuestas.
Paul Prestidge
1
Extremadamente largo, pero no más "a": pastebin.com/wnsvcAMh
manatwork
@manatwork me encanta! De alguna manera, nunca pensé en eso, aunque lo estoy usando <<en mi respuesta.
Paul Prestidge
Entonces, o usas la solución de 154 caracteres que @manatwork ha usado y reclamas el descuento de 60 puntos que te da 94, o te quedas con la versión que no es de la Regla 1 y optas por la 71 ... Sé cuál usaría :)
WallyWest
6

{ba, z} sh, 67 - 40 72 - 60 61 - 40 = 21

$'\x74r' K-~\#-\; _@-~\^-j<<<'Mxx ){%~ 3m#q m~q 3qx{z8 ${ %#'

Maldita sea, resulta que tenía un rallí que no había notado, ¡así que el bono de 20 no se aplica!

Luciérnaga
fuente
1
En las versiones zsh y bash que tengo a mano, $'\x74\x72'se puede usar directamente como nombre de comando, ahorrándote 8 caracteres para el $(m4<<<). ¿No te funciona así?
Y después de mirarlo de nuevo ... usarlo \x72como reemplazo para robtener el bono de 20 puntos a costa de perder el bono de 30 puntos (para el 2)
@ WumpusQ.Wumbley oh, tienes razón en ambas cuentas. No pensé en el 2usado allí, déjame ver si puedo encontrar una manera de deshacerme de él y evitar perder cualquier bonificación.
FireFly
Santo cielo, ¡eso fue ingenioso! Esto parece un cifrado inverso ROT12 ASCII ... (¿estoy en lo cierto?) ¡Bien hecho!
WallyWest
Buena respuesta. ¿Pero trcuenta como un recurso externo?
Trauma digital el
5

C, 75 bytes - 60 = 15

¡Gracias a @gastropner por bajar el puntaje de 50 a 33 y de 19 a 15!

*q,i;f(p){(*(q=p)="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9J"[i++]^74)?i=!f(++p):i;}

Toma la dirección de una matriz de caracteres como entrada y escribe la cadena en la matriz.

Pruébalo en línea!

Llamar con:

int main()
{
    char s[128];
    f(s);
    puts(s);
}

Salida:

Versión anterior (90 bytes - 40 = 50):

*q,i,j;f(p){for(i=3-3;j="Epp$}s v$fewi$evi$fipsrk$xs$ w"[i++];*q=j!=35-3?j-4:353/3)q=p++;}
Steadybox
fuente
1
Refiriéndose a esto, usando los poderes de XOR y recursividad, puede alcanzar 93 - 60 = 33 bytes:*q,i,j;x(p){if(j="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9"[i++])*(q=p)=j^74,x(++p);}f(p){i=3-3;x(p);}
gastropner
@gastropner ¡Gracias!
Steadybox
Podría ir con i=i<30otros 2 bytes de descuento.
Gastropner
@gastropner No se puede usar 0.
Steadybox
Ah si, por supuesto!
Gastropner
4

JavaScript

(306 caracteres - 60 bonus = 246) (206 caracteres - 50 bonus = 156)

(123 caracteres = 173 caracteres - 50 bonus)

Nooby, probablemente podría sacar más provecho ... Avíseme si he rellenado algo, esto alerta "Toda su base nos pertenece". Esto también es solo ASCII.

(c=(''+!'')[4-3],x=([][3]+c)[6])[a='c\x6F'+x+'\x73t'+c+'uct\x6F'+c][a]('a\x6C\x65'+c+'t("A\x6C\x6C y\x6Fu'+c+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+x+'\x67 t\x6F u\x73")')()

Si cuenta la consola en sí como salida, esto también contaría (57 con bonificación):

'A\x6C\x6C y\x6Fu'+(c=(''+!'')[4-3])+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+([][3]+c)[6]+'\x67 t\x6F u\x73'
Qantas 94 Heavy
fuente
Gran enfoque, aunque algunas subscripciones de letras también podrían haberle permitido la bonificación de la Regla 1 también ... Buen trabajo.
WallyWest
@WallyWest: ¡Gracias! El problema en JavaScript es que es bastante difícil obtener una "A" sin romper las otras reglas o usar demasiados caracteres: ocuparía más de 10 caracteres solo.
Qantas 94 Heavy
Es cierto que tienes que superar las letras adicionales contra los bonos ... ¡Buen trabajo!
WallyWest
x=(c.t+c)[6]es un poco más corto
No es que Charles
también, evalpodría ser más fácil de hackear
No es que Charles
4

Brainfuck, (227 - 60 = 167)

+++++ +++++[>+++>++++++>+++++++++>++++++++++<<<<-]>>+++++.>>++++++++..<<<++.>>>+++++++++++++.----------.++++++.---.<<<.>>++++++++.-.>+.<++++.<<.>>----.>-.<++++.<<.>>---.+++.>------.+++.-.<++.<<.>>>++++++.-----.<<<.>>>++++++.--.
fbonetti
fuente
No creo que sea necesario el espacio al comienzo +++++ +++++. Podría ser de 226 bytes.
FinW
3

PHP (35-60 = -25 bytes)

HOW LOW CAN YOU GET ?[1] [2]

$ xxd yourbase.php 
0000000: 3c3f 3d7e be93 93df 8690 8a8d df9d 9e8c  <?=~............
0000010: 9adf 9e8d 9adf 9d9a 9390 9198 df8b 90df  ................
0000020: 8a8c 3b                                  ..;

[1] Este programa se puede decodificar usando xxd -r.
[2] Sí, la solución pesada se reutiliza aquí. Creo que es ... el tercer problema que resolví de esta manera. Tal vez debería pasar a otra cosa, pero no es que esto no sea genial para problemas que te prohíben usar la mayoría de los personajes.

Konrad Borowski
fuente
No lo entiendo, ¿qué intentas hacer aquí?
WallyWest
@WallyWest Él invirtió un poco la cadena; resultando en 31 caracteres ASCII extendidos, que PHP intenta interpretar como un nombre constante y porque no encuentra interpretaciones constantes como una cadena. Esta cadena se vuelve a negar con ~.
Titus
3

Golpe, 52-10-30 = 12

Lo siguiente debe ejecutarse en un entorno ISO-8859-1 (todavía bastante común):

$'\x74r' À-þ  @-~<<<'Áìì ùïõò âáóå áòå âåìïîç ôï õó'

Esto llama tr, que traduce los caracteres de una manera adecuada. Tuve que usar ry violar la regla 2, o usar un dígito en el escape y violar la regla 3. Como 3 da más bonificación, elegí la primera.

MvG
fuente
1
Sí, lo hizo :) No puede usar "a", "b", "t", "u" o "y" en cualquier caso. También necesita un mínimo de dos de las condiciones
capucha
@cowls: Parece que perdí completamente ese punto, gracias por dejarlo claro. Reescribí mi respuesta para cumplir con eso.
MvG
@MvG gran retrabajo ... ¡Bien hecho!
WallyWest
¿ trConstituye un recurso externo?
Trauma digital
@DigitalTrauma: Más como una biblioteca estándar, diría, aunque esto está sujeto a interpretación. Pero está especificado en el estándar POSIX , así que supongo que cualquier sistema POSIX debe tenerlo, por lo que es parte del sistema.
MvG
3

Pure Bash (sin recursos externos), 141 caracteres - 50 bonus = 91

Z = ({k..v})
f = $ '\ x65'
h = $ '\ x6c'
i = $ '\ x6f'
j = $ {Z [7]}
k = $ '\ x73'
m = $ '\ x75'
$ f $ '\ x63'h $ i A $ h $ hy $ i $ m $ j ba $ k $ fa $ j $ fb $ f $ h $ i $ {Z [3]} $' \ x67 't $ iu $ k

Dejar caer intencionalmente el bono de 10 puntos para obtener una mejor puntuación general.

Esto funciona en cualquier bashversión 3.00.15 o posterior que he probado.

Como funciona

Aquí no hay ciencia de cohetes, solo bashexpansiones de una forma u otra:

  • Expansión hexadecimal simple para obtener el personaje requerido. Esto funciona para personajes cuya representación hexadecimal no contiene [012]. por ejemplo $'\x65'nos dae
  • Para otros caracteres, generamos una matriz bash de caracteres secuenciales usando la expansión de llaves en una inicialización de matriz ( Z=({k..v})). El inicio de la expansión de llaves se elige cuidadosamente para que los índices de los caracteres que requerimos no contengan [012]. por ejemplo ${Z[7]}nos da r.
  • bashes lo suficientemente flexible como para permitir que sus comandos se construyan a partir del contenido de múltiples cadenas. Entonces se $f$'\x63'h$iexpande a echo.
  • Para los caracteres que se requieren solo una vez, la expansión se inserta en línea en la cadena de comando echo.
  • Para los caracteres que se requieren dos veces o más, es más eficiente expandirlos a variables, luego hacer referencia a las variables.

Respuesta anterior con bonificación completa, pero peor puntaje general:

Pure Bash (sin recursos externos), 193 caracteres - 60 bonus = 133

Sé que esto no ganará, pero quería demostrarme a mí mismo que esto es posible bash, mientras satisfago todos los requisitos:

Z = ({3..8} {C..z})
c = $ {Z [36]}
d = $ {Z [37]}
f = $ '\ x65'
h = $ '\ x6c'
i = $ '\ x6f'
j = $ {Z [53]}
k = $ '\ x73'
m = $ '\ x75'
$ f $ '\ x63'h $ i $ {c ^} $ h $ h $' \ x79 '$ i $ m $ j $ d $ c $ k $ f $ c $ j $ f $ d $ f $ h $ i $ {Z [49]} $ '\ x67' $ '\ x74' $ i $ m $ k

Esto requiere una versión bastante reciente de bashpara la ${c^}expansión de parámetros. 4.2.25 está bien, pero 3.2.48 está prohibido.

Trauma digital
fuente
Me quito el sombrero ante ti ... Acabo de ejecutar esto ... buen trabajo ... Muy buen trabajo.
WallyWest
@WallyWest: acabo de editar en una versión más corta.
Trauma digital
3

Postdata, 364-40 = 324

No podría hacerlo sin loser, por supuesto. :)

/${cvx exec}def
/+{<3C7E4F6F597E3E>$ $}def
/*{<~P&(~>$}def
/-{( )<3C7E4F754E7E3E>$ $ 3 4<~P#;~>$ 4 3<~P)#3FP'-~>$}def
/_{36(      )<~OoP~><3C7E4F754E7E3E>$ $ 4 3<~P,S~>$ 48<~P'?~>$
${96 3<~P#;~>$ + -}<~P">~>$}def
/.{_ 96 3<~P#;~>$ -}def
65 - 777 .
895 353 + _ 774 333 + .
74933 333 + 7 * 3 + 333 + .
9593 4353 + .
689653949 335 + .
735 333 + .
775 333 + _ 5 5 + -

Esto comienza con la codificación del texto como cadenas de base 36:

%-=Encoding strings as base-36 numbers=-
%All your base are belong to us
% handle uppercase A separately
%36#ll = %777
%36#your = %1618515
%36#yo = 36#ur = 36#base = 36#are = 36#belong = 36#to = 36#us =
%1248 1107 527198 13946 689654284 1068 1108

Y luego eliminando los 1s y 0s y 2s aritméticamente. Las cadenas se pueden regenerar con 36 <string-buf> cvrs, pero esto produce letras mayúsculas, por lo que debemos iterar y agregar 0x20 para ponerlas en minúsculas.

Los operadores cvx execnos permiten ejecutar fragmentos de cadena de tokens de operador codificados en binario en varias codificaciones. ¡Lo más simple es codificar un operador en hexadecimal <92??>pero hay un 2 allí! Entonces, la codificación de "primer nivel" es ascii85. Luego, las cadenas que aún contenían caracteres prohibidos pasaron por niveles adicionales de hexadecimal -> ascii85 -> hex -> ascii85.

luser droog
fuente
2

Brainfuck, 306-60 = 246

----[---->+<]>++.[--->+<]>+..[++>---<]>--.--[->++++<]>+.----------.++++++.---.[-->+++++<]>+++.[--->+<]>++.-.--[--->+<]>--.++++[->+++<]>.--[--->+<]>-.[--->+<]>+.--[--->+<]>---.-------------.--[--->+<]>-.[--->+<]>++.+++.+++++++.+++.-.-------.-[--->+<]>--.---[->++++<]>.-----.[--->+<]>-----.---[->++++<]>+.--.
Timtech
fuente
¿Seguramente esto podría reducirse de alguna manera?
WallyWest
@WallyWest No tengo tiempo para reducir un programa como este en un 5% sin ningún motivo: ¡P no obstante, puede publicar mejoras!
Timtech
No se necesita obligación aquí :)
WallyWest
@WallyWest Sin embargo, tienes razón sobre acortarlo. Podría usar algunas mejoras importantes.
Timtech
2

PHP, 186-10-30 = 146

Tuve que ser un poco creativo;)

 <?=chr(65).'ll '.chr(88+33).'o'.chr(39*3).'r '.chr(98).chr(97).'s'.chr(68+33).' '.chr(97).chr(38*3).chr(68+33).' '.chr(98).'elo'.chr(77+33).chr(69+34).' '.chr(83+33).'o '.chr(39*3).'s'?>
ub3rst4r
fuente
aún puede jugar un poco y mantener la idea de respuesta: echo no requiere paréntesis (1), puede usar en <?=lugar de echo (4), puede guardar las letras repetidas en variables ('l', ''). usar en 54*2lugar de54+54
Einacio
1
Fijo. Solo podía hacer multiplicar en ciertos. No puedo hacerlo 54*2porque 2tiene un factor, por lo que solo podría hacerlo con los que tenían 3 o más tiene un factor. Si uso un decimal, entonces no hay menos caracteres.
ub3rst4r
Unos cuantos consejos de golf con 50 bytes de descuento. La mayor parte (23 + 9 bytes): puede reemplazar el resto chr(68+33)y chr(38*3)con literal ey r.
Titus
1

Pitón, 181-40 = 141

[Estoy usando la versión 2.7.2 YMMV - el incorporado, filese fue en Python 3.X]

f=file.__doc__;c=5-3;l=f[c];s=' ';e=f[3];h=f[6+7];i=f[c*87];j=3**3;f[j*c*5]+l+l+s+f[-57]+h+f[j-7]+f[j-3]+s+f[j-8]+f[6]+i+e+s+f[6]+f[j-3]+e+s+f[j-8]+e+l+h+f[5]+f[j]+s+f[45]+h+s+f[j-7]+i
Gerrat
fuente
1

Python (104-30 = 74)

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'
'All your base are belong to us'

Y anotar:

>>> len(r"'\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'")-30
74
Aaron Hall
fuente
Bien hecho, pero realmente no necesita hacer lo mismo para determinar el puntaje ...;)
WallyWest
1

Paperas, 150 - 60 = 90. 40 = 110

S J=" ",Z=36*3,C=37*3,D=38*3,Q=39*3,I=35*3-4 W *65,*Z,*Z,J,*484/4,*C,*Q,*D,J,*98,*97,*C+4,*I,J,*97,*D,*I,J,*98,*I,*Z,*C,*D-4,*Z-5,J,*C+5,*C,J,*Q,*C+4

No estoy seguro de si podría haberse hecho más corto (en general) al no obtener uno de los bonos de código: mi objetivo era un poco menos en la falta y un poco más en el -60 ... Me gustó el desafío de no usar cualquiera de los caracteres restringidos

Y ... lo hice tonto, me perdí el comando inicial 'S'. : - /

De todos modos, aquí hay una versión "sin reglas": expandir las variables.

W *65,*36*3,*36*3," ",*484/4,*37*3,*39*3,*38*3," ",*98,*97,*37*3+4,*35*3-4," ",*97,*38*3,*35*3-4," ",*98,*35*3-4,*36*3,*37*3,*38*3-4,*36*3-5," ",*37*3+5,*37*3," ",*39*3,*37*3+4

Y eso le da un puntaje de 177-60 = 117. Así que romper la regla central todavía me dio un puntaje general más bajo.

zmerch
fuente
Respuesta interesante ... ¿Existe un emulador en línea al que pueda acceder para ejecutar este código?
WallyWest
1
No lo sé, pero hay versiones para Mumps que se ejecutan en casi todas las plataformas, incluso hay versiones que se ejecutarán en una Raspberry Pi si quieres una máquina de Mumps muy pequeña ... :-)
zmerch
1

Perl 5, 99-50 = 49

Una subrutina que devuelve la cadena requerida:

{A.($c=h|d)."$c y".($f=f|k).u.($k=p|b)." ba".($j=c|p).($d=d|a)." a$k$d b$d$c$f".(jf|fc)." t$f u$j"}

Véalo impreso así:

perl -e'print sub{...}->().$/'
msh210
fuente
1

BF-RLE , 146-30 = 116

+5[>+5<-]>+.<+4[>+3<-]>+..>>+3[<+2>-]<++.<+A.-7.+3.-0.>.<<+1[>-1<-]>.-.<+0[>+3<-]>.-B.>.<-1.<+1[>+1<-]>+.-A.>.<-0.+0.+4.+0.-.-4.>.<+A.-2.>.<+3.--.
Timtech
fuente
Esto puede acortarse significativamente
Timtech