読者です 読者をやめる 読者になる 読者になる

Panda Noir

JavaScript の限界を究めるブログです。

ペグソリティアをJavaScriptで解く

ペグ・ソリティアもしくはペグ・ソリテール、ソリタリアをJavaScript上でシミュレートするライブラリ作りました。

http://github.com/pandanoir/solitaire

ペグ・ソリティアの解き方

ザックリとした手順

  1. 上のライブラリを読み込む
  2. ゲームボードを作成
  3. 解く

ライブラリを読み込む

まず上のmain.jsを読み込んでください。ImmutableJSをnpm使ってインストールしておくことも忘れずに。

面倒だったら上のリポジトリダウンロードしてnpm installでOKです(これも面倒か)。

ボードを作る

そしたらボードの初期配置を作成します。

これを使うと早いです。 作成した2次元配列をImmutable.fromJS()でImmutable Objectに変換します。

いよいよ解く

getPiece()に出来たImmutable Objectを渡して返り値を取得してください。

あとはsolve()にそのボードとgetPiece()の返り値を渡すと自動で解きます。

しかし遅い

イギリス式ボード(wiki参照)を解こうとするとやけに時間がかかります。

…一応小さいサイズのボードで検証したしプログラムも大丈夫そうなので時間がかかるのはバグのせいではないと思います。

解き終わると解法が終わりの手から書かれた配列が返されます。再帰関数で定義したので解法が逆順なのはお許しください…

誰かゲーム作って

…とまあここまで作って無事解けるようにはなったのですが、ゲームをまだ作ってません。どなたか作ってください。