前書き
一般的なパズルには、下の画像に示すように、ティー/ペグ用の15個の穴がある三角形のボードが含まれます。
一番上の穴を除いて、ボード内のすべてのペグから始めて、パズルのポイントは、チェッカーのようにペグを互いに飛び越えて、正確に1つのペグを残すことです。唯一有効な移動は、1つのペグを隣接するペグを越えて任意の方向に空の穴にジャンプすることです。ジャンプしたペグは、ボードから削除されます。有効な手が残っていない場合、プレイは終了します。
スペック
あなたの仕事は、ペグパズルの完全なソリューションを見つけることができるプログラムを書くことです。考えられる解決策は複数あるので、プログラムは1つだけ印刷する必要があります。
- プログラムは入力を受け取りません。外部ソースからのデータの読み取りは許可されていません。
- この形式を使用して、残りの1ペグの結果が得られる13のムーブのリストを印刷します。
Peg 1 jumps Peg 3 to Hole 6.
- 穴/ペグには上から下、左から右に番号が付けられているため、上部のペグ/穴は1で、右下が15になるまで番号が付けられます。
- プログラムは実行時にソリューションを見つける必要があります。プログラムで解決する以外の方法でソリューションを直接印刷すると、自動的に失格になります。
- ボーナス:複数のユニークなソリューションを出力できる場合は、10ボーナスポイントを受け取ります(空白行で区切って印刷できます)。
- ボーナス:数値
15
がソースコードのどこにも表示されない場合、5ボーナスポイントを受け取ります。
得点
これはコードゴルフなので、正しい答えを出力する(バイト数による)最短のソリューションが勝者となります。総バイト数からボーナスポイントが差し引かれます。プログラムの実行のサンプル出力とideone
、可能であればプログラムの実行を示すリンクまたは同様のサイトへのリンクを提供してください。
15=0xff=(1<4)-1=~(-1<<4)=...
15
それ自身よりも長い> = 5文字です;)