Re: [程式] 圈圈金字塔的AI邏輯

看板GameDesign (遊戲設計)作者 (ETREX)時間18年前 (2006/10/18 21:48), 編輯推噓6(608)
留言14則, 3人參與, 最新討論串3/5 (看更多)
※ 引述《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

10/18 22:26, , 1F
其實我一點也不強,只是套用別人的想法而已....
10/18 22:26, 1F

10/18 22:28, , 2F
只是看到e大的作品後,突然就想把這程式給e大看看...xD
10/18 22:28, 2F

10/18 22:31, , 3F
我想分數的計算如果能變成類似e大那種方式的話
10/18 22:31, 3F

10/18 22:32, , 4F
應該也可以擁有自動學習的功能才是....我也不太清楚...
10/18 22:32, 4F

10/18 22:38, , 5F
預測是可以加入我的程式裡 只是會讓AI的下法變少
10/18 22:38, 5F

10/18 22:38, , 6F
AI可能會變強 但是不曉得對學習的功能會不會有影響
10/18 22:38, 6F

10/18 22:51, , 7F
我也不知....我沒什麼在研究AI
10/18 22:51, 7F

10/18 22:52, , 8F
只是如果對複雜一點的遊戲而言,給他一定程度的背景知識
10/18 22:52, 8F

10/18 22:52, , 9F
應該可以在訓練的時候少走很多彎路才是....
10/18 22:52, 9F

10/18 22:59, , 10F
嗯 預測是可以讓學習效率提升...
10/18 22:59, 10F

10/18 23:02, , 11F
黑白旗好像有必勝公式
10/18 23:02, 11F

10/18 23:37, , 12F
這黑白棋的破壞行動力有威到 我只想過搶邊角而已
10/18 23:37, 12F

10/19 01:56, , 13F
我想應該是推錯篇了 :)
10/19 01:56, 13F

10/20 02:27, , 14F
其實這個AI有點太注重行動力方面,所以不是很強
10/20 02:27, 14F
文章代碼(AID): #15DZ2U0a (GameDesign)
文章代碼(AID): #15DZ2U0a (GameDesign)