リバーシ 06a1056 藤田将義 スライド一覧 なぜリバーシなのか Appwizard プログラム 今の課題 まとめ 理由 ボードゲームの基礎(入門)となる appwizard Appwizardはプロジェクト(アプリケーショ ン)の基本構成を設定するツール アプリケーションの全体像にあわせて、 appwizardはそれに対応したアプリケー ションの枠組み(スケルトンプログラム)を 設定 プログラム ウィンドウの編集 入力・出力処理 ルール 評価関数 探索方法 ウィンドウの編集 探索方法 Minimax法 αβ法(Minimax法の改良) Minimax法 現在の状態(コンピュータの手番) -3 相手の手番 -3 N0 N1 -8 N2 -9 コンピュータ の手番 N0-0 N0-0 N0-0 N1-0 15 -3 8 3 N1-1 N1-2 N2-0 N2-1 N2-2 -8 20 -9 -7 18 αβ法 αの処理 現在の状態(コンピュータの手番) -3 相手の手番 βの処理 -3 N0 N1 -8 N2 -9 コンピュータ の手番 αの処理 N0-0 N0-0 N0-0 N1-0 15 -3 8 3 N1-1 N1-2 N2-0 N2-1 N2-2 -8 20 -9 -7 18 αβ法のプログラム ・ ・ ・ { if( temp >= alpha ) { alpha = temp; vest_x = x; //マス vest_y = y; //マス } if( alpha > beta )return( alpha ); } else ・ ・ ・ αβ法のプログラムの動作 y 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 x 実行時 今の課題 ・ ・ ・ int num; if( m_FlagForPlayer )num = CountStone( WHITE_STONE ); else num = CountStone( BLACK_STONE ); if( num > (double)( m_PutNumber + 4 ) / 2 )MessageBox( "You Win!" ); else if( num < (double)( m_PutNumber + 4 ) / 2 )MessageBox( "You Lose!" ); ・ ・ ・ まとめ Minimaxとαβ法では、確かにコンピュータ の処理に差が出た エラーをなくすのに、ものすごく時間がかか る 今は最低限の機能しか付いていないので、 出来る限り追加していく 参考文献 リバーシのアルゴリズム 著者 Seal Software プログラミングティーショップ http://www.geocities.co.jp/SiliconValleyBay/4543/ ご清聴ありがとうございました
© Copyright 2024 ExpyDoc