Вступ:
Я бачив, що зараз існує лише одна проблема, пов’язана з бадмінтоном . Оскільки я сам граю в бадмінтон (останні 13 років), я подумав, що додаю деякі проблеми, пов'язані з бадмінтоном. Ось другий ( перший можна знайти тут ):
Виклик:
Деякі правила щодо бадмінтону служать:
- Подача завжди буде робитися по діагоналі по мережі.
- Ви завжди повинні обслуговуватись після лінії, паралельної та найближчої до мережі.
- Площа, в якій вам дозволяється обслуговувати, відрізняється залежно від того, чи є одинарний (1 проти 1) або подвійний / мікс (2 проти 2).
- Для синглів (1 проти 1) синя зона на малюнку нижче - це те, де вам дозволяється служити. Це стосується деталі ззаду, але виключаючи деталі збоку.
- Для парних / міксів (2 проти 2) зелена зона на малюнку нижче - це те, де вам дозволяється сервер. Отже, це виключає частину на задній частині, але включаючи деталі збоку.
- Ви можете не стояти на строках під час подачі. Але човен все одно буде всередині, якщо вони приземляться на вершині лінії.
Ось макет поля для бадмінтону:
Правила виклику:
Вхід:
Вам будуть надані два входи:
- Щось, що вказує на те, граємо ми сингл або дублінг / мікс
- Щось, що вказує, з якого блоку ви обслуговуєте (тобто
[1,2,3,4]
або['A','B','C','D']
як використовується на малюнку вище).
Вихід:
Лише відповідні рядки для поточного сервісу (включаючи мережу), включаючи F
вказати, звідки ви обслуговуєте, та кілька, T
щоб вказати, де ви потенційно можете служити.
Хоча насправді вам дозволяється служити з та в будь-якій точці визначених районів, ми припускаємо, що людина, яка буде обслуговуватись, завжди стоїть у кутку зони обслуговування, яка закривається до середини мережі, де ви будете розміщувати то F
. І вони будуть служити в будь-якому з чотирьох куточків району, де вони повинні служити, і там, де ви розмістите T
s.
Як ASCII-art, все поле для бадмінтону було б таким (цифри додаються, щоб вам не довелося їх рахувати самостійно):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Приклади:
Ось два приклади для виведення лише відповідних частин подачі:
Вхід: Одномісний і обслуговуючий блок A
Вихід:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Як бачимо, F
додається в кутку в блоці, але T
вони замінюють +
вихід ASCI-art.
Вхід: подвійний і обслуговуючий блок C
Вихід:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Правила виклику:
- Провідні та кінцеві нові рядки необов’язкові (включаючи провідні та кінцеві два порожні рядки, коли введення одиничне). Додаткові місця також необов’язкові. Однак провідні місця обов'язкові.
- Будь-які чотири розумні різні дані, які вказують, з якого блоку ми обслуговуємось, дозволені (для цілих чисел, що знаходяться в межах [-999,999]); а також будь-які два розумні різні входи, які вказують, чи є однократним чи подвійним / змішуванням (будь-ласка, зверніть увагу на цю заборонену лазівку ). Будь ласка, вкажіть I / O, який ви використали у своїй відповіді!
- Ви можете використовувати малі
f
та малі регістриt
замістьF
іT
. - Ви можете повернути список рядків або матриць символів замість повернення або друку одного вихідного рядка.
Загальні правила:
- Це є код-гольф, тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам з кодовим гольфом відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила з правилами вводу / виводу за замовчуванням , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повним програмами типу повернення. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду (тобто TIO ).
- Також настійно рекомендується додавати пояснення до своєї відповіді.