🟡程式設計: Part 2 --- "資料"角色的程式
💡說明: 資料角色負責產生數字清單,以本專案來說就是當角色被點擊時會隨機產生三個不重複的數字,以提供後續排序使用。
☑️資料角色程式分三部分: 程式開始(起始設定)、副程式-所有變數歸零以及當角色被點擊後的程式
✅重點提醒:
程式重新執行時,數字需進行更新
產生幾個數字以清單長度等於資料數量為準
排除重複數字的方式,可另建一個暫存變數來進行條件判斷
1️⃣程式開始執行(綠旗被點一下)
將所有變數歸零(建立新函式積木/副程式--所有變數歸零)
角色定位
提示"點擊開始發牌"
為避免程式重新執行時,上一次的數字清單仍存在(已經排序完成),故利用"所有變數歸零"的函式積木讓所有的變數皆重新歸零後再開始。此處利用呼叫副程式的方式來減少程式積木的堆疊。副程式(函式積木)則留在下一個程式區段定義。
點擊函式積木-->建立一個積木
2. 將新函式積木命名為"所有變數歸零"
💡提示:若無法輸入中文,可用"複製"積木名稱後再貼上,但須使用快鍵才能在空格內貼上文字( Ctrl+V )
當程式開始執行時,將所有的變數歸零(呼叫副程式),定位資料角色(定位座標可以查看舞台下方的資料),接著利用外觀積木讓程式顯示"點擊開始發牌"以便讓角色能開始產出數字清單。
3. 當程式開始時,呼叫副程式"所有變數歸零"
4. 將角色定位(可參看舞台下方的座標)以及讓角色說出"點擊開始發牌"以提醒使用者點擊角色
2️⃣ 定義所有變數歸零
將所有變數歸零
刪除數字清單的內容
將變數"發牌暫存"設為"空白" (建立新變數--發牌暫存)
此處是定義副程式被呼叫時會執行甚麼內容,首先將所有的變數進行歸零,接著刪除數字清單的內容,以防上次的資料仍留在程式中。
另外建立一個新變數"發牌暫存",是為了在隨機產出一數字後先進行暫存,以便後續進行判斷是否有重複的情況。當副程式被呼叫時,也必須將暫存變數清空,以便新數字產生使用。
從變數中的數字清單積木找到"刪除數字清單的所有項目"
2. 建立新變數
3. 將新變數命名為"發牌暫存"
💡提示:若無法輸入中文,可用"複製"積木名稱後再貼上,但須使用快鍵才能在空格內貼上文字( Ctrl+V )
4. 將變數"發牌暫存"設為空白 (記得變數要切換成"發牌暫存")
3️⃣ 當角色被點擊時,開始產生數字清單
將所有變數歸零(讓使用者不用重新啟動就能再次進行重新產生數字清單)
不停重複執行程式,直到選出3個不重複的數字為止(條件式為清單長度)
隨機取一個數字至變數"發牌暫存" (此處設定為從1-13)
判斷式: 如果數字清單中包含"發牌暫存"不成立,就將"發牌暫存"的數字放置數字清單中
此處程式若直接給定固定重複執行3次,過程中進行「隨機取數重複」的情形,例如取數順序為10、6、10,第三次取出的10若無條件判斷, 就會存入清單中,則數字清單則會出現重複的數字,因此我們要利用重複結構的"重複⋯直到"來重複執行程式,而這重複的次數是以"數字清單的長度"="資料數量",判斷式則是讓如果數字清單中包含"發牌暫存"的數字的條件不成立(換句話說即數字清單中沒有"發牌暫存"的數字時),就會將"發牌暫存"的數字放進數字清單中,直到3個數字都已放進清單中才停止程式。
注意變數名稱,勿放錯變數