ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

ランダム値

tmlib.jsには整数のランダム値を生成する関数 tm.util.Random.randint(min,max)があったので、どのように実装されているかソースを見てみた。

randint: function(min, max) {
    return window.Math.floor( Math.random()*(max-min+1) ) + min;
}

randfloatではmax-minにrandom()を掛けて求めていたが、randintはmax-minに1を足してからrandom()を掛けて、それをfloor()で小数点以下を切り捨てている。
自分の場合はround()で四捨五入したが、その場合だと中間値の5は大きい方になるので、偏りが出てくる。なので、こちらの方法のほうが良いだろう。