簡體   English   中英

如何在Javascript中為激光游戲生成關卡?

[英]How to generate level for a laser game in Javascript?

我試圖為我的愚蠢游戲生成一個隨機級別。 該游戲包括在可能的鏡子的方場周圍具有激光/探測器對。 像這樣:

/*

LLLLLLLLLL
LmmmmmmmmL
LmmmmmmmmL
LmmmmmmmmL
LLLLLLLLLL

*/

現在,我有一個算法,通過依賴隨機放置和拒絕壞位置來生成一個非常差的級別。 這不是很快,並沒有真正產生我想要的那種領域。 請隨時訪問http://cmouse.desteem.org/laser/

歡迎任何建議。

當前算法看起來像這樣:

function createLevel:
  for i=0 to mirrors:
    mirrorLocation = pickRandomPosition
    mirrorType = pickRandomType

    if (verifyPosition(mirrorLocation, mirrorType)):
       i = i - 1
       next
    else:
       storeMirror(mirrorLocation, mirrorType)

在verifyPosition中,我們測試鏡子在所有四個方向上到達激光器,以避免無法檢測到的鏡子。 這有點無聊的代碼,所以我在這里省略它。

確保它不會多次嘗試多個字段的一種方法是迭代字段並根據某些概率放置鏡像。 放置鏡像的概率應該是#mirros / #fields,因此預期的鏡像數量最后是#mirrors。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM