大樂透自動選號

在人人都想買大樂透一搏手氣的今天,是否有想過自己做個電腦自動選號程式呢?在這個範例將會使用 Webduino Blockly 實作大樂透自動選號程式,讓電腦為你報個名牌吧!( 自動選號為邏輯機率產生,是否中獎與教學網站無關 )

本篇範例會使用:變數文字迴圈列表顯示文字語音朗讀,如果尚未熟悉相關用法,請點選參考閱讀。

步驟 1、透過迴圈建立列表

因為大樂透的號碼為 1~49,如果要手動建立列表,必須得做重複的動作 49 次,而這些「重複」的行為,可以透過「迴圈」輕鬆實現。

一開始先使用「建立空列表」,設定變數 arr 為空列表。

透過迴圈建立列表

放入「指定間隔迴圈」,設定範圍 1~49,間隔為 1。

放入「指定間隔迴圈」

在迴圈內使用「指定列表內容」的列表積木,在每次迴圈執行的時候,就會將數字寫入對應的列表順序內,例如迴圈在第 10 次的時候,就會在列表第 10 個位置寫入 10 的數字,如此一來就能輕鬆完成具有 1~49 數字的列表。( 迴圈內預設變數為 i )

使用「指定列表內容」列表積木

步驟 2、隨機從 1~49 取出六個數字

有了包含 1~49 數字的陣列後,必須要再建立一個變數 result 作為結果的陣列,由於這個陣列只會包含六個數字 ( 因為大樂透只會取出六個數字 ),所以一開始同樣用「指定間隔迴圈」,設定範圍 1~6,間隔 1,並將迴圈內的變數從 i 改為 j。

不把變數 i 修改為 j 也可以,但為了確保變數不會重複影響,還是建議初學者修改。

隨機取出六個數字

放入一個變數命名為 position,內容從 1 到 arr 陣列長度隨機取出一個數字,這個數字表示「陣列 arr 的位置」,並不是大樂透的號碼。

取得隨機陣列數字,表示陳列位置

接著使用「取出列表內容」的積木,依據剛剛隨機取出的陣列位置 position,將指定位置的數值「取出並移除」,然後把取出來的數值先暫時放在一個變數 num 裏,這個數字就是大樂透隨機選號六個號碼的其中一個。

假設 arr 內容是「11,12,13,14,15」,position 從 1~5 的數字間隨機挑出 3 ( 5 是 arr 陣列的長度 ),在這個積木執行之後,arr 就會變成「11,12,14,15」,長度變成 4,而下一次的 position 就會變成從 1~4 挑一個數字。

此處比較容易搞混「列表長度」與「列表內容」,要花點時間思考。

將指定位置的數值「取出並移除」

最後就是把取出的數字,在每次迴圈執行的時候依序存入結果 result 列表,當迴圈執行六次之後,result 就會有六個數字。

將取出的數字依序存入結果列表

步驟 3、顯示並朗讀結果

只要使用顯示文字的積木顯示 result,執行後就會在網頁上看到六個數字,為了避免字體太大,這邊把字體設定為 30 的大小。

顯示並朗讀結果

最後使用語音朗讀積木,唸出大樂透自動選號的結果。

使用語音朗讀積木唸出號碼

完成結果

執行程式之後,網頁裡會出現六個號碼,電腦同時會朗讀相關的語音。

範例解答:https://goo.gl/5g8rA4

網頁出現六個號碼,電腦同時朗讀數字