2011年6月19日 星期日

Android手機程式自學方案-03

上次寫了一個計算BMI值的程式,應該算是在做數學運算與型態轉換的練習。
接著來做做陣列吧~~~寫一個樂透程式

主要注意的是:
1. 數字必須是亂數產生
2. 數字範圍 1~49  (這是廢話嗎!!)
3. 數字不能重複

第一與第二個問題是:使用亂數產生命令..Math.random()產生0~1的亂數
要產生範圍值則: Math.random()*(max-min)+min,所以要產生1~49的亂數,Math.random()*(49-1)+1

後續的問題是,數字不能重複,這問題比較大,因為用純JAVA寫的話,如下:



不包含迴圈,只要五行就解決了,但是直接套用至Android上,卻發生亂數會重複的問題,問題出在哪???這個就有待之後探討~

所以要能夠達成亂數不重複,只好用暴力比對法了,一筆一筆比對,雖然會慢一點(感覺不出來),不過一樣可以達成目的,如下寫法:



所以樂透程式就這樣誕生了~~執行畫面如下:

5 則留言:

匿名 提到...

你可以先建立一個不重複的數字陣列 1~49
然後將這個陣列進行亂數排序後,再取出陣列的前六個數字。
這樣就不用進行重複比對的判斷囉...^^

蒂諾 提到...

這樣也行,用 Collections.shuffle(arr);
來打亂,這也是個好辦法喔!

趴趴狗 提到...

請問大大是否可把這程式MIAL給我呢 我想參考參考

Unknown 提到...

請問大大是否可把這程式MIAL給我呢
我想參考ˋ看看

蒂諾 提到...

程式已經在圖片裡囉~程式很短..修改一下可以寫的更好