大樂透自動選號
在人人都想買大樂透一搏手氣的今天,是否有想過自己做個電腦自動選號程式呢?在這個範例將會使用 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 的大小。
最後使用語音朗讀積木,唸出大樂透自動選號的結果。
完成結果
執行程式之後,網頁裡會出現六個號碼,電腦同時會朗讀相關的語音。