下面是函數的定義:算法所需:可預測的隨機瓷磚在Javascript
/**
* @param {number} x The x-coordinate (can be positive or negative)
* @param {number} y The y-coordinate (can be positive or negative)
* @param {number} tileCount The number of available tiles
* @return {number} The selected tile index
*/
function getRandomTileIndex(x, y, tileCount) {
// Fill in code here
}
我可以,例如,return x * y % tileCount
,但我要爲大家介紹的隨機性。我可以做return Math.round(Math.random() * (tileCount-1))
,但那麼每次都會返回不同的瓦片索引。
我希望此功能是確定性的,所以當使用相同的輸入(x, y, tileCount)
時,總是會發生相同的輸出。但我也希望它(儘可能)顯示爲隨機分佈均勻 - 隨機性的質量不一定是完美的。
這個隨機瓷磚發生器的目的是爲了一個(幾乎)無限網格的遊戲 - 用戶在中間(x,y) = (0,0)
開始,並將向任何方向向外移動 - 我只有固定數量的背景拼圖「地面」 - 我希望它能讓你每次載入遊戲時都看起來一樣。
檢查這個職位:http://stackoverflow.com/questions/424292/how-to-create-my-own-javascript-random-number -generator-that-i-can-also-set- – Sam
感謝Sam對那個有用的鏈接 - 我認爲seedrandom正是我所需要的。 – codefactor