私は愚かなゲームのためのランダムなレベルを生成しようとしています。ゲームは、可能なミラーの正方形のフィールドの周りにレーザー/検出器のペアを有することからなる。このように:今レーザーゲームのレベルをJavascriptで生成するには?
/*
LLLLLLLLLL
LmmmmmmmmL
LmmmmmmmmL
LmmmmmmmmL
LLLLLLLLLL
*/
、私はランダムな配置に依存する、と悪い位置を拒否することによって、非常に悪いレベルを生成するアルゴリズムを持っています。これはあまり高速ではなく、実際に私が持っているような種類のフィールドを生成しません。お気軽にお試しください。http://cmouse.desteem.org/laser/
ご迷惑をおかけして申し訳ございません。
現在のアルゴリズムは、このようなものになります。verifyPositionで
function createLevel:
for i=0 to mirrors:
mirrorLocation = pickRandomPosition
mirrorType = pickRandomType
if (verifyPosition(mirrorLocation, mirrorType)):
i = i - 1
next
else:
storeMirror(mirrorLocation, mirrorType)
を、我々はそれがundetectedableミラーを避けるのを期待して、すべての4つの方向のレーザーに到達したミラーをテストします。やや退屈なコードなので、ここでは省略します。
あなたのアルゴリズムは動作します –
それは非常に遅いです:(。私はそれにリトライ回数を制限する必要があります。そうでなければ、フィールドを生成する年月がかかるでしょう。 – cmouse