Introduzione:
Ho visto che c'era solo un'altra sfida legata al badminton in questo momento . Da quando gioco a badminton da solo (negli ultimi 13 anni), ho pensato di aggiungere alcune sfide legate al badminton. Qui il secondo (il primo può essere trovato qui ):
Sfida:
Alcune regole sul badminton servono:
- Un servizio sarà sempre fatto in diagonale sulla rete.
- Devi sempre servire dopo la linea parallela e più vicina alla rete.
- L'area in cui è consentito servire varia a seconda che si tratti di un singolo (1 vs 1) o doppio / mix (2 vs 2).
- Per i single (1 vs 1), l'area blu nella figura in basso è dove è consentito servire. Quindi questo include la parte sul retro, ma esclude le parti sul lato.
- Per i doppi / mix (2 vs 2), l'area verde nella figura seguente è dove è consentito il server. Quindi questo esclude la parte posteriore, ma include anche le parti laterali.
- Non puoi stare in piedi durante il servizio. Ma la navetta sarà ancora dentro se atterrano su una linea.
Ecco il layout di un campo da badminton:

Regole della sfida:
Ingresso:
Ti verranno dati due input:
- Qualcosa per indicare se stiamo suonando un singolo o doppio / mix (cioè un booleano)
- Qualcosa per indicare da quale blocco stai servendo (ovvero
[1,2,3,4]o['A','B','C','D']come usato nella foto sopra).
Produzione:
Solo le righe pertinenti per il servizio corrente (inclusa la rete), incluso un Fper indicare da dove servi e multiplo Tper indicare dove servirai potenzialmente.
Sebbene in realtà ti sia permesso di servire da e verso qualsiasi area designata, supponiamo che una persona che servirà rimarrà sempre nell'angolo dell'area di servizio che si chiude al centro della rete, che è dove posizionerai il F. E serviranno a uno dei quattro angoli dell'area in cui devono servire, che è dove posizionerai la Ts.
Come arte ASCII, l'intero campo di badminton sarebbe il seguente (i numeri vengono aggiunti in modo da non doverli contare da soli):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Esempi:
Ecco due esempi per l'output solo delle parti rilevanti del servizio:
Ingresso: blocco singolo e di servizio A
Uscita:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Come puoi vedere, Fviene aggiunto nell'angolo all'interno del blocco, ma Tstanno sostituendo l' +output nell'ASCI-art.
Ingresso: doppio e blocco di blocco C
Uscita:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Regole della sfida:
- Le nuove righe iniziali e finali sono facoltative (comprese le due righe vuote iniziali e finali quando l'input è singolo). Anche gli spazi finali sono opzionali. Gli spazi guida sono tuttavia obbligatori.
- Sono consentiti quattro input distinti ragionevoli per indicare da quale blocco stiamo servendo (per numeri interi, rimanere nell'intervallo [-999.999]); così come ogni due input distinti ragionevoli per indicare se si tratta di un singolo o doppio / mix (si noti tuttavia questa scappatoia proibita pertinente ). Indica l'I / O che hai usato nella tua risposta!
- È consentito utilizzare lettere minuscole
fet(o maiuscole / minuscole ) anzichéFeT. - È consentito restituire un elenco di righe o matrici di caratteri anziché restituire o stampare una singola stringa di output.
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Le regole standard si applicano alla tua risposta con le regole I / O predefinite , quindi puoi utilizzare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice (ad es. TIO ).
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.