2012-11-17 109 views
1

我希望有人能指出我在正確的方向。我有一個叫Farkle的骰子游戲。該遊戲作爲一個雙人遊戲運行良好。現在我想爲一個玩家遊戲實現一個AI。基本上所有我想要它,所以如果當前骰子得分> =可以說300把骰子傳回給人類玩家。還有一些其他的東西我希望能夠找到,比如所有的骰子都已經被使用過了,並且所有的6個骰子都可以再次滾動。AI的骰子游戲F 012

我是新來的整個Java/Android世界,所以真的不知道從哪裏開始或尋找任何骰子AI例子的例子。我發現了一些撲克,但我認爲他們是更復雜,然後我需要或甚至可以理解。有任何想法嗎?

順便說一句...我願意將遊戲的源代碼發送給願意或能夠幫助的任何人。

在此先感謝!

+0

請問您能更具體嗎?您的遊戲具有哪些功能無法完成,比如if/else語句? –

+0

我不確定如何更具體,但我會嘗試。人類玩家完成後,我希望它能檢查人類玩家(普通2人遊戲)或AI。如果人工智能然後擲骰子和「一些如何」,選擇正確的骰子,如果可能的分數是> = 300,然後將它傳回給玩家1,如果不再滾動等等......我不是說它可以'用if/else語句來完成。這很可能是,這可能是最好的選擇。這就是爲什麼我問...我真的不知道該怎麼做。 – Sobo

回答

2

說實話,我不知道任何AI庫可以幫助你。另外,我必須真正閱讀farkle規則來理解這個概念,以及AI如何融入到這個概念中。因此,我想到了2個選項,但您必須實現自己:
1.使用神經網絡。該網絡將使用backpropagation進行培訓。作爲一個錯誤,你可以使用6個骰子的差異(可以用6個不同的輸出神經元來模擬),總和爲300.如果你搜索了一點,我不相信你會發現很難找到一個Java庫或源代碼代碼示例。
2.使用遺傳算法。對於這個實際上有一個相當不錯的庫JGAP。染色體將是滾動所有6個骰子的結果,並且適應度函數將是他們的得分。
當然,上面提到的兩條路線都很通用,可能不太準確。我擔心你必須熟悉某些AI概念/算法。 farkle遊戲並不是很流行擁有一個AI包(比如國際象棋),所以我相信你必須自己實現(也許使用一些庫)。希望這可以幫助。

+0

我只是在編程方面接受教育,甚至開始瞭解任何。我看着你提供的2個鏈接,我就像一頭大燈裏的鹿。我可以看到我有一條很長的路在我前面。感謝您花時間至少回答我的問題。 – Sobo

+0

不客氣,雖然我相信你也可以用更切實可行的方式說謝謝......無論如何,我希望你順着AI道路走好運:) –