微軟 micro:bit 創意課程系列--Rock Paper Scissors Teams
2017-09-09 18:28微軟 micro:bit JavaScript 創意課程系列--Rock Paper Scissors Teams
Massively multi-player rock paper scissors!
玩剪刀石頭布 通常是一個雙人遊戲,但它是可以更多的人一起玩! 當玩兩個以上的玩家時,它成為一個團隊遊戲:所有玩家同時搖動,然後石頭,布,剪刀的數量在所有玩家之間計數。 擁有最多球員的球隊贏得了比賽。
從基本版本的RPS(basic version of the RPS game)遊戲開始,我們將更改代碼,以便the micro:bit計數並顯示同一個團隊中的玩家人數。 使用無線電通信,the micro:bit將發送其狀態並接收其他電路板的狀態。
讓我們開始吧!
Starting blocks
起始塊
我們開始形成一個。 基本版本在搖動事件中選擇武器,並相應地顯示圖標。 仔細觀察下面的代碼,以刷新您的遊戲內存
Step 1: Refactoring the rendering
第1步:重構渲染 Refactoring
重構是一個有趣的詞,用於編碼,這幾乎意味著重組 reorganizing。 在這種情況下,我們將將顯示岩石/紙張/剪刀圖標的代碼移動到自己的永久循環中。
Step 2: send status via radio
步驟2:通過無線電發送狀態
我們通過無線電將武器的價值發送到永遠的其他micro:bit。 由於無線電分組可能或可能不會到達,所以繼續發送它們是個好主意。
我們還設置無線電組,並發送設備序列號(一個唯一標識一個micro:bit的數字),我們將在以後需要。
Step 3: the team roster
步驟3:團隊名冊
所以所有玩家都不斷地播放面對他們挑選的其他玩家。 我們添加接收這些狀態的代碼並對其進行計數。
我們將添加一個Array變量,其中包含與當前播放器相同的團隊中的所有玩家。 這個名為玩家的陣列就像你的團隊名單:它包含與你的武器相同的micro:bit序列號。
Step 4: Receiving a message (part 1)
步驟4:接收消息(第1部分)
在收音機收到的事件中,我們從另一個微處理器接收到狀態:bit。 點擊*齒輪添加串行參數,因為我們需要它來識別誰發送了該數據包。
我們從收到的數據中計算出三個值:
•match,一個布爾值(match, a boolean value),表示其他micro:的武器是否與我們當前的武器相匹配
•player_index(player_index,),其他板序列號陣列中的位置。 如果它不在數組中,它將為-1
•found 一個布爾值 (found, a boolean value),表示micro:bit序列號是否是the players array
的一部分
Step 5: Receiving a message (part 2)
步驟5:接收消息(第2部分)
有兩種情況,我們需要處理時,看著比賽,發現:
•如果我們有一個比賽( match ),並且球員沒有在列表中找到(not found),那麼我們將它添加到球員(players
)
•如果我們沒有比賽( match ),並且球員在列表中找到(found),那麼我們將其從球員中刪除
我們將上述兩個規則轉換成兩個if語句,其中序列號被添加或刪除。
Step 6: reseting the team
步驟6:重新組隊
如果另一位玩家離開遊戲怎麼辦? 他將停止廣播其狀態,並將留在我們的球員名單中。 為了避免這個問題,我們每次搖動時重置播放器陣列:
Step 7: showing team score
球隊得分是球隊中的球員數量,這歸結於球員陣容的長度(the length of the players array)。 我們在永久循環中添加一個顯示編號塊來顯示它。
The final code
最後的代碼
現在是時候將所有的程序粘貼在一起了。 仔細閱讀所有步驟,並組合各種功能。 最終,它應該像下面的程序。 下載它,並與你的朋友玩!
Microbit 中文 課程 : Python , Javascript, 物聯網
標籤:
—————