昨天的猜數字遊戲範例裡,我所設定的三個數值都是固定的,這樣玩過一次的人應該就不會想玩了xD
所以今天繼續來學習數學物件,以及取得亂數的方法。
數學是一個物件,而數學物件有以下的方法:
數學亂數:隨機產生 0 ~ 1 之間數字,但不包含1
Math.random();
----> return 0.6974671666976064
最小值
Math.min(100, 0, -8);
----> return -8
最大值
Math.max(150, 20, 50);
----> return 150
取最接近的整數,但小於數字本身:因為小於3.9,所以不會出現 4 這個玩意兒
Math.floor(3.9);
----> return 3
一樣取最接近的整數,跟上例不同的是它會取大於數字本身的數
Math.ceil(4.55634707);
----> return 5
這也是取最接近的整數,如果有小數點,四捨五入
Math.round(3.9);
----> return 4
Math.round(4.5);
----> return 5
Math.round(4.4);
----> return 4
Math.round(4.49);
----> return 4
要抓取亂數整數的話:
Math.random(); 因可隨機產生 0 ~ 1 的小數點,用它乘以我要的數目,
再用 Math.floor(); 或 Math.ceil(); 將數字轉成整數,整數就出現了;在我的範例使用 Math.floor() 。
這次的題目設計是最小 / 正確 / 最大值都是亂數產生,先用函式算出來並 return 值
function startRandom(minNum, maxNum) {
return Math.floor(Math.random() * (maxNum - minNum + 1) + minNum);
}
其中這句是亂數取得整數的公式
Math.floor(Math.random() * (maxNum - minNum + 1) + minNum);
然後幫最小 / 正確 / 最大值設定範圍
var smallestNum = startRandom(0, 100);
var correctNum = startRandom(smallestNum, smallestNum + 100);
var biggestNum = startRandom(correctNum, correctNum + 100);
如此一來三個數值都出現了~
這次作出了連我都不知道答案是多少,網址點我
以下開放猜中的人貼截圖就可以獲得我畫的卡片一張!(我很懷疑誰要orz)
以上同步發表於 http://azzurro.blog.aznc.cc/learn_javascript_13/