前書き:
現在、バドミントンに関連する課題は他に1つしかないことがわかりました。私は自分でバドミントンをしているので(過去13年間)、バドミントンに関連するいくつかの課題を追加すると思いました。ここで2番目(最初のものはここにあります):
チャレンジ:
バドミントンに関するいくつかのルールは、
- サーブは常にネット上で斜めに行われます。
- 常にネットに平行で最も近いラインの後にサーブする必要があります。
- 提供できるエリアは、シングル(1対1)かダブル/ミックス(2対2)かによって異なります。
- シングル(1対1)の場合、下の画像の青い領域がサービスを提供できる場所です。つまり、これは後ろのパーツを含み、横のパーツを除外しています。
- ダブルス/ミックス(2対2)の場合、下の図の緑色の領域がサーバーに許可されています。つまり、これは後ろのパーツを除いて、横のパーツを含んでいます。
- あなたがサーブするとき、あなたは列に立つことができません。しかし、シャトルがラインの上に着陸した場合、シャトルはまだ中にあります。
チャレンジルール:
入力:
2つの入力が与えられます。
- シングルまたはダブル/ミックスのどちらを再生するかを示すもの(つまりブール値)
- あなたは(つまりから提供していたブロックを示すために何か
[1,2,3,4]
または['A','B','C','D']
上の写真で使用されます)。
出力:
現在のサーブ(ネットを含む)に関連する行のみ。これF
には、どこからT
サーブするかを示すための複数の行と、潜在的にサーブする場所を示すための複数の行が含まれます。
実際には、指定されたエリアのどこからでもサービスを提供することが許可されていますが、サービスを提供する人は常に、ネットの中央に近いサーブエリアの隅に立っていると想定しています。F
。そして、彼らは彼らが奉仕しなければならないエリアの四隅のいずれかに奉仕します、それはあなたがT
sを配置する場所です。
ASCIIアートとして、バドミントンフィールド全体は次のようになります(数字を追加するので、自分で数える必要はありません)。
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
例:
ここでは、サーブの関連部分のみを出力する2つの例を示します。
入力:シングルおよびサーブブロックA
出力:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
ご覧のとおり、F
はブロック内の隅に追加されていますが、ASCI-art出力でT
はが置き換え+
られています。
入力:ダブルおよびサーブブロックC
出力:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
チャレンジルール:
- 先頭と末尾の改行はオプションです(入力が単一の場合、先頭と末尾の2つの空行を含みます)。末尾のスペースもオプションです。ただし、先行スペースは必須です。
- 提供元のブロックが許可されていることを示す4つの合理的な個別の入力(整数の場合、[-999,999]の範囲内に留まる)。また、2つの合理的な個別の入力で、それがシングルかダブル/ミックスかを示します(ただし、この関連する禁止された抜け穴に注意してください)。回答で使用したI / Oを記入してください!
- andの代わりに小文字の
f
andt
(または大文字と小文字の混合)を使用できます。F
T
- 単一の出力文字列を返すまたは印刷する代わりに、行のリストまたは文字の行列を返すことができます。
一般的なルール:
- これはcode-golfなので、バイト単位の最短の回答が優先されます。
コードゴルフ言語では、コードゴルフ言語以外の言語で回答を投稿しないようにしないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 - デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテスト(TIOなど)のリンクを追加してください。
- また、回答の説明を追加することを強くお勧めします。