微軟 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 台灣 商店

Microbit 中文 課程 : Python , Javascript, 物聯網

              中國

Edit this page on GitHub

 

—————

返回