[問題] AI的interface應該要如何結合和運行呢

看板java作者 (阿轉)時間8年前 (2017/01/18 02:16), 8年前編輯推噓0(0012)
留言12則, 3人參與, 最新討論串1/1
如題 我想要達到的功能是 我寫一個象棋AI的interface 就是我寫一個主控程式(包含象棋的規則、畫面等等...) 然後有interface可以接兩個別人寫的不同的AI 然後可以讓這兩個AI互相決鬥 但是實在不太清楚這樣的程式應該要怎麼跑 因為AI1移動之後,把移動的資訊給AI2 在這期間AI2應該是wait的狀態 反之亦然 請問這樣是一定要使用到thread嗎? 還是有什麼方式去跑 然後接別人寫完的AI(使用我的interface) 跟我的主控程式結合的話,一定要把他的原始程式碼放進來我的程式裡一起跑嗎? 還有其他的方法嗎? 我爬文以後其實跟很久以前有位大大舉辦的踩地雷AI比賽很像 但是不太理解其中原理 (程式怎麼結合在一起、實際上怎麼跑...) 請問有大大可以解釋一下嗎...google也找不太到答案QQ 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.119.181 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1484676962.A.479.html ※ 編輯: defsrisars (114.137.119.181), 01/18/2017 02:16:20

01/18 07:33, , 1F
先回你的幾個問題,在AI思考中,還是要接受例如暫停、終止
01/18 07:33, 1F

01/18 07:33, , 2F
之類的指令,所以至少通訊和思考就要分兩個thread了
01/18 07:33, 2F

01/18 07:35, , 3F
再來interface的部分通常AI engine是一個獨立的執行檔,中
01/18 07:35, 3F

01/18 07:36, , 4F
間看你要用什麼方式去溝通,socket、pipe...etc
01/18 07:36, 4F

01/18 09:22, , 5F
溝通方式有些現有比較主流的規格: Winboard、UCI(UCCI、USI
01/18 09:22, 5F

01/18 09:25, , 6F
),好處是可以跟現有的GUI、engine互通,通訊部分可能可以
01/18 09:25, 6F

01/18 09:26, , 7F
找到opensource的直接用。缺點是對架構設計(GUI負責哪些部
01/18 09:26, 7F

01/18 09:26, , 8F
分、engine負責哪些會有些限制),自己評估看看吧
01/18 09:26, 8F

01/18 09:28, , 9F
把程式碼全部包成一支程式其實是比較單純的,就呼叫API就好
01/18 09:28, 9F
非常謝謝大大的回覆 給了我很多方向 而且有對整體運行架構有比較瞭解的感覺 我會再就這些關鍵字去學習瞭解嘗試看看~~ 非常感謝 ※ 編輯: defsrisars (1.168.68.160), 01/18/2017 10:47:34

01/18 11:21, , 10F
中國象棋表示使用來自西洋象棋的FEN串。
01/18 11:21, 10F

01/18 11:22, , 11F
FEN串載明黑子或紅子,可以跑不同AI,關鍵字已給。
01/18 11:22, 11F

01/18 14:39, , 12F
eventDriven就可以了吧
01/18 14:39, 12F
非常感謝QAQ 我馬上都餵狗研究一下 ※ 編輯: defsrisars (223.141.99.183), 01/18/2017 15:48:39
文章代碼(AID): #1OVbzYHv (java)
文章代碼(AID): #1OVbzYHv (java)