Wprowadzenie:
Widziałem, że teraz jest tylko jedno wyzwanie związane z badmintonem . Ponieważ sam gram w badmintona (od 13 lat), pomyślałem, że dodam kilka wyzwań związanych z badmintonem. Oto drugi ( pierwszy można znaleźć tutaj ):
Wyzwanie:
Niektóre zasady dotyczące badmintona służą:
- Podanie zawsze będzie wykonywane po przekątnej przez sieć.
- Zawsze musisz służyć po linii równoległej i najbliższej sieci.
- Obszar, w którym możesz służyć, różni się w zależności od tego, czy jest to singiel (1 vs 1), czy podwójny / mix (2 vs 2).
- W przypadku singli (1 vs 1) niebieski obszar na poniższym obrazku to miejsce, w którym możesz serwować. Dotyczy to więc części z tyłu, ale z wyłączeniem części z boku.
- W przypadku debla / mixu (2 vs 2), zielony obszar na obrazku poniżej to miejsce, w którym możesz serwować. To wyklucza część z tyłu, ale obejmuje części z boku.
- Podczas serwowania nie możesz stać na linii. Ale prom nadal będzie w środku, jeśli wyląduje na linii.
Oto układ boiska do badmintona:

Zasady konkursu:
Wejście:
Otrzymasz dwa dane wejściowe:
- Coś, co wskazuje, czy gramy pojedynczy czy podwójny / mix (tj. Boolean)
- Coś, co wskazuje, z którego bloku służysz (tj.
[1,2,3,4]Lub['A','B','C','D']jak na powyższym obrazku).
Wynik:
Tylko odpowiednie wiersze dla bieżącego serwowania (w tym sieć), w tym znak Fwskazujący, skąd serwujesz, oraz wielokrotność Twskazująca, gdzie potencjalnie będziesz służyć.
Chociaż w rzeczywistości możesz serwować z dowolnego miejsca w wyznaczonych obszarach, zakładamy, że osoba, która będzie serwować, będzie zawsze stać w rogu obszaru serwowania blisko środka sieci, czyli tam, gdzie umieścisz F. I będą służyć w dowolnym z czterech rogów obszaru, w którym muszą służyć, czyli tam, gdzie umieścisz je T.
Jako sztuka ASCII całe pole do badmintona wyglądałoby następująco (liczby są dodawane, więc nie musisz ich sam liczyć):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Przykłady:
Oto dwa przykłady wyprowadzania tylko odpowiednich części serw:
Wejście: Pojedynczy i obsługujący blok A
Wyjście:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Jak widać, Fdodaje się go w rogu bloku, ale Tzastępują one +wyjście ASCI-art.
Wejście: Podwój i podaj blok C
Wyjście:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Zasady konkursu:
- Początkowe i końcowe znaki nowej linii są opcjonalne (w tym początkowe i końcowe dwie puste linie, gdy dane wejściowe są pojedyncze). Spacje końcowe są również opcjonalne. Wiodące miejsca są jednak obowiązkowe.
- Dozwolone są cztery rozsądne odrębne dane wejściowe wskazujące, z którego bloku obsługujemy (dla liczb całkowitych, pozostań w zakresie [-999,999]); a także dowolne dwa uzasadnione odrębne dane wejściowe wskazujące, czy jest to pojedynczy czy podwójny / mix (należy jednak zwrócić uwagę na tę istotną zabronioną lukę ). Podaj we / wy użyte w odpowiedzi!
- Możesz używać małych
fit(lub mieszanych) liter zamiastFiT. - Możesz zwrócić listę linii lub macierzy znaków zamiast zwracać lub drukować pojedynczy ciąg wyjściowy.
Główne zasady:
- To jest golf-golf, więc najkrótsza odpowiedź w bajtach wygrywa.
Nie pozwól, aby języki code-golf zniechęciły Cię do publikowania odpowiedzi w językach innych niż kodowanie Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.