1 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
在正常情況下,您可能遇到的最大有效移動數(shù)約為 100。隨著升級,它可能會更高一些,所以如果您有 9 個皇后,您可能會達(dá)到 200。不過,1000 還是太大了。
生成有效動作列表應(yīng)該意味著您甚至不需要檢查它們是否有效。但是,我想你正在生成所有組合的列表,即使它們涉及通過另一塊,用你自己的塊落在一個正方形上,或者落在棋盤域之外。
我會說,在你的第一代做這些檢查:
對于每個棋子,檢查 4 種可能的移動并存儲有效的移動
對于每個城堡或主教,按順序檢查 14 個可能的位置,從棋子位置開始,向 4 個方向前進(jìn),直到你擊中一個無效空間(擊中你自己的棋子意味著你走得太遠(yuǎn)了。擊中對手棋子意味著你'我打了最后一個)
對于皇后,與城堡或主教相同,但有 8 個方向而不是 4 個
對于騎士,檢查 8 種可能的動作是否有效
對于國王,檢查 8 種可能的移動是否有效
檢查兩個城堡移動中的任何一個是否可行
對于每一步,您還需要確保它不會讓您受制于人。該功能可能可以優(yōu)化,因此您只能從國王的位置向外看。
一旦你遍歷了所有棋子,最多 16 個,你的動作列表應(yīng)該只包含有效的動作。
事情變得昂貴的地方是你的前瞻性。您想模擬未來的多少步?你如何衡量每一步的價值/風(fēng)險?
然后是簡介。您需要一個好的采樣分析器來優(yōu)化和找到您的熱點(diǎn)。注意昂貴的便利功能,如有in_array
可能請避免使用。循環(huán)中的循環(huán)會降低性能。
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報