3.13 實作:樂透開獎與兌獎程式

樂透開獎 + 兌獎 結果示意

第 1 步:網頁檔及介面建立

lottery 資料夾下,建立 index.html 檔,原始碼如下 :

以下原始碼,請放在 body 標籤裡面:

完成的示意圖:

第 2 步:補 0 的函式

將 script 標籤,放在 body 的結尾標籤之前,然後放入以下的程式,試著解讀與執行:

可測試以下:

第 3 步:建立獎號

所有獎號:01 ~ 49

開獎獎號:總共7個,前6個為一般獎號,最後1個為特別號。都不能重覆。

加入以下的原始碼:

在 console 中,試著印出 nums_array 確認是否為 ["01", "02"......, "49"]。

第 4 步:寫一個函式,陣列當中隨機挑選一個

nums_array 是一個 01 ~ 49 的陣列,會從中隨機挑選一個,放到 lottery_result 陣列當中。

但是,每次在隨機挑選的時候,應該先排除已經抽過的,排除掉之後,才隨機挑一個。

完成的原始碼如下,請加入以下的函式,試著解讀與測試:

可執行以下程式來測試:

第 5 步:開獎 - click 事件綁定

點擊開獎的按鈕,執行對應的匿名函式。

加入以下的程式:

測試看看,點擊按鈕之後,會跳內建的彈窗。

第 6 步:每隔0.1秒取得亂數,呈現於頁面

沿續上一步的程式,在匿名函式中,加入以下的程式:

第 7 步:設定 2 秒鐘之後,停掉 setInterval 的程式

接續上個步驟,在其底下,加入以下的程式:

第 8 步:共七個獎號,跑迴圈

將以下這段程式(前兩個步驟已寫過,將 0 改成 i),跑迴圈:

迴圈程式如下:

問題點

將「開獎 GO」按鈕,點擊多次的話,會發生什麼狀況?試試看。

第 9 步:停掉開獎按鈕的點擊並重新啟用

在「開獎 GO」按鈕的 click 事件觸發之後,先執行以下程式:

再測試看看之後,若想要讓「開獎 GO」按鈕可以再次點擊的話,就讓開獎完之後,讓按鈕可以再次點擊,只要移除按鈕上的 disabled 屬性即可。所以在 setTimeout 當中,加以下的程式:

第 10 步:加上兌獎的結構

在原來的 article 標籤,同層的下方,加入以下的原始碼:

完成的介面示意:

第 11 步:兌獎按鈕的 click 事件綁定

在 script 標籤裡面的最後面,加入以下的 JS 程式,然後確認點擊「兌獎 GO」按鈕時,有跳 alert 彈窗:

第 12 步:抓出使用者輸入的六個獎號

按下「兌獎 GO」按鈕之後,在 console 中印出使用者輸入的六個獎號,在上一步的匿名函式中,執行以下程式:

第 13 步:區分獎號

接續上一步的程式碼,繼續往下執行以下的程式碼:

第 14 步:判斷獎號有沒有中

接續上一步的程式碼,繼續往下執行以下的程式碼:

第 15 步:頁面上顯示中獎的結果

接續上一步的程式碼,繼續往下執行以下的程式碼:

完成結果,如下圖的藍字部份:

完成。

Last updated