2006-05-05から1日間の記事一覧

パスの処理

実際に打つ時点に限れば、打つ場所が見つからない場合にはすぐパスを返す。これは打てる箇所が一箇所の場合と同じで、そこから先をどんなに探索しようと結果は同じなので余計な時間を使わない様にすること。それで重要なのは探索中のパスの処理。ここではゲ…

実際に打つ手の探索

上記のままのアルファベータの実装では評価値は返ってくるけど、どの手を指した結果なのかが全く分からない。かといって、実際指し手の情報が必要になるのは再帰呼び出しの一番上のレベル。ということで、面倒だけどそれだけのための関数を作った。ついでに…

アルファベータ探索

理論は抜き。Min-Maxも、純粋な意味でのアルファベータ探索も抜きにして、最初から Negamax + αβ。さっさと実装に。 int αβ(CELL 色, int α, int β, int 残り深さ) { if( 残り深さ == 0 ) return 評価値(); @打てる場所リスト = 打てる場所を列挙する(色); i…