Einführung:
Ich habe gesehen, dass es momentan nur eine andere Herausforderung im Zusammenhang mit Badminton gibt . Da ich selbst Badminton spiele (seit 13 Jahren), dachte ich mir, ich würde einige Herausforderungen im Zusammenhang mit Badminton hinzufügen. Hier der zweite (der erste ist hier zu finden ):
Herausforderung:
Einige Regeln über Badminton dienen:
- Ein Aufschlag erfolgt immer diagonal über das Netz.
- Sie müssen immer nach der Linie dienen, die parallel und dem Netz am nächsten ist.
- Der Bereich, in dem Sie dienen dürfen, hängt davon ab, ob es sich um einen Einzel- (1 gegen 1) oder einen Doppel- / Mix- (2 gegen 2) Bereich handelt.
- Bei Singles (1 gegen 1) dürfen Sie im blauen Bereich im Bild unten dienen. Dies schließt also das Teil auf der Rückseite ein, schließt jedoch die Teile an der Seite aus.
- Bei Doppel / Mix (2 gegen 2) dürfen Sie im grünen Bereich im Bild unten Server verwenden. Dies schließt also das Teil auf der Rückseite aus, aber einschließlich der Teile an der Seite.
- Sie dürfen beim Servieren nicht in der Schlange stehen. Aber das Shuttle bleibt immer noch drinnen, wenn sie auf einer Linie landen.
Hier das Layout eines Badmintonfeldes:
Herausforderungsregeln:
Eingang:
Sie erhalten zwei Eingaben:
- Etwas, das anzeigt, ob wir einen Single oder Double / Mix spielen (dh einen Booleschen Wert)
- Etwas, das angibt, aus welchem Block Sie dienen (dh
[1,2,3,4]
oder['A','B','C','D']
wie im obigen Bild verwendet).
Ausgabe:
Nur die relevanten Zeilen für den aktuellen Aufschlag (einschließlich des Netzes), einschließlich eines, F
um anzugeben, von wo aus Sie dienen, und mehrerer, T
um anzugeben, wohin Sie möglicherweise dienen werden.
Obwohl Sie in Wirklichkeit von und zu jedem Ort in den festgelegten Bereichen dienen dürfen, gehen wir davon aus, dass eine Person, die dienen wird, immer in der Ecke des Aufschlagbereichs steht und sich in der Mitte des Netzes befindet, wo Sie sich befinden die F
. Und sie werden an jeder der vier Ecken des Bereichs dienen, an dem sie dienen müssen. Dort platzieren Sie die T
s.
Als ASCII-Kunst wäre das gesamte Badmintonfeld wie folgt (die Zahlen werden hinzugefügt, damit Sie sie nicht selbst zählen müssen):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Beispiele:
Hier zwei Beispiele für die Ausgabe nur der relevanten Teile des Aufschlags:
Eingabe: Einzel- und Aufschlagblock A
Ausgabe:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Wie Sie sehen können, F
wird das in der Ecke innerhalb des Blocks hinzugefügt, aber das T
ersetzt das +
in der ASCI-art-Ausgabe.
Eingabe: Double and Serve Block C
Ausgabe:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Herausforderungsregeln:
- Führende und nachfolgende Zeilenumbrüche sind optional (einschließlich der führenden und nachfolgenden zwei leeren Zeilen, wenn die Eingabe einfach ist). Leerzeichen sind ebenfalls optional. Führende Leerzeichen sind jedoch obligatorisch.
- Alle vier vernünftigen unterschiedlichen Eingaben, um anzugeben, von welchem Block wir bedienen, sind zulässig (für ganze Zahlen bleiben Sie im Bereich [-999.999]). sowie zwei vernünftige unterschiedliche Eingaben, um anzuzeigen, ob es sich um eine Einzel- oder Doppel- / Mischung handelt (beachten Sie jedoch diese relevante verbotene Lücke ). Bitte geben Sie die E / A an, die Sie in Ihrer Antwort verwendet haben!
- Sie dürfen anstelle von und Kleinbuchstaben
f
undt
(oder gemischte Groß- / Kleinschreibung) verwenden .F
T
- Sie können eine Liste von Zeilen oder eine Matrix von Zeichen zurückgeben, anstatt eine einzelne Ausgabezeichenfolge zurückzugeben oder zu drucken.
Allgemeine Regeln:
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich nicht von Code-Golf-Sprachen davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, eine möglichst kurze Antwort für "jede" Programmiersprache zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln . Sie können also STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardschlupflöcher sind verboten.
- Wenn möglich, fügen Sie bitte einen Link mit einem Test für Ihren Code (dh TIO ) hinzu.
- Es wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Antworten:
Holzkohle , 81 Bytes
Probieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Nimmt die erste Eingabe als
1
oder2
für Einzel oder Doppel, die zweite Eingabe als eine vonABCD
wie in der Frage. Erläuterung:Überlaufen Sie die relevanten Breiten und Höhen des
D
Platzes und zeichnen Sie die Rechtecke.Zeichnen Sie das Netz und wenden Sie Rotationssymmetrie an, um das Spielfeld hinzuzufügen
A
.Fügen Sie das
F
demD
Gericht hinzu.Fügen Sie das
T
s zu den relevanten Stellen imA
Gericht hinzu.Reflektieren Sie die Ausgabe nach Bedarf, um vom richtigen Gericht zu dienen.
quelle
Python 2 ,
285284 BytesProbieren Sie es online aus!
Nimmt die Eingabe als
0/1
(oderFalse/True
) für den Spieltyp (Double/Single
),und
0-3
zum Servieren von Block (0,1,2,3
=C,D,A,B
)quelle
JavaScript (ES7),
216 ... 205 201199 Byte(block)(double)
Probieren Sie es online aus!
Formatierte Version
Wie?
p = X * Y * b < 0
q = Y > 0 ^ b & 1
x * 24 % 35 > 2
Probieren Sie es online aus!
~16 >> Y % 62 % 6 & 2
Probieren Sie es online aus!
|
-
+
oderT
(d ? Y : X - 87) > 169
(d ? X - 87 : Y) % 169
T
quelle
[-999,999]
für die vier verschiedenen Eingaben zugelassen habe, könnten Sie das vielleicht irgendwie zu Ihrem Vorteil nutzen, um einige Bytes zu spielen. Es würde bedeuten, teilweise von vorne zu beginnen, was die Mühe vielleicht nicht wert ist. Leider kann ich Ihnen keine Golftipps geben, die Ihnen unter 200 Bytes helfen. Ich kann Ihnen nur viel Glück bei Ihren Versuchen wünschen. ; pGelee ,
10899 BytesProbieren Sie es online aus!
Ich bin sicher, das kann besser Golf gespielt werden.
Dyadische Verknüpfung mit dem linken Argument 0 oder 1 für Einzel / Doppel und dem rechten Argument 0,1,2,3 für verschiedene Serve-Quadranten. Gibt eine Liste von Zeichenfolgen zurück
Vielen Dank an @KevinCruijssen für das Speichern eines Bytes!
quelle
“|-+TO= ”“F”
, kann man nicht“F”
auf eine andere Art von Saite für einzelne Charaktere spielen? In 05AB1E gibt es beispielsweise integrierte Funktionen für Zeichenfolgen der Größe 1 ('
), 2 („
) oder 3 (…
)'F
. Sie wissen nicht, ob Jelly etwas Ähnliches hat oder ob Sie einen anderen Grund dafür haben“|-+TO= ”“F”
?”
dies für ein einzelnes Zeichenliteral verwendet werden kann - oops! Vielen Dank für das Speichern eines Bytes.