精華區beta GameDesign 關於我們 聯絡資訊
遊戲載點:https://drive.google.com/folderview?id=0Bxh-7fIzdX14NFRNY2VfQ3I3SDQ 這是我所做的第一隻APP程式 只是單純的五子棋,同色五子連成一線就贏 有一些功能 選棋盤大小:9*9、13*13、19*19 對電腦:第一次寫電腦要判斷自己做事情的程式,搞了很久才搞定,有基本強度 讀取棋譜:每次新局、下子時讓紀錄存在SD卡裡的TXT檔,讀取時抓出來 在最新棋子標註紅點:感謝朋友提供的意見,原本跟電腦下時常不知道他下到哪 訊息顯示電腦下在哪裡 在線上標註是第幾條線,並讓它跟著滑動 放大縮小是靠著按鍵,不是用多點觸碰 悔棋:避免玩家點錯 第一次寫出可以拿得出來看的程式 希望大家可以給我一些建議或者意見,感謝 感覺離自己寫出自創遊戲還好遠... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.184.26
KanoLoa:XD前陣子才討論AI很熱絡呢,要不分享下你的策略 10/23 15:14
我是分成直橫斜斜四個方向去存成字串,然後把黑白棋分開算 之後判斷是活二、死三、活三、連四,讓空格的地方加上分數 最後是讓他比較分數哪邊比較高去下,加上一些條件(活二以下不擋、活三必檔等等)
LaPass:抓不下來 QAQ 10/23 15:41
LaPass:http://f23.tw/FFFz/v 弄下來了.... 這個網址裡有QRCODE 10/23 15:44
LaPass:可以用手機直接抓 10/23 15:44
LaPass:電腦有時候會下在很奇怪的地方呢... 10/23 15:48
LaPass:棋力不錯呢 10/23 15:56
LaPass:這個電腦愛防守,不下四三跑去擋我的活三,防守的權重是不 10/23 16:02
LaPass:不是調的很高? 10/23 16:02
如果已經連四卻不去檔的話,可能是我哪邊寫錯了 我是讓他活三以上會先去找哪邊有連四,之後找活三、死三 兩邊都沒活三以上會判斷分數高的去下 是有故意讓他比較重防守,有攻擊的機會應該也不會錯過 ※ 編輯: murasakinki 來自: 123.205.184.26 (10/23 20:13)
LaPass:http://i.imgur.com/CgHQDL3.jpg 應該下紅色那邊,可是ai卻 10/23 21:31
LaPass:跑去擋活三 10/23 21:32
murasakinki:感謝告知,目前正在找原因... 10/23 21:50
murasakinki:修正完畢 10/23 22:22
LaPass:結果是哪裡出問題? (純好奇) 10/23 22:29
KanoLoa:猜棋路! http://i.imgur.com/PlpwxVo.png 10/23 22:35
murasakinki:單純我分數配的不當而已,讓變種活三分數太低了 XD 10/23 22:37
murasakinki:結果好像還有問題,我在研究一下orz 10/23 22:39
murasakinki:檢查了一下發現是打錯數字了,已改正... 真粗心 10/23 22:44
LaPass:wwwwww 這種事正常啦.... 10/23 22:46
LaPass:對了,可以請問ai的寫法是怎麼樣呢? 10/24 20:17
其實前面就講得差不多了 我是讓他每次下完棋會先判斷勝負,順便把棋子存成四個方向的字串陣列 輪到電腦時把字串陣列抓去用,開始判斷棋子的狀況 用兩個迴圈控制,第一個迴圈是第幾個字串,第二個迴圈是字串的第幾個字開頭 接著用一堆判斷式判斷分數 例如:取五個字,如果是NBBBN,就在兩個N上面加上分數 如果是NBBNN,就在三個N上面加上分數 連四、活三的分數有設得特別的高 避免被剛好有一個點有四個死三接著之類的狀況壓過分數 然後把分數存到座標上(兩種顏色、四種方向分開存) 最後就是把四個方向同座標的分數加起來,再去判斷哪些狀況可以直接下 例如連四、活三,或者可以形成雙活三以上等等 沒有的話,將電腦下的棋子加上分數,再比對兩種顏色哪個單點分數最高 如果該色單點最高分有多個點,判斷哪個點是另一色的最高分 又有多個點的話,再去隨機下其中一個點 自己覺得是用很暴力的方法去算,不知道有沒有更好的方法... 這種方法也沒辦法讓電腦判斷: 「下這裡活三對方檔,再下那裡活三對方檔,最後下這邊就可以形成死四活三了!」 這一類狀況,所以玩家故意這樣下,電腦就會一敗糊塗了 ※ 編輯: murasakinki 來自: 123.205.184.26 (10/26 10:29)
LaPass:唔..... 我也是用這種 10/26 13:22
LaPass:有另外一套方式是min-max以及改良後的alpha-beta,你可以看 10/26 13:23
LaPass:一下 10/26 13:23
murasakinki:alpha-beta看不太懂,看來我的理解能力有待加強... 10/26 21:49