- 締切済み
連珠のゲームプログラミング
大学の卒業研究で連珠のゲームプログラミングを作っています。 HPや本を調べたのですが詳しく載っているものがありません。 良い参考書、参考になるHPを知っている方がいましたら教えてください。お願いします。 言語はVBなのですが、アルゴリズムなど全体の流れを知りたいので他の言語でもかまいません。お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tasuke22
- ベストアンサー率33% (1799/5383)
出物は知らないので、若干のイメージを。 また、この手の最適な言語はLispと思いますが、 C++がその次かな? Basicで出来ないことは無 いと思います。 まず、ゲームの「手」をイメージします。 初手は盤の目の数、2手目は盤の目の数-1。 つまり2手目までの選択可能手は 盤の目の × (盤の目の数-1) と膨大な手になり、それが盤の目が無くなる まで続きます。これが何も考えない単純な解 の探索空間ですね。 次に定石を考えましょう。 初手は1箇所にすると解の探索空間はそれだけ で「1/盤の目の数」に減少します。 このゲームの場合、定石と言えるものはどれだ けあるか知りませんが、なるべく多く入れると 有利です。 次に考えるのは、解の探索方法です。 次の手の可能性を全て取り出し、点数付けをし、 もっとも点数のいいものを選び、次の相手の もっともいい手を選び、・・・とずっと選んで みて良い結果がえられるなら、その手を選ぶ。 いっきに1つの手を最終まで検査します。 まったく違う方法として、2手目も全ての手に 対して点数をつけ、三手目も全ての手に点数を 付けと、最初から可能性のあるものを全て検査 する方法です。時間がかかります。 2つの方法を組み合わせた解法も考えられます。 つまりいい手と思われるものを3手ずつくらい 検査していく方法です。 勿論、全ての手にルール的に許せる手かのチェッ クは必要です。 手の点数付けがもっとも難しいでしょう。 多分、序盤、中盤、終盤で点数のつけ方が変わり いかに序盤、中盤、終盤の状態なのかを判断する かが難しいでしょうね。 これを実現するのはオブジェクト指向がだんぜん 良いですね。クラスを作り、各手がインスタンス で、手の順番関係をリンクしながら木構造に表現 します。 大きな流れはこのようなところでしょう。
お礼
詳しく書いていただきありがとうございます。