Inspirado por este desafío
Objetivo:
El objetivo es dibujar olas rompiendo en una playa.
Entrada:
Se le darán 3 enteros (en el formato que desee) como entrada.
El primer número entero será la longitud del dibujo. El segundo número entero será el índice del banco de arena, donde las olas comienzan a formar crestas (al menos a 3 espacios de la playa).
El tercer número entero será el espacio entre las olas (al menos 3, puede ser mayor que la longitud del dibujo, en cuyo caso solo dibuja una onda)
Salida:
La salida será una caja de caracteres que muestra las olas rompiendo en la playa. El dibujo debe terminar cuando la primera ola haya terminado de estrellarse en la playa.
Al principio, la onda se muestra como un oleaje ( _-_
).
A medida que la ola pasa por el banco de arena, comienza a subir ( /c_
).
Finalmente, la ola choca contra la playa ( /c.
=> _-_
=> ___
=> __.
).
Ejemplos:
Entrada: 14 4 6
Salida:
-___________..
_-__________..
__-_________..
___-________..
___/c_______..
____/c______..
-____/c_____..
_-____/c____..
__-____/c___..
___-____/c__..
___/c____/c_..
____/c____/c..
-____/c____-_.
_-____/c_____.
__-____/c___..
Entrada: 10, 2, 11
Salida:
-_______..
_-______..
_/c_____..
__/c____..
___/c___..
____/c__..
_____/c_..
______/c..
_______-_.
_________.
________..
Entrada: 6 0 3
c___..
/c__..
_/c_..
c_/c..
/c_-_.
_/c__.
c_/c..
Reglas:
Se aplican lagunas estándar
Este es el código de golf, por lo que el código más corto gana
·
no es ASCII, que puede excluir algunos idiomas. ¿Puede ser reemplazado por.
?·
lugar del período ASCII? (En realidad es una gran victoria en mi código).Respuestas:
JavaScript (ES6),
250243 bytesEste código está asumiendo la página de códigos # 1252 y está usando el
·
carácter (0xB7). Toma la entrada como 3 parámetros distintos(a,b,c)
.Cómo funciona
Este código comienza con una cadena como
-______··
y aplica sucesivas expresiones regulares en cada iteración para animar las ondas.Por ejemplo
-__
se reemplaza con_-_
.Al principio, parecía una idea razonable. Sin embargo, el hecho de que la cadena pueda comenzar con un
c
(como lo hace en el tercer caso de prueba) hace que las cosas sean mucho más complicadas.Casos de prueba
Mostrar fragmento de código
fuente
Lote,
273243 bytesNota: Espacio final en la línea 4. Si solo los dos caracteres de la playa fueran diferentes, ¡podría guardar 3 bytes y superar a JavaScript!
fuente