我想爲我愚蠢的遊戲生成一個隨機等級。遊戲包括激光/探測器在可能的鏡子的方形場周圍。像這樣:如何在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,我們測試它達到在所有四個方向的激光器,避免undetectedable鏡子的希望鏡子。這有點無聊的代碼,所以我在這裏忽略它。
什麼問題 - 你的算法工作 –
它是如此該死的慢:(我要限制它的重試次數,否則會採取年齡來生成場 – cmouse