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 F
wskazujący, skąd serwujesz, oraz wielokrotność T
wskazują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ć, F
dodaje się go w rogu bloku, ale T
zastę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
f
it
(lub mieszanych) liter zamiastF
iT
. - 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.
Odpowiedzi:
Węgiel drzewny , 81 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Pobiera pierwsze wejście jako
1
lub2
dla pojedynczych lub podwójnych, drugie wejście jako jedno zABCD
pytań. Wyjaśnienie:Zapętlić odpowiednie szerokości i wysokości
D
boiska i narysować prostokąty.Narysuj siatkę i zastosuj symetrię obrotową, aby dodać
A
boisko.Dodać
F
doD
sądu.Dodaj
T
s do odpowiednich miejsc wA
sądzie.W razie potrzeby odzwierciedlaj dane wyjściowe, aby podawać je z właściwego sądu.
źródło
Python 2 ,
285284 bajtówWypróbuj online!
Pobiera dane jako
0/1
(lubFalse/True
) dla typu gry (Double/Single
),i
0-3
do serwowania bloku (0,1,2,3
=C,D,A,B
)źródło
JavaScript (ES7),
216 ... 205 201199 bajtówPobiera dane wejściowe jako−2 (w prawym górnym rogu), −1 (na dole po lewej), 1 (na dole po prawej) lub 2 (lewy górny róg), a double jest wartością logiczną.
(block)(double)
, gdzie blok jest alboWypróbuj online!
Wersja sformatowana
W jaki sposób?
Wykonujemy iteracjęy=0 do y=30 i od x=0 do x=39 dla każdej wartości y .
Najpierw definiujemyX=x−19 i Y=y−15 .
Zmienneb .
p = X * Y * b < 0
iq = Y > 0 ^ b & 1
służą do określenia, co rysuje w każdym kwartale zgodnie z blokiemOd teraz obaX i Y są podniesione do kwadratu, aby łatwo przetestować pozycje bezwzględne w każdej ćwiartce pola.
Wyrażeniex należy do {0,3,19,35,38} (pozycje linii pionowych) lub prawda inaczej.
x * 24 % 35 > 2
zwraca false jeśliWypróbuj online!
Wyrażenie0 gdyby y należy do {0,2,12,18,28,30} (pozycje linii poziomych, z wyłączeniem siatki) lub 2 Inaczej.
~16 >> Y % 62 % 6 & 2
ustępujeWypróbuj online!
Zmiennai jest zdefiniowany jako wynik bitowego OR między dwiema powyższymi wartościami i dlatego jest interpretowany jako:
|
-
+
lubT
Wyrażenied (pojedynczy lub podwójny). Podobne wyrażenie
(d ? Y : X - 87) > 169
służy do kadrowania pola zgodnie z typem gry(d ? X - 87 : Y) % 169
jest używane do rysowaniaT
w odpowiednich pozycjach.źródło
[-999,999]
dla czterech różnych danych wejściowych, więc być może mógłbyś w jakiś sposób wykorzystać to na swoją korzyść, aby zagrać w niektóre bajty. Oznaczałoby to częściowe rozpoczęcie od nowa, co być może nie jest warte wysiłku. Niestety nie mogę dać ci żadnych wskazówek dotyczących gry w golfa, które pomogłyby ci poniżej 200 bajtów; Mogę tylko życzyć powodzenia w twoich próbach. ; pGalaretka ,
10899 bajtówWypróbuj online!
Jestem pewien, że można lepiej grać w golfa.
Dyadic link z lewym argumentem 0 lub 1 dla pojedynczych / podwójnych i prawym argumentem 0,1,2,3 dla różnych kwadrantów serw. Zwraca listę ciągów
Dzięki @KevinCruijssen za uratowanie bajtu!
źródło
“|-+TO= ”“F”
czy nie“F”
można grać w golfa na inny typ łańcucha dla pojedynczych postaci? Na przykład w 05AB1E są wbudowane wbudowane ciągi o rozmiarze 1 ('
), 2 („
) lub 3 (…
), więc może tak być'F
. Nie wiesz, czy Jelly ma coś podobnego, czy masz inny powód“|-+TO= ”“F”
?”
- ups! Dzięki za uratowanie bajtu.