Debe generar un estereograma de texto de acuerdo con una cadena de entrada que contiene un párrafo de texto, una línea vacía y luego el mensaje oculto. El resultado se mostrará como un par de párrafos, uno con un espaciado diferente que provoca el efecto de que se levante cuando se ve estereográficamente (se puede encontrar una explicación aquí ).
Ejemplo
Entrada:
I invented vegetarianism. It is a diet involving no meat, just vegetables. It is also common in cows - they are awesome.
vegetarianism. is awesome.
Salida:
I invented I invented
vegetarianism. vegetarianism.
It is a diet It is a diet
involving no involving no
meat, just meat, just
vegetables. It vegetables. It
is also common is also common
in cows - they in cows - they
are awesome. are awesome.
Bonos
- Agregue la opción para elegir entre paralelos y ojos cruzados como entrada del usuario (-20)
- Ancho de columna ajustable como entrada del usuario (-50)
Este es el código de golf, por lo que el código más corto después de los bonos gana.
Respuestas:
Bash, sed:
228223197(242 - 70) = 172Si el script está en un archivo ejecutable llamado "estéreo", escriba
column_width es un número; 25-45 funcionará, el valor predeterminado es 35.
page_width es un número, debe ser aproximadamente el doble del column_width, el valor predeterminado es 80
Para ver con los ojos cruzados, use "r l" como el 4to argumento. El valor predeterminado es "l r", que se configura para visualización paralela.
EDITAR: reescribió para dividir el archivo en una palabra por línea, luego vuelva a armar al final. Nota: se reserva el signo "=" para su propio uso. Cualquier signo "=" en el archivo de entrada se convertirá en blanco.
EDITAR: Si su mensaje tiene signos "=" en él, puede elegir otro símbolo para que lo use el script, proporcionándolo como el 5º parámetro.
Ejemplo
Entrada: vegetarianismo.txt:
Resultado
./stereo vegetarianism.txt 32 72 "l r": | expandir (usando los dos puntos como su símbolo interno de trabajo)
./stereo washington.txt 35 75 "l r" | expandir
El "| expandir" no es necesario, pero al cambiar la salida por 4 lugares, las TAB se manejan incorrectamente. Se podría poner en el script a un costo de 7 bytes.
Variación de ImageMagick
Reemplazar la última línea con un comando ImageMagick de texto a imagen:
En este caso, la "r" y la "l" para visión cruzada versus visión paralela son argumentos separados:
./im_stereo vegetarianismo.txt 40 80 lr =
(fuente: simplesystems.org )
EDITAR 3: Variación de ImageMagick añadida.
fuente
TeX 212
Estoy usando un sistema de composición tipográfica, no ASCII. El ancho de la columna se puede cambiar cambiando
90pt
en la cuarta línea, pero no sé si eso es suficiente para calificar para el descuento de 50 bytes. La distancia entre las dos copias del texto se puede cambiar cambiando el9pt
, también en la cuarta línea. El código probablemente se puede acortar. Se puede reemplazar cada nueva línea por un solo espacio, pero no eliminarlas por completo.Después de llamar
tex filename.tex
al terminal, se le pide al usuario que dé el texto principal, luego se le solicita nuevamente una lista de palabras para cambiar. No hay una línea vacía en el medio. La lista de palabras (separadas por espacios) en la segunda línea debe aparecer exactamente como en el texto principal (la puntuación se trata como lo haría una letra, solo los espacios delimitan palabras).fuente
Javascript 391 (441-50)
(Mi primer código de golf)
Resultado
Código largo:
fuente
Q='length'
y luego reemplaza cosas comoA.length
conA[Q]
.Javascript 493 (expectativas mínimas)
Este código configura dos matrices de líneas (izquierda y derecha), las organiza en una cadena e imprime en la
f12
consola.Esta es solo una respuesta mínima, no destinada a ganar.
fuente
L=b=>b.length;c=console.log;p=prompt;r=(l=p().split(g=" ")).slice(),m=p().split(g),s=(f=[]).slice(),n=w=a="";for(i=0;i<L(l);i++)l[i]==m[0]&&(m.shift(),l[i]=g+r[i],r[i]+=g),L(l[i])+1>w&&(w=L(l[i])+1);for(;L(l);){f[L(f)]="";for(s[L(s)]="";L(l)&&L(f[L(f)-1])+L(l[0])<w;)f[L(f)-1]+=l[0]+g,s[L(s)-1]+=r[0]+g,l.shift(),r.shift();f[L(f)-1]+=g.repeat(w-L(f[L(f)-1]))}for(c(f,s);L(f);)a+=f[0]+s[0]+"\n",f.shift(),s.shift();c(a)
GolfScript 209 (279-50-20)
Este es mi primer gran programa de GolfScript. No me sorprendería si hay optimizaciones para tener. Ambas bonificaciones son compatibles; se espera que se encuentren después de las entradas del mensaje, como:
Si guardó ese archivo
input
(y descargó GolfScript ) puede invocar el script con:Golfed
Sin golf
fuente
JavaScript 391
fuente