六角形のチェスは、セルが従来の正方形ではなく六角形であるボードでプレイされるチェスのバリエーションのファミリーを表します。そのようなバリアントは多数あります。この課題では、最も一般的なGlińskiのバリアントに焦点を当てます。
ボードは3色で構成され(同じ色が端を共有しないように)、六角形の端がプレイヤーに面しています。ボードは、文字でマークされた11個のファイルが、持っていa
てl
(文字がj
(ファイルで60°を曲げ使用されていない)、および11のランクf
)。ランク1
を介して6
各11個の細胞を含む、ランクが7
9つのセルを有し、ランクは8
7を有している、というように。ランク11
には1つのセルf11のみが含まれます。(それが役立つ場合は、各ランクを非常に幅の広い「V」字型にすると考えてください。)
これは、中央のセルに騎士がいるボードの例です。ドットでマークされたセルは、この特定のナイトの合法的な動きです。騎士は「通常の」チェスと同様の方法で2ダウン1オーバーで動きます。六角形のチェスの用語では、それは(エッジを横切る)直交方向の動きであり、次に同じ方向(同じ色に最も近い動き)の斜め方向の動きです。例えば、ナイトが下にある場合、ライトブラウンまでの「上」への直交移動は、最も近いライトブラウンへの「上」と「上」または「左」の斜めの動きを伴います。
https://commons.wikimedia.org/wiki/File:Glinski_Chess_Knight.svgを介してパブリックドメインから
この騎士はf6に位置しているため、法的な動きは
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
入力
ナイトの開始セルを提供する単一の入力。これは、1つの文字列としてすることができ"b6"
2つの文字列として、"b", "6"
など、任意の便利な形式で。入力文字は大文字でも小文字でも構いません。
出力
その場所の騎士が行うことができる有効な動きのリスト。これは、文字列の配列、明確で一貫した区切り文字を持つ単一の文字列、改行で区切られた文字列など、最も便利なものであれば何でもかまいません。出力は必ずしもソート順である必要はなく、大文字または小文字のいずれでもかまいません(任意)。
ルール
- ボード上に他のピースが存在しないか、動きに干渉しないと仮定します。私たちは騎士だけに焦点を合わせています。
- 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
- 可能であれば、他の人がコードを試すことができるように、オンラインテスト環境へのリンクを含めてください!
- 標準的な抜け穴は禁止されています。
- これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
例
b6
a3, c4, d5, d9, e7, e8
f6
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
f11
d8, e8, g8, h8
i1
f2, f3, g4, h4, l2, k3