私たちは皆、ナイトツアーパズルについて聞いたことがあります。チェス盤のすべての正方形を通過する騎士の道を見つけてください。しかし、正直に言って、それは少し退屈です。それでは、騎士に少し挑戦してみましょう。
仕事
任意のサイズ、任意の形のチェス盤で、すべての正方形を騎士が通過するプログラムを作成します。これは、チェス盤を入力として受け取り、一連の動きと開始位置を出力します。ボードが不可能な場合は、可能な限り長いツアーの一連の動きと開始位置を出力する必要があります。注:騎士は往復する必要はありません。彼が家に帰る別の方法があると仮定します。
チェスの駒は小さいので、あなたのコードは騎士が持ち歩けるように十分に小さくする必要があります。
入力
入力は、チェス盤の文字列ベースまたは配列ベースの表現になります。ここで、非空白/真の値は正方形であり、空白/偽の値は空のスペースです。簡単にするために、例ではグリッドに配置された#
とを使用します。
出力
出力は2つの大きな整数で、その後に一連の4ビット整数または対応する言語が続きます。2つの大きな整数は開始座標を表し、次の数字はそのような動きを表します。
7 0
6 1
K
5 2
4 3
ここで、K
移動前の位置であり、その数は、移動後の位置です。
例
Knight's Tourパズルには多くの可能な解決策があるため、出力例のみを提供します。より多くの出力があるかもしれません。
###
# #
###
0 0 3 0 5 2 7 4 1
新しい課題:より多くの例を考え出す