Haz un código cuadrado con tu palabra favorita

47

Elija su palabra favorita en inglés común de 6 letras que no tenga letras repetidas , como wombat.

Escriba un programa en una cuadrícula de caracteres N × N sin comentarios, de modo que cada fila y columna contenga todas las letras de su palabra en minúsculas en cualquier orden. El programa debe generar una definición de su palabra en 36 caracteres o más .

Reglas

  • Salida a stdout. No hay entrada
  • Su palabra debe estar en Dictionary.com y solo debe contener az. Sin nombres propios, sin siglas, sin abreviaturas, sin contracciones.
  • Su programa y salida solo pueden contener caracteres ASCII imprimibles (códigos hexadecimales 20 a 7E). (Esto no cuenta las nuevas líneas necesarias en la cuadrícula del programa).
  • Los comentarios son cualquier cosa que el compilador o el intérprete ignoran tradicionalmente. Puede usar código que no contribuya a la salida o que no se ejecute oficialmente.
  • La definición de salida debe ser gramatical y precisa, pero ciertamente puede ser divertida o inteligente.
  • Cualquier fila o columna que al menos contenga las 6 letras únicas de su palabra en minúsculas es válida. Las diagonales no importan.

Puntuación

Este es el código de golf, pero dado que todas las presentaciones deben estar en el mismo formato cuadrado, simplemente puede especificar su puntaje con N. El N más bajo gana y, por supuesto, un N por debajo de 6 es imposible. En caso de empate, gana la respuesta más votada.

Ejemplo

Si su palabra fuera wombatsu programa podría verse así (N = 7):

wombatD
ombatEw
mbatFwo
bat(wom
atWwomb
tBwomba
)wombat

Observe que cada fila y cada columna tiene los caracteres w o m b a t.

El resultado puede ser: (40 caracteres)

Cute short-legged Australian marsupials.
Pasatiempos de Calvin
fuente
OK, tienes que crear una cuadrícula usando una palabra de 6 letras, pero luego no entiendo el resultado: "lindos marsupiales australianos de piernas cortas".
CousinCocaine
@CousinCocaine Esa es una descripción de un wombat. Debe generar una descripción gramatical y precisa de la palabra que elija.
ProgramFOX
Como este es el código de golf, ¿quién decide cuál es el correcto? ¿"Lindos marsupiales australianos de piernas cortas" o "marsupiales de piernas cortas"?
CousinCocaine
55
Idea: Que la palabra sea " golfed", y la definición "a description of this program's code"(¡para cualquiera que pueda descubrir cómo hacer esto!).
Pomo de la puerta
66
maldición, no tengo la palabra favorita de 6 caracteres
user902383

Respuestas:

18

Perl - uvas - 11

editar: accidentalmente hice estas 12 líneas ...

$epagsr=$";
$,=$epagsr;
/gaerp/;say
grep!/a*s/,
qw(A searpg
purple sgar
rpssg pear?
No, a sgerp
s great pse
as grape; s
eat prgpsga
up! sgarse)

Salida:

A purple pear? No, a great grape; eat up!

¡Actualizar!

Eliminé una línea para bajarla a 11 pero tuve que cambiar la oración. ¡Espero no haber cometido ningún error esta vez!

$gpasre=$";
$,=$gpasre;
/paerg/;say
grep!/a*s/,
qw(A sgrpea
purple sarg
ressp game?
No, a rgspe
s great gsp
as grape; s
eat),$spegr

Salida:

A purple game? No, a great grape; eat

La salida es de 37 caracteres.

hmatt1
fuente
Este me gusta principalmente por el pequeño poema de salida. Es una pena que no fuera un haiku :)
Matt Fletcher
1
Esto es 12x11 ...
Cisma
@schism wow ... ¡Dispara! Lo arreglaré. ¡Gracias!
hmatt1
A punto de aceptar esto, pero aún tiene 12 de altura.
Pasatiempos de Calvin
47

Javascript - acción - 15x15

"Definitivamente no es el más corto, pero PEW PEW PEW". - James Bond

ction="action "
ction+="means "
actionac="PEW "
ctionact="PEW "
tionacti="PEW "
ionactio="PEW "
onaction="PEW "
nactiona="PEW "
ction+=actionac
ction+=ctionact
ction+=tionacti
ction+=ionactio
ction+=onaction
ction+=nactiona
alert(""+ction)

Enlace a la

salida jsfiddle (37 caracteres):

action means PEW PEW PEW PEW PEW PEW 
izlin
fuente
Su primera fila debe contener una minúscula a.
Aficiones de Calvin
@ Calvin'sHobbies Tienes razón. Lo arreglé.
izlin
35

Befunge 93, n = 13

Esto funciona redirigiendo la cadena con "vy >". Esto solo funciona cuando la longitud lateral y la longitud de la palabra son coprimas y cuando la longitud lateral es mayor que 11. En este momento, funciona para la "palabra" vwombaty, por lo tanto, para wombat.

"laip"vwombat
wombat>"usr"v
"am "vwombat>
ombat>"nai"vw
lar"vwombat>"
mbat>"tsu"vwo
 d"vwombat>"A
bat>"egg"vwom
-"vwombat>"el
at>"tro"vwomb
"vwombat>"hs 
t>"tuC"vwomba
vwombat>:#,_@

Salidas Cute short-legged Australian marsupial

Zaq
fuente
25

C (palabra: "buscador", N = 16)

main() finder{ f
printf(finder  i
"it's defined "r
"as a t"finder d
"hing t"finder e
"hat ca"finder r
"n find other t"
"hings" finder);
finder finder f\
inder finder fi\
nder finder fin\
der finder find\
er finder finde\
r finder finder
 finder finder n
return 0;finder}

Compilado con GCC, con las opciones -Dfinder="" -Df="" -Di="" -Dn="" -Dd="" -De="" -Dr="".

Sale it's defined as a thing that can find other things(50 caracteres). ¡Creo que sigue todas las reglas, pero no dude en decirme si hay algún error!

maxdefolsch
fuente
3
Parece correcto, aunque no estoy loco por todas las opciones del compilador.
Aficiones de Calvin
1
Por supuesto, doblé un poco las reglas aquí. Al principio buscaba muchas definiciones, por eso elegí la palabra "buscador" (ya que contiene casi las mismas letras que "definir").
maxdefolsch
99
No es una buena idea usar macros. si está permitido, se puede decir n = 6 y compilarlo con éstos:"-Dfinder=main(){puts(it's defined as a thing that can find other things);}" -Dinderf=; -Dnderfi=; -Dderfin=; -Derfind=; -Dnderfi=;
bebe
Así es, ni siquiera pensé en eso.
maxdefolsch
21

GolfScript, N = 12

wombat"Cute"
ombat" sho"w
mbat"rt-l"wo
bat"egge"wom
at"d Au"womb
twomb"stra"a
wom"lian "bt
ttwomb"mar"t
"sup"wbwomat
"ia"womabbtt
"ls"bawomtbt
aaawomobt"."

El ejemplo de wombat codificado en GolfScript. La salida es

Cute short-legged Australian marsupials.

como se da en la pregunta. La parte interesante es que puede usar la mayoría de las palabras y respuestas y simplemente insertar las letras correspondientes en la solución, siempre y cuando no produzca un GolfScript integrado que sea muy raro p, ya que nson obvias. Todas las demás combinaciones conducen a variables de GolfScript válidas que no son opcionales por defecto.

Howard
fuente
Así que supongo que uno podría reducir esto significativamente con una frase inteligente que usa muchas de las letras de la palabra.
Martin Ender
@ MartinBüttner Lo intenté, pero los 36 caracteres lo hacen bastante difícil.
Howard
Usé su enfoque para una presentación "cuadrada" (ver más abajo). En realidad es un personaje más grande que el tuyo, pero con un cambio inteligente podría ser posible comprimirlo.
Martin Ender
18

Befunge-98 (n = 12)

Elegí Kelvin porque tenía av. Salidaskelvin is like celsius but it's lowe

"ewol "vnlik 
"t's"ke<ilnv 
kelniv"t i"< 
elnik>"ub "v 
nkv"elsius"< 
ln>"c eki"vl 
v0ke"is l"<n 
>" nivlek" v 
ielnv,k4'k#< 
 vivlevlnek< 
 ilkkninevei 
  elnkn vnle
waylon531
fuente
desafortunadamente, Si temptiene 29 caracteres menos de 36.;)
Martin Ender
Parece que cada vez que publico en Befunge-93, alguien sigue con una solución similar Befunge-98 ...
Zaq
@Zaq no te preocupes, -93 es más divertido de todos modos.
seequ
La línea 2 no tiene i.
Cisma
Además, a la línea 4 le falta una ky a la columna 9 le falta una e.
Cisma
11

Python, n = 15

La palabra es "canoas"

def canoe(s='S\
ecret weap',sno
='ce',a='ons o\
f the Can',oces
=1,oesn=1,c='a\
dian navy',cose
="""aoenscanaen
canceessanoeeca
anoasanooscanoe
noescccccaeescc
oescneocaeoesca
escaoescan"""):
 canoes=s + a+c
 print (canoes)
s=1;    canoe()

Salida:

Secret weapon of the Canadian navy
Gerrat
fuente
Se trata de 16x15!
Cisma
Gracias ... en algún momento conté mal y sentí la necesidad de agregar esa sola línea canoesallí. Fijo.
Gerrat
10

Perl - repetir - 11

$repeat=qq(
repeat);say
"repeat\n"x
length'pear
repeatrepea
epeatrepeat
peatrepeatr
eatrepeatre
atrepeatrep
trepeatrepe
repeat....'

Salida:

repeat
repeat
repeat
repeat
...keeps going

Mirando hacia atrás, tal vez debería haber hecho esto un bucle.

hmatt1
fuente
12
No cumple con la palabra que no tiene requisitos de letras repetidas .
Howard
3
@Howard Sin embargo, hay al menos 2 epor línea, así que pensé que podría publicarlo.
hmatt1
6

Rubí , hatersN = 10

Después de horas de intentos a mano, escribiendo un programa generador y ajustando parámetros, ¡finalmente encontré una solución para N = 10!

aser=ts=?h
tah=re=?\s
sh='Haters
nurse hate
in hardest
hearts.'  
rtse=erha=
era=sh.tr'
',tah;aser
 puts erha

Salidas Haters nurse hate in hardest hearts., exactamente 36 caracteres. Pruébalo en línea!

Elegí Ruby porque sus variables no necesitan $( Perl ), y las cadenas entre comillas simples pueden contener nuevas líneas ( Python ). El hecho de que el trmétodo use dos de las letras de mi palabra fue una ventaja inesperada. El núcleo del programa es sencillo:

# Store the definition, with newlines
sh='Haters
nurse hate
in hardest
hearts.'
# Transliterate newline to space
erha=sh.tr('
',' ')
# Output
puts erha

Conseguir que todas las letras se alineen, por supuesto, no fue simple. Pasé por varias variaciones en la misma estructura y aprendí un par de cosas sobre Ruby en el proceso ( trno necesita paréntesis y ?\ses otra forma de obtener un espacio). Hubo muchos callejones sin salida y varios falsos positivos. Y luego ... ¡éxito!

Aquí hay un resumen de mi programa generador hackeado, si alguien está interesado.

DLosc
fuente
5

Golfscript (n = 10)

Mi primer golfscript! Se imprimekelvin is like celsius but it's lowe

"kelvin is
like ce"vn
evn"lsiu"k
k"s "elvni
in"bu"kelv
"t "knviel
vl"it'"nke
nevkil"s l
o"ivnkel"w
e"lnevik
waylon531
fuente
¿Qué significa "lowe"?
aditsu
1
dictionary.com dice que puede significar baja
waylon531
Eso solo se refiere al verbo, que significa: quemar; fuego / (de una persona) para sentir emociones fuertes; brillar de emoción. No veo cómo funciona eso aquí.
aditsu
Mira la cita en la parte superior derecha de la página
waylon531
1
Lo siento, pero "lowe" es un poco oscuro. Aceptaré esto si puedes hacerlo "bajo" o "más bajo".
Pasatiempos de Calvin
5

GolfScript, 13x13

No es el más pequeño ...

squae"A squar
"uarsquaresqu
uareq"e has f
"resuaresquar
resqa"our equ
"squresquares
quars"al side
"arequaresqua
areuq"s and r
"esqaresquare
esqur"ight an
"quaesquaresq
quar"gles..."

... pero ...

A squar
e has f
our equ
al side
s and r
ight an
gles...

(Tener los saltos de línea dentro de las palabras es intencional, porque de lo contrario tendría espacios en blanco iniciales o finales que se verían menos cuadrados).

Martin Ender
fuente
4

Python, N = 11

La palabra es "padre". Este código no es bonito, pero funciona.

eprnt=" a "
at="person"
rnep="that"
nrpt="made"
ea= " prnt"
e="parent:"
pa =(eprnt+
at+" "+rnep
+ea[0]+nrpt
+ eprnt+at)
print(e+pa)

Salida: parent: a person that made a person

Editar: de alguna manera me perdí el hecho de que las columnas también deben contener la palabra. En retrospectiva, un lenguaje que incluye caracteres finales como parte del lenguaje no era adecuado para este rompecabezas.

Thomas
fuente
44
Agradable, pero no todas las columnas contienen la palabra parent. El primero, por ejemplo, no tiene un a.
ProgramFOX
2
Todavía le falta un montón. pfalta en 6 y 8 a.: 4, 6, 7, 11 r.: 4, 10, 11 e.: 4, 5, 8, 9, 11 n.: 3, 5, 7, 11 t.: 1, 3, 6, 8.
Cisma
2

Pip , n = 14 (sin competencia)

El lenguaje es más nuevo que la pregunta. La palabra es quines. 1

n_n|quine say&
qu ines     qi
as  harle quin
se?(equins)ns.
 plums|quinces
|quicken bus++
iness|q++++i u
u:++ingl es?eq
ni*:u; s|qe:",
which "Rns|que
eRL:i|quotesne
PUsn    quiet!
u|qe."print".s
JW"quines"  :)

Da como resultado la siguiente definición (ciertamente incompleta):

quines imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, qué imprimir quines, que imprimen quines, que imprimen quines, que imprimen quines, que imprimen quines

Pruébalo en línea!

La parte significativa del código se ejecuta así:

++i          Increment i (initially set to 0)
++++i        Increment i twice
u:++i        Increment i again and assign to u (i & u are now 4)
i*:u         Multiply i by u in-place (i is now 16)
e:",         Assign the string ",\nwhich " to e...
which "Rns   after replacing the newline with a space
eRL:i        Make a list of 16 copies of e and assign back to e
ePUs         Push a space to the front of list e
e."print".s  Concatenate "print" and a space to each element of e...
JW"quines"   and join on "quines", wrapping the result in "quines"

El resto del código es arbitrario sin operaciones. La principal dificultad en las secciones de "relleno" nunca fue evaluar q, ya que solicitará al usuario una línea de entrada (no es un problema en TIO, pero quería corregirlo en todos los entornos). Usé operadores lógicos de cortocircuito |y &, y ternario ?, para evitar qla evaluación.

1 Dictionary.com tiene una entrada para quine , con una sección sobre el significado de la programación en la parte inferior. Como "quine" es un sustantivo contable, diría que "quines" es una palabra válida.

DLosc
fuente
1

Javascript, N = 8

Mi palabra es alertas .

s= alert
alert(s+
s+alert)
aaltrsee
leraatts
ertsalar
rtsaaela
tsaesarl

Mi código genera la definición de la función de alerta de JavaScript varias veces. La definición de alerta de Javascript es "función de alerta () {[código nativo]}".

Solo las primeras tres líneas de código contribuyen realmente a la salida. Las últimas 5 líneas son errores de sintaxis, pero las reglas originales establecieron que no todo el código debe ejecutarse siempre que la salida sea correcta.

Aquí hay un enlace al violín: http://jsfiddle.net/tze76pum/

Natillas de ruibarbo
fuente
1
Buen inglés, pero no del todo común.
Aficiones de Calvin