La mayoría de las personas están familiarizadas con el tropo sobre contar ovejas para conciliar el sueño. Hay un rebaño de ovejas, algunas de ellas saltando sobre una cerca, y cuentas las ovejas mientras saltan. Supuestamente, esto ayuda a calmar tu mente y te pone en un estado de sueño para que te duermas.
Aquí hay una oveja ASCII mirando hacia la derecha, esperando ser contada:
'00^>
||
Aquí hay una oveja ASCII saltando sobre una cerca:
'00^>
/\
++
Aquí hay uno hacia la izquierda, que ya se ha contado:
<^00'
||
El reto
Dados dos enteros de entrada ny m, al n > 2describir cuántas ovejas en total y m > 0decir cuántas ovejas ya se han contado, genera una representación artística ASCII de contar ovejas para conciliar el sueño.
Ahora para el giro:
- Debido al tamaño de los corrales en los que se encuentran las ovejas, la fila superior solo puede contener un máximo de
10ovejas, sin contar las ovejas que saltan actualmente, que también deben estar siempre en la fila superior. - Las filas siguientes no pueden tener las ovejas fuera de sus corrales respectivos (no puede tener más ovejas a la izquierda en la segunda fila que en la primera fila, y lo mismo para la derecha).
- Si hay
11o más ovejas en total, la fila superior debe tener10más las ovejas saltarinas. - El espacio en blanco inicial / final y el espacio en blanco entre las ovejas no importa, siempre que:
- Hay un mínimo de un carácter de espacio en blanco entre ovejas
- Todos los personajes se alinean apropiadamente.
Mientras se cumplan estas reglas, la disposición real de las ovejas depende de su implementación.
Ejemplos
Por ejemplo, aquí está n=3y m=1, el caso más simple.
'00^>
'00^> /\ <^00'
|| ++ ||
Aquí está n=11y m=6, la mayoría de las ovejas que pueden caber en una línea horizontal.
'00^>
'00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00'
|| || || || ++ || || || || || ||
Aquí hay un ejemplo diferente de eso, con n=11ym=1
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00'
|| || || || || || || || || ++ ||
Un ejemplo más grande con n=30ym=12
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> <^00' <^00'
|| || || || || || || || || ||
'00^> <^00' <^00'
|| || ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
<^00' <^00'
|| ||
Aquí hay un ejemplo con n=17ym=2
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00'
|| || || || || || || || ++ || ||
'00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || ||
Aquí hay un ejemplo con n=19ym=3
'00^>
'00^> '00^> '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00'
|| || || || || || || ++ || || ||
'00^> '00^> '00^> '00^> '00^> '00^> '00^>
|| || || || || || ||
'00^>
||
Tenga en cuenta que todos estos son ejemplos . Para el último, puede terminar creando una matriz vertical de ovejas en el lado derecho, lo que permitirá que el lado izquierdo encaje en dos filas. O tal vez un cuadrado de ovejas de 2x2 en el lado derecho, que también cabría las ovejas del lado izquierdo en dos filas. Etc.
E / S y reglas
- La entrada puede tomarse en cualquier formato razonable y por cualquier método conveniente .
- Las nuevas líneas iniciales / finales u otros espacios en blanco son opcionales, siempre que los caracteres se alineen adecuadamente.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- La salida puede ser a la consola, devuelta como una lista de cadenas, devuelta como una sola cadena, etc.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
n=11ym=9
n=11eso 0<m<=10. Esto lo obliga a tener todas las ovejas en la fila superior y un número dinámico de ovejas a la izquierda ( n-1-m) y derecha ( m) de la cerca y no puede usar tamaños de corral fijos.