2012-09-02 53 views
4

這個流行的遊戲叫做Unblock Me。其目的是消除紅色塊的前方所有障礙,有一個清晰的路徑退出:在遊戲中生成一個隨機棋盤的算法解鎖我

enter image description here

什麼會產生對這個遊戲的隨機板明智的方法是什麼? 我想沿着這些路線的東西:

  1. 廣場出口處的紅色塊。
  2. 隨機將M塊放在紅塊周圍。
  3. 使N隨機移動,直到紅色塊被阻塞。
  4. 增加每個級別的M或N.

請注意,移動設備的CPU功率和RAM有限,因此效率非常重要。

+0

您可以在遊戲外部生成隨機棋盤並將棋盤作爲關卡存儲在遊戲中。無需在遊戲中生成它們。這保持水平一致。 – nhahtdh

+0

@nhahtdh,不錯,但我想爲用戶創造一個真正獨特的體驗,每個級別都完全不同。 – TheOne

+0

@Ramin:你應該只在技術上可行時才這樣做。如果您還想保證某些級別的難度,則此問題的搜索空間可能無法實現。 –

回答

2

我打過那場比賽很多,所以這裏有一些想法:

  • 簡單地使ň隨機移動不一定能使水平更難。您最終可以在n移動中解決的狀態,其中n明顯小於N
  • 這些級別可以在臺式機上生成,然後簡單包含在手機遊戲中。這樣可以進行更徹底的搜索(最有可能是基於樹型和回溯),以確保該級別需要至少一定數量的移動來解決。水平應該是越難,當然應該需要更多的舉措。
  • 您可以在算法中添加更多的知識:如果您想讓紅色片段傳遞,則長度爲3的垂直片段必須位於底部位置。這限制了水平可以解決的方式。這可以使水平更加困難,特別是當那裏有多個垂直部分時。