三目並べをminimax法で作っているのですが、評価値というのはどうやって決めているのでしょうか??
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
投稿2017/09/26 07:29
総合スコア13512
0
ベストアンサー
次に打てる手が無い場合は評価値を 0 にする。
相手の手番の時、相手が三つ並べる手が打てるなら評価値を -1 にし、それ以外の場合は子ノードから値を求める。
自分の手番の時、自分が三つ並べる手が打てるなら評価値を 1 にし、それ以外の場合は子ノードから値を求める。
投稿2017/09/26 07:31
総合スコア28656
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
三目並べだとしたら9マスある盤の1マス1マスに評価値があるということですか??
2017/09/28 01:44
いいえ。
三目並べは将棋などと違って手数が少ないので最後まで読めばいいのです。
最終ノードの評価値はゲーム終了時なので勝てばプラス負ければマイナス引き分けならゼロと決めることができます。
そこから辿って他のノードの評価値が求められます。
2017/09/28 02:16 編集
ちなみに勝てるか勝てないかだけで評価値を決めると
勝負を諦めるような手を打つことがあるので
そこに行き着くまでの手数を考慮に入れると自然な感じになるそうです
2017/09/28 16:46
いいえ。
三目並べは将棋などと違って手数が少ないので最後まで読めばいいのです。
最終ノードの評価値はゲーム終了時なので勝てばプラス負ければマイナス
引き分けならゼロと決めることができます。
ここまでは理解できたのですが、
そこから辿って他のノードの評価値が求められます。
ここがよくわからなくて・・・他のノードの評価値はどうやって求まっていくんでしょうか?
2017/09/28 16:55
もしかしてミニマックス法のアルゴリズムから全部説明しなきゃいけませんか?
2017/09/28 17:01
アルゴリズムの基礎から実装まで全ての説明が必要であれば ozwk さんの挙げられたサイトがわかりやすいと思います。単純なミニマックス法だけでなく改良法も載っています。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。