Entrada:
1
X
X
X
X XX XXXXXX X X X
X XX XXXXXX X X X
XXX X XX XXXXXX X X X
XXX X XX XXXXXX X X X
Salida:
X.
X..
X...
X.... XX. XXXXXX. X.X.X.
X..... XX.. XXXXXX.. X.X.X..
XXX. X......XX... XXXXXX... X.X.X...
XXX.. X......XX....XXXXXX.... X.X.X....
Entrada:
2
XX
XX
XX
XX
XX
XX XX
XX XX
XX XX
XX XX
Salida:
.XX
..XX
...XX
....XX
.....XX
..XX..XX
...XX..XX
....XX..XX
.....XX..XX
Especificación:
- Debes tomar como entrada
- Una bandera que indica si la luz proviene de la parte superior izquierda o superior derecha. Esto puede ser
1
o2
,-1
o1
,0
o65536
, o lo que sea conveniente para usted, siempre y cuando ambos indicadores sean enteros. - Filas compuestas por uno
X
otodos, todos de la misma longitud en caracteres (es decir, rellenados con
)
- Todos
X
s estarán en la última fila oX
debajo de ellos (lo que significa que no hay edificios flotantes)
- Todos
- Una bandera que indica si la luz proviene de la parte superior izquierda o superior derecha. Esto puede ser
- Debe generar las filas (edificios) con sombras agregadas. Esto se hace con el siguiente procedimiento:
- Si la luz proviene de la esquina superior izquierda, dibuje un triángulo rectángulo de
.
s con la misma altura y anchura que la altura del edificio, comenzando desde un espacio más allá de su borde derecho y hacia la derecha. - De lo contrario, si es desde la parte superior derecha, haga lo mismo, pero comience desde un espacio más allá de su borde izquierdo y apunte hacia la izquierda.
- Recuerda no alterar
X
s cambiándolos a.
s; déjalos como están. - Siempre habrá "espacio" para sus sombras, es decir, si hay un edificio de 3 espacios de altura al final, habrá al menos 3 espacios de relleno después.
- Si la luz proviene de la esquina superior izquierda, dibuje un triángulo rectángulo de
- Este es el código de golf , por lo que el código más corto en bytes ganará
potato
y while(1){}
. Como se cita en la pregunta, "lo que sea conveniente".
Regex.Replace
que no puedo solucionar ... ¿Tengo dos problemas ahora?
{}
y{-1*}
como valores de bandera?