看板 toberich 關於我們 聯絡資訊
象棋人工智能以窮舉法算出最佳下一步,可用在許多相關領域 public int LookUp(int fg) { int xy, IsEnd; mystep.InitSetting(Axy, Bxy, yList, 1,p); 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; if (mystep.IsTarget(xy)>0) continue; //若是完成,退回上一步 if (mystep.NeedSpecTreat(xy) > 0) continue; //若是特殊情況,退 回上一步 if (mystep.AddStep(xy, 0) == 0) break; } MessageBox.Show("Finish---------------------"); } 開始時,輸入將士相車馬包卒的起始位置, 然後根據各棋子能走的下一步,估算其期望值,及可能是終點的情形, 並要估算對方的各種走法,如此算出10-20步後的最佳走法, 以此類推,只要是起始情形知道,且其可能的進行方式及大約的期望值可估算, 應該可用程式預估最佳對策. 若是此方面的案子多,可成立公司經營. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.246.113.209