Introdução:
Vi que havia apenas mais um desafio relacionado ao badminton no momento . Como eu mesmo jogo badminton (nos últimos 13 anos), imaginei que adicionaria alguns desafios relacionados ao badminton. Aqui o segundo (o primeiro pode ser encontrado aqui ):
Desafio:
Algumas regras sobre o badminton servem:
- Um saque sempre será feito na diagonal pela rede.
- Você deve sempre servir após a linha paralela e mais próxima da rede.
- A área na qual você pode veicular difere dependendo se é um single (1 vs 1) ou duplo / mix (2 vs 2).
- Para solteiros (1 vs 1), a área azul na figura abaixo é onde você pode servir. Portanto, isso inclui a parte de trás, mas exclui as partes ao lado.
- Para duplas / mixagens (2 x 2), a área verde na figura abaixo é onde você tem permissão para servidor. Portanto, isso exclui a parte de trás, mas inclui as partes ao lado.
- Você pode não ficar na linha ao servir. Mas o ônibus ainda estará dentro se pousar em cima de uma linha.
Aqui o layout de um campo de badminton:

Regras do desafio:
Entrada:
Você receberá duas entradas:
- Algo para indicar se estamos tocando um single ou double / mix (ou seja, um booleano)
- Algo para indicar de qual bloco você está servindo (por exemplo,
[1,2,3,4]ou['A','B','C','D']conforme usado na figura acima).
Resultado:
Somente as linhas relevantes para a veiculação atual (incluindo a rede), incluindo uma Fpara indicar de onde você é veiculado e várias Tpara indicar para onde você potencialmente será veiculado.
Embora, na realidade, você possa servir de e para qualquer lugar nas áreas designadas, presumimos que uma pessoa que servirá estará sempre no canto da área de serviço perto do meio da rede, que é onde você colocará o F. E eles servirão para qualquer um dos quatro cantos da área em que devem servir, que é onde você colocará os T.
Como arte ASCII, todo o campo de badminton seria o seguinte (os números são adicionados para que você não precise contá-los):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Exemplos:
Aqui estão dois exemplos para gerar apenas as partes relevantes do serviço:
Entrada: Escolha e sirva o bloco A
Saída:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Como você pode ver, o Fé adicionado no canto dentro do bloco, mas Testá substituindo o +na saída ASCI-art.
Entrada: Dobrar e servir o bloco C
Saída:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Regras do desafio:
- As novas linhas à esquerda e à direita são opcionais (incluindo as duas linhas vazias à esquerda e à direita quando a entrada é única). Os espaços à direita também são opcionais. Espaços principais são obrigatórios no entanto.
- Quaisquer quatro entradas distintas razoáveis para indicar de qual bloco estamos servindo são permitidas (para números inteiros, permaneça dentro do intervalo [-999.999]); bem como quaisquer duas entradas distintas razoáveis para indicar se é um single ou double / mix (observe essa brecha proibida relevante ). Indique a E / S que você usou em sua resposta!
- Você tem permissão para usar letras minúsculas
fet(ou maiúsculas e minúsculas ) em vez deFeT. - Você tem permissão para retornar uma lista de linhas ou matriz de caracteres em vez de retornar ou imprimir uma única sequência de saída.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta com as regras de E / S padrão , para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código (ou seja, TIO ).
- Além disso, é altamente recomendável adicionar uma explicação para sua resposta.