En este desafío, debe tomar dos números (separados por un espacio) como entrada y salida de un triángulo rectángulo ASCII, compuesto de x
s.
El primer número será el ancho y la altura del triángulo que debe generar. El segundo número será en qué esquina estará el ángulo recto. Las esquinas están numeradas del 1 al 4, comenzando en la esquina superior izquierda y siguiendo el orden de lectura en inglés:
1 2
3 4
Por ejemplo (entradas y sus respectivas salidas triangulares):
INPUT | 3 1 | 3 2 | 3 3 | 3 4
------+-----+-----+-----+----
OUT- | xxx | xxx | x | x
PUT | xx | xx | xx | xx
| x | x | xxx | xxx
La salida de su programa debe coincidir con estos ejemplos exactamente para sus respectivas entradas.
La entrada siempre será válida: el primer número será un entero ≥1, y el segundo número será 1, 2, 3 o 4.
Este es el código de golf ; el código más corto (en el recuento de caracteres) gana.
fuente
(⍎⍵⌷'functions')
parte antes de decidir cómo interpretar toda la declaración? Considere por ejemplo1+(⍵⌷'12+')|40
. Ni siquiera sabría si|
es monádico o diádico antes de⍎
poner esa porción entre paréntesis. Todo el árbol de sintaxis abstracta cambia según la evaluación.1+(⍎⍵⌷'12+')|40
... no me dejarás editar.f ← { [ }
no da un error!f 1÷0
da ... un error de dominio ! (debido a la división por cero). Solo cuando llama a la función comof 123
si recibiera un error de sintaxis . He aquí: imgur.com/jtmdi4BRuby,
11611510996Comenzaré con mi propia solución.
Solo sé que me vencerá una solución GolfScript de 30 caracteres casi al instante: P
¡Gracias a Minitech por eliminar 19 personajes (wow)!
fuente
==0
, puedes usar<1
.?x*x
salva a otro personaje. Además,puts i[1]%2<1?t.rjust(s):t}
haría el truco, ¿verdad??
? ¿Es eso necesario? Además, creo que puedes hacer lo mismo con elr=
.1?
como un token único, y el espacio final porque de lo contrario se analiza como?t
(que es equivalente a't'
). ¿Cómo propones reestructurar lar
pieza?GolfScript (
3433 caracteres)Es una pena que las esquinas no estén numeradas en rotación, porque eso permitiría un enfoque más elegante de construir una matriz y luego rotarla
n
veces:fuente
C # - 195
Formateado:
fuente
Golfscript,
39 3635 caracteresdemostración en vivo: http://golfscript.apphb.com/?c=OyczIDInCn5cOnkseycgJyoneCd5Kit5PC0xIDIkPyV9JS0xQDI%2BPyVuKgo%3D
lástima que no sean 30 caracteres según lo solicitado
fuente
1${-1%}*
con-1 2$?%
y\2>{-1%}*
con\2>-1\?%
te dará 2 personajes.-1 2
puede escribir @Volatility0~2
~(\:y,{{>'x '=}+y,%0~2$?%}%\2&(%n*
Mathematica 122 (104?)
Bajo una interpretación liberal de "salida", funcionará lo siguiente (104 caracteres).
Si se permitiera la entrada en forma de una lista, bastaría lo siguiente (75 caracteres):
fuente
J,
595542383736 caracteresSi se permite tener la entrada al final del programa:
Si no (para 3 caracteres adicionales):
Uso:
o
Creo que esto podría ser un poco más corto ya que la mayoría de los personajes son corchetes y mayúsculas para mantenerlo en un estilo implícito.
Editar
Usando un gerundio y el verbo del orden del día ha cortado algunos caracteres, pero todavía hay demasiadas mayúsculas para mi gusto.
Edición 2
Eso es un poco más parecido. Volcar la agenda para obtener una lista de cuántas rotaciones son necesarias elimina la mayoría de los corchetes adicionales y algunos topes.
Editar 3
Se deshizo del último límite extraño y un par de paréntesis en el proceso. Necesita encontrar una forma más barata de codificar el número de rotaciones requeridas.
Edición 4 Use el prefijo en lugar del sufijo para cortar un personaje. Permite una forma diferente de crear la lista que no guarda ningún carácter. Tío.
Edición 5
Usando una fórmula para cortar otro personaje. Todavía siento que esta parte podría ser más corta.
fuente
Python 106 Personajes
fuente
Pitón 3, 91
Basado en la respuesta de Abhijit.
Se modificó la creación de la cadena de salida para evitar la suma de cadenas y los
1
s feos enrange
. Python 3 se deshace de laraw_
deraw_input
, pero no hace necesario el uso//
de División de enteros y añadir los paréntesis paraprint
, de manera que sólo guarda un carácter.fuente
Gatito , 140
Sin golf:
Evidencia de que necesito implementar una sobrecarga y desarrollar la biblioteca estándar.
fuente