五子棋AI設計 從門外到門內不得不說的事兒7

2021-06-08 10:28:28 字數 1023 閱讀 5607

第7天——結

7作為乙個神奇的數字,許許多多具有特殊意義的事情往往會發生在第7日。作為乙個小**,課程內的五子棋系列就在這裡作結吧。

從門外到門裡,雖然只有一步之遙,但是我們還是走了好幾天。簡單回顧一下我們的歷程:

第一天:***** ai——乙個稱不上ai的ai

第二天:防守,堵堵堵

(陰線評估器)

第三天:進攻防守,視情況而定

(利用陰線評估器的資訊來決策)

第四天:看得遠勝算更大

(minmax)

第五天:可以看得更遠,可以思考的更快

(alpha-beta剪枝)

第六天:評價的準才能勝券在握

(評估器設計,再談陰線評估器)

仔細一看,我們大部分時間都在討論評估器,而且在第六天悲劇的發現我們走的技術路線不對路,所設計的ai不會比自己聰明,繞來繞去只是在原地轉了轉。現實往往如此,有時候能夠證偽也是乙個很大的成功,至少後來人可以少走彎路,或者有經驗可循。

那麼,博弈類的ai到底該如何設計,可能涉及到很深的理論問題,諸如我們是不是能夠完全復現人的腦功能之類的問題等。還有許多任務程技術問題,諸如這麼個人工腦如何實現,如何連線等。雖然人工智慧的未來還不是一片坦途,但是正因為如此它才顯得異常迷人,讓無數人為之輕狂,無法自拔。在這裡我不想討論有關人工智慧的倫理問題,我只想有一天我們可以從簡單、機械、重複的工作中解脫出來,真真正正的去發現存在的價值,而不是忙忙碌碌的一生活不明白為了什麼。那麼,從這個角度考慮,研究人工智慧是解決這個問題的必由之路。

也許這一路上滿布荊棘,但是誰又會拒絕狂風暴雨之後的彩虹呢,踏上征程,大步奔向美好的明天。

後記:作為課內作業,設計博弈類遊戲堪稱是理解人工智慧的典範,就像變速箱設計之於機械設計。整個設計過程涵蓋了太多的細節,太多的值得思考的知識點。實踐證明,任何問題,別人解決了,你可以在不借助幫助的情況下自己實現,只是會消耗很多時間,會牽扯很多精力,可是做學問搞技術,必須要能靜得下了,能耐住的寂寞。不自己實實在在的寫寫,親手動動,很難真正理解。

用這句詩

與諸君共勉——

「紙上得來終覺淺,絕知此事要躬行。」

五子棋AI設計 從門外到門內不得不說的事兒2

第二天 防守,堵堵堵 為了提高對五子棋遊戲的感性認識,我又在網上找了幾個寫的很好的五子棋遊戲,與電腦進行了若干次對弈。作為乙個門外漢,防守總是最好的選擇。那麼在什麼條件下防守,在什麼位置防守,這些位置如何確定 在這一系列的問題的驅動下,我開始學習模擬物件的ai部分。首先我選擇了總是防守,所以在這一天...

五子棋 AI篇

效果圖 贏法陣列 var wins 第count種贏法 var count 0 贏法的統計陣列 var mywin var computerwin 結束標識 var gameover false var chess document.getelementbyid chess var me true ...

遊戲 五子棋 與AI

然後ai下棋時,把每個能下的地方都下一次,求個己方與對方的期望值,用個微妙的比較方法 既要考慮到己方的期望,也要考慮到對方的情況 找出期望值最好的那個點,就下那裡了。然後不一會兒我就寫出了乙個 一代 ai,不過我發現有問題,這一代中函式 val 中還沒有那個 y 導致雙方的優先度基本相當,後來我就想...