看板 GameDesign 關於我們 聯絡資訊
※ 引述《chowleft (什麼....)》之銘言: : 文章有錯請指教....我只是小咖xD : Minimax這裡有中文說明,加上範例圖可以加速理解 : http://0rz.tw/a620L : 小弟以前也寫過一個小遊戲,就是用這個方式降低電腦的思考時間 : 當然這個AI沒有像e大那麼強還可以自我進化, 被真正會寫AI的人說很強...(羞) 其實我不會AI的 :) : 遊戲可以在此下載: : http://download.yousendit.com/6B9A68DB2171E1A8 : 開啟後選Game->Single就開始了 : 裡面的某些功能選項都是幻覺,請當作不存在 : 我想棋類遊戲應該都是這樣寫的吧? : 場上棋子分佈的狀況都可以用某些規則去計算出一個數值, : 如果某一種狀況對我們有利的話,這個分數應該要比較高, : 這樣就知道哪一步比較好了 我也覺得是這樣寫 不過因為我始終想不到要怎麼給分 所以就讓AI自己幫自己給分了 XD : 我們在下棋子的時候,會想辦法下出對我們最有利的情況 : 而當輪到對方的時候如果沒意外,對方會下對他最有利的一步 : 由分數觀點來講就是,讓算出來的分數最低 : 假如我想預測N步以後的情形 (我->對手->我->對手....) : 我應該要計算雙方所下的所有可能組合,然後找出最大分數那一組 : 這樣我就知道我這一步該怎麼下了 預測這個部分我沒有做.....我也不會 >"< 因為這個棋盤很小,而且畫圈圈一定是越畫越少的 所以有辦法把遊戲開始到遊戲結束的所有圖形都列出來 0.0 如果換成象棋那種可以來回走的要把所有圖形列出來是不可能的 所以我的演算法可以說是只能用在這個遊戲上... : 而利用對方會朝對他最有利的方向前進的這個假設 : 則可以不用把每一種組合的分數都算出來,可以少算一些這樣 : 至於每一步的分數如何決定,通常跟對這個遊戲的認知度有一點點關連 : 像在我這個白癡AI中,我將邊角的分數拉得很高 : 因為我覺得有沒有搶到邊角非常重要 : 其他的邊緣地帶分數也有高一些些,至於像B2之類的地方 : 因為你搶到之後很可能之後會讓對手搶到邊角,所以分數是負的,代表不要下這一步 : 另外一個想法就是讓對手可以下的位置越來越少, : 這樣對手下無可下,最後就會下在他最不希望下的位置 : 對手的選擇越少,代表他的靈活性越低 : 除了可以逼迫他下不該下的位置外,還有節省電腦計算量的妙用 : 結合類似這樣的觀念就可以決定一個狀況的分數了 : 當然有些觀念是上網查的.... 節省電腦計算量這個部分 因為我沒有預測所以就.... 不過預測是我一開始想做的...想破頭不會寫 0.0 : 當初會寫這個只是因為被VMJ小遊戲的電腦狠狠羞辱了一番 : 所以寫來看能不能報仇雪恥.... : 不過當我寫完之後所得到的只是又一次的羞辱....我的AI不爭氣的輸了 : 總之e大可以考慮加入這些元素看看,希望對你的AI能有些幫助 不過現在我想改進AI學習的方法 而不想教AI必勝公式 (我也不知道要怎樣必勝) 因為我覺得這樣比較有趣 :) (雖然必勝AI真的很威,little game版的回應裡有一個超威的AI...) 如果能研究一個演算法 讓AI對所有遊戲都有學習能力的話 就不用自己去想什麼情況是有利的 哪邊的分數要給比較高 (會贏的就分數高 哈哈) == 後來我有去翻一下AI的書 發現我做的這種程式在書上是屬於機器學習的部分 是 "死記學習法" 或 "參數學習法" 的其中一種 我沒有看仔細,不過每本AI的書都是最後幾頁才講學習 最大最小決策也有在書裡看到,整個就是覺得很複雜 0.0 -- 無名網誌:http://www.wretch.cc/blog/et284vu065k3 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.228.44.27
chowleft:其實我一點也不強,只是套用別人的想法而已.... 10/18 22:26
chowleft:只是看到e大的作品後,突然就想把這程式給e大看看...xD 10/18 22:28
chowleft:我想分數的計算如果能變成類似e大那種方式的話 10/18 22:31
chowleft:應該也可以擁有自動學習的功能才是....我也不太清楚... 10/18 22:32
etrexetrex:預測是可以加入我的程式裡 只是會讓AI的下法變少 10/18 22:38
etrexetrex:AI可能會變強 但是不曉得對學習的功能會不會有影響 10/18 22:38
chowleft:我也不知....我沒什麼在研究AI 10/18 22:51
chowleft:只是如果對複雜一點的遊戲而言,給他一定程度的背景知識 10/18 22:52
chowleft:應該可以在訓練的時候少走很多彎路才是.... 10/18 22:52
etrexetrex:嗯 預測是可以讓學習效率提升... 10/18 22:59
Attui:黑白旗好像有必勝公式 10/18 23:02
etrexetrex:這黑白棋的破壞行動力有威到 我只想過搶邊角而已 10/18 23:37
etrexetrex:我想應該是推錯篇了 :) 10/19 01:56
chowleft:其實這個AI有點太注重行動力方面,所以不是很強 10/20 02:27