看板 Soft_Job 關於我們 聯絡資訊
這是我寫的象棋的 AI 程序,不含智能棋步處理(因為本身不會下) 如果能設計出來,應該能從事 AI工作. public int LookUp(int fg) { //象棋AI int xy, IsEnd; yList.Clear(); xList.Clear(); mystep.InitSetting(Axy, Bxy, yList, xList,1,p); //Axy,Bxy ,雙方的象棋棋子的位置(x,y),產生一方的各樣走法(x,y) while (true) { IsEnd=mystep.IsEnd(0); if (IsEnd>=10){MovePtB(mystep.InitXy,mystep.NextXy); break; }//找到最佳走法 else if (IsEnd == 1) continue; if ((xy = mystep.GetNextXy(0) )< 0) continue;//下一個可能走法(x,y) if (mystep.IsTarget(xy) > 0) continue; //若是能將死對方,退回上一步 if (mystep.NeedSpecTreat(xy) > 0) continue; if (mystep.AddStep(xy, 0) == 0) break; //產生一方的各樣走法(x,y) } p.BLabel1.Text = "Finish"; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.118.141.65 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1489980462.A.EBC.html
physheepy: 這比較像是"深藍"不是阿發狗 03/20 12:37
pttworld: alphabeta搭配評估函數 03/20 13:15
s860134: 阿法狗不是也是退火法? 深藍的原理與他不同嘛? 03/20 13:17
ideaup: 雙方各5,6個棋子, 在 pc 上需要執行 几萬種走法, 03/20 18:07
ideaup: 大多出現死机狀況. 可能沒有 用另一 thread去 執行它. 03/20 18:08
hsnuonly: 不管哪個都還差太遠 03/20 18:39
nigue: … 03/20 22:08
ideaup: 本省人玩的暗棋,已大致完成,能與人對戰, 03/20 22:15
ideaup: 只是拿象棋作些其他設計.不熟的東西,最好不要去設計 03/20 22:15
Lordaeron: 本省人玩的暗棋? 哪省? 怎麼玩的? 03/20 22:21
Lordaeron: alphabeta搭配評估函數真的很簡單, 但連象棋都做不好 03/20 22:21
Lordaeron: 更別說, 平平都是抄AJA 的論文, 絕藝和ZEN硬是狂勝CGI 03/20 22:24
ideaup: 暗棋是4*8格,開始全蓋住,翻開有吃才可吃,全翻開後可移動. 03/20 22:38
Lordaeron: 外省人的遊戲吧,再說能和人對戰是隨便寫都可以。 03/21 13:41