2013-09-30 33 views
1

所以基本上,我必須寫一個戰列艦AI,它遵循的是傳統的規則,除了事實,你不通知,無論您的拍攝已經沉沒船舶 - 是否是命中還是失敗
目前我有一個可以工作的AI,但是它有一個問題,就是它必須在每艘敵方船隻周圍發射槍彈,因爲它不知道船沉沒 - 這個視頻可能會更好地解釋它(對於那些想知道的,有一些自定義的船形狀,並且板是L形):https://www.youtube.com/watch?v=SzLspp4JzNE
有關如何減少所需鏡頭數量的任何建議?沒有被通知到船的戰艦AI被擊沉

非常感謝:)

回答

0

最基本的思想是保持關於像是凹陷船舶以及其餘的(我假設你知道,有a_i附帶i件)的信息,而你所有那些沉沒4件,並擊中一些連接的3件船,你會知道,沒有必要再拍攝它。因此,一般情況下,只要你擊中被擊中的船隻,因爲被擊中的部件數量要比最大型的非空艦艇的部件數量少。而且一旦你沉沒了一些 - 你會減少相應的船級計數器。

一些有趣的選擇是根據玩過的遊戲學習一些船舶位置和形狀的統計數據 - 如果你與人類玩家對抗,最有可能的是,他不會放置任何船隻 - 有一些心理方面將您的決定「偏向」您認爲「難以找到」的展示位置 - 您的計劃可以學習此類條件概率,並使用它來承擔某些船舶的保密工作,而不會在周圍拍攝。不幸的是,這不適用於精心設計 - 統一放置船隻 - 算法。

1

電腦能有什麼樣的信息?船的數量,每艘船的方塊數,每艘船的形狀。該算法必須檢查所有剩餘船隻的形狀,並選擇下一個領域,以使擊中的機會最大。也許有一個比「最大命中機率」更好的長期戰略,但在鑽研戰略之前解決形狀識別部分。

如果船的形狀不事先已知,那麼有沒有什麼算法可以做。它所能做的就是檢查被擊中的區塊是否是最大的剩餘船隻的一部分。這裏的先進策略是確定最大的船是否不能在其他地方。如果有其他船隻剩下然後用輪流搜尋他們,但這樣也消除了最大的船是在其他地方的可能性搜索模式。但是,如果每輪的攻擊次數與剩餘艦艇的數量成正比,那麼你必須儘快消除所有的船隻,所以上面的「高級」策略不應該是用過的。