Introducción:
Vi que solo había otro desafío relacionado con el bádminton en este momento . Como yo mismo juego al bádminton (durante los últimos 13 años), pensé que agregaría algunos desafíos relacionados con el bádminton. Aquí el segundo (el primero se puede encontrar aquí ):
Desafío:
Algunas reglas sobre el bádminton sirven:
- Un servicio siempre se realizará en diagonal sobre la red.
- Siempre debe servir después de la línea paralela y más cercana a la red.
- El área en la que se le permite servir difiere dependiendo de si es un solo (1 contra 1) o doble / mixto (2 contra 2).
- Para los solteros (1 vs 1), el área azul en la imagen a continuación es donde se les permite servir. Esto incluye la parte posterior, pero excluye las partes laterales.
- Para dobles / mix (2 vs 2), el área verde en la imagen a continuación es donde se le permite al servidor. Esto excluye la parte posterior, pero incluye las partes laterales.
- No puede pararse en las líneas cuando sirve. Pero el transbordador seguirá estando adentro si aterrizan en la parte superior de una línea.
Aquí el diseño de un campo de bádminton:
Reglas de desafío:
Entrada:
Se le darán dos entradas:
- Algo para indicar si estamos jugando un single o doble / mix (es decir, un booleano)
- Algo para indicar desde qué bloque está sirviendo (es decir,
[1,2,3,4]
o['A','B','C','D']
como se usa en la imagen de arriba).
Salida:
Solo las líneas relevantes para el servicio actual (incluida la red), incluido un F
para indicar de dónde sirve, y múltiples T
para indicar dónde potencialmente servirá.
Aunque en realidad se le permite servir desde y hacia cualquier lugar en las áreas designadas, asumimos que una persona que servirá siempre se parará en la esquina del área de servicio y se cerrará en el medio de la red, que es donde colocará el F
. Y servirán en cualquiera de las cuatro esquinas del área donde tienen que servir, que es donde colocará el T
s.
Como ASCII-art, todo el campo de bádminton sería el siguiente (los números se agregan para que no tenga que contarlos usted mismo):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Ejemplos:
Aquí hay dos ejemplos para generar solo las partes relevantes del servicio:
Entrada: bloque individual y de servicio A
Salida:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Como puede ver, el F
se agrega en la esquina dentro del bloque, pero T
está reemplazando el +
en la salida de arte ASCI.
Entrada: doble y servir bloque C
Salida:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Reglas de desafío:
- Las líneas nuevas iniciales y finales son opcionales (incluidas las dos líneas vacías iniciales y finales cuando la entrada es única). Los espacios finales también son opcionales. Sin embargo, los espacios iniciales son obligatorios.
- Se permiten cuatro entradas distintas razonables para indicar desde qué bloque estamos sirviendo (para enteros, permanezca dentro del rango [-999,999]); así como también dos entradas distintas razonables para indicar si es simple o doble / mix (tenga en cuenta esta escapatoria prohibida relevante ). ¡Indique la E / S que utilizó en su respuesta!
- Puede usar minúsculas
f
yt
(o mayúsculas y minúsculas ) en lugar deF
yT
. - Se le permite devolver una lista de líneas o matriz de caracteres en lugar de devolver o imprimir una sola cadena de salida.
Reglas generales:
- Esto es código-golf, la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.