Presentation is loading. Please wait.

Presentation is loading. Please wait.

人工智慧 - 五子棋 報告人:張任頡 班級:碩研資工二甲.

Similar presentations


Presentation on theme: "人工智慧 - 五子棋 報告人:張任頡 班級:碩研資工二甲."— Presentation transcript:

1 人工智慧 - 五子棋 報告人:張任頡 班級:碩研資工二甲

2 OUTLINE 1. 五子棋介紹 2. 運用之演算法 3. 改寫的部分 4. 程式結果 5. 改進之處 6. 參考文獻

3 1.五子棋介紹 五子棋是一種兩人對弈的純策略型棋類遊戲,通常雙方分別使用黑白兩色的棋子,下在棋盤直線與橫線的交叉點上,先形成5子連線者獲勝。
五子棋是一種兩人對弈的純策略型棋類遊戲,通常雙方分別使用黑白兩色的棋子,下在棋盤直線與橫線的交叉點上,先形成5子連線者獲勝。     因為棋子在落子後不能移動或拿掉,所以也可以用紙和筆來進行遊戲。

4 2. 運用之演算法 本次是用java script 寫成網頁版 判斷下棋的最佳位置有用到A* 演算法
根據mesh(有定義好種類之分數) 去計算成績 4. 然後去進行下棋

5 3. 改寫/新增的部分 1. 新增部分 A. 邊界判斷位置已便判斷AI接下來要下的位置及尋找最好分數 var max=0; //初始化 var x=0; var y=0; for(var i=0;i<NxN;i++){ //根據棋盤盤面去尋找座標 for(var j=0;j<NxN;j++){ if(max<playerChessboardScore[j][i]){ //當MAX小於當前盤面分數時 max=playerChessboardScore[j][i]; x=i; y=j; }

6 3. 改寫/新增的部分 B. 判斷目前盤面種類 (貼部分) function detectVertical(who,x,y){ var follow=1;//該子本身也要算 var Alive=true;//該條線是活的還是死的(ex.活三、死三) var stop=false; //往上找 for(var i=y-1; i>=0 && i>y-5 && stop==false; i--){ switch(chessboardType[i][x]){ case who: follow++; break; case "-": stop=true; default: Alive=false; }

7 4. 執行結果 初始介面

8 4. 執行結果 第一子下完 己方與對方 盤面狀況跟分數

9 4. 執行結果 對手根據最佳分數位置手動下棋後

10 5. 缺失 1. 手動下棋 改成AI 因語法不熟,故沒有完全做出來 2. 盤面後面可能會因為判斷有誤而造成分數錯誤

11 6. 參考文獻


Download ppt "人工智慧 - 五子棋 報告人:張任頡 班級:碩研資工二甲."

Similar presentations


Ads by Google