作者ideaup (ideaupsoho)
看板Soft_Job
標題Re: [請益] 非cs想走ai領域,投履歷沒公司理
時間Mon Mar 20 11:27:40 2017
這是我寫的象棋的 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