# Chapter 2 來點輸入

## 1 按鈕觸發

當使用【按鈕觸發】的方塊時，只要按鈕被按下，就會執行方塊內的程式。

![方塊位置，分類─輸入](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LM_o4a5RvbRxj7nnxbD%2F-LM_w6RcAULEnF_s4ZvY%2Fm13.PNG?alt=media\&token=23c69eb8-15b3-46d6-b613-ee2cbb78675a)

### 1-1 製作一個答題板

利用按鈕方塊來設計一個可以回答問題的資訊板，當按下A顯示肯定(同意)，當按下B顯示否定(不同意)，當按下A+B時會把答案清掉。

![這樣就可以用microbit來回答嚕](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LMaA80tfByfpj3rl4Q-%2F-LMaC2eVPiHjzEgmoQ_Y%2Fm14.PNG?alt=media\&token=5b8b2f58-0dc8-4257-bb85-6f5d78d94f9d)

### 1-2 剪刀、石頭、布

這是一個挑戰，請各位利用按鈕功能設計一個顯示剪刀、石頭、布的圖案用來跟同學對戰。

## 2 手勢觸發

手勢觸發意味者你去改變micro bit主板的狀態，如晃動、傾斜、翻面等，當你設定好觸發的狀態時，就會執行方塊中所包含的程式方塊。

![方塊位置，分類─輸入](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LMbhiRy_I12ZhvO0EwW%2F-LMbju1B3d5lCuLAlqyb%2Fm15.PNG?alt=media\&token=61fb5637-29f2-4d2e-a2df-da2027441ed7)

![按下右方小三角形可以切換偵測的狀態](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LMbhiRy_I12ZhvO0EwW%2F-LMbk1e6H_gB2GYNvtuW%2Fm16.PNG?alt=media\&token=c68db5b8-14b7-41cf-8a21-5856c10e07d0)

### 2-1 各種狀態說明

* **晃動**：顧名思義就是搖晃micro bit時就會觸發。
* **下側偏低**：意思就是讓micro bit的下方(引腳金屬片那一側)的高度比上方(接USB那一側)低時就會觸發，最容易理解的狀態就是直立起來。
* **上側偏低**：micro bit上方的高度比下方的高度低時就會觸發，最容易理解的狀態就是倒立豎起micro bit。
* **上面朝上**：micro bit的正面(有5x5 LED燈的那一面)朝向天空時會觸發。
* **背面朝上**：就是讓micro bit的正面朝向地版，背面自然就會朝向天空，當這種情況發生就會觸發。
* **左側偏低**：micro bit的左側壓得比右側低就會觸發。
* **右側偏低**：micro bit的左側壓得比右側低就會觸發。
* **自由掉落**：當micro bit掉落時(在空中時，並不是碰到地上的時候)就會觸發。
* **各式G重力**：簡單說就是輕輕甩到快速用力甩的差異，G越大代表micro bit必須被甩的更用力才會觸發。

{% hint style="info" %}
有些狀態基本上會互相衝突，如晃動跟3G重力(輕輕甩)很可能會重疊，使用上要多思考。
{% endhint %}

## 3 與變數的完美搭配

變數是用來暫時儲存資訊數值，方便等等進行操作。例如有個變數用來記錄得分，每當得分情況發生時，就把變數呼叫出來並加上數值1，就會讓得分+1。

![](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LMebCmVce2wBlYp8U_o%2F-LMei01ePnbv5cxK6Vny%2Fm18.png?alt=media\&token=e67055f8-e0ef-4976-9775-66b69cd514e3)

### 3-1 變數裡面的指令解說

![方塊位置，分類，變數](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LMebCmVce2wBlYp8U_o%2F-LMeihbvfCN2O5mhNmNT%2Fm19.png?alt=media\&token=8fdee342-ab88-4b22-b25d-404ba1c16e75)

#### A 建立一個變數

按下按鈕就可以建立一個變數，並給這個變數一個名稱，方便等等呼叫它裡面裝載的數值。

#### B 目前已經建立的變數

以範例圖片來看，目前有兩個變數，一個名字叫【item】，一個名字叫【次數】，這個方便就是代表變數裡面目前所裝載的數值。

#### C 將設定的數值指派給變數

利用這個指令可以將數值或是文字等資訊指派給變數。

#### D 將變數的數值進行改變(增加)

利用這個指令可以讓變數裡面的數值增加，後面所填入的數字就是要增加的量，也可以填入負數，這樣就是減少的意思，如填入-1 ，代表將數值減少1。

### 3-2 實作搖晃計數器

想想看，如何利用手勢感應指令與變數指令來設計出一個，每次搖晃都會增加1的計數器。

執行程序：一開始螢幕顯示0，每一次搖晃就增加1。

![提示指令](https://107164227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMV3ggdjf4BG7CVQRa3%2F-LMetp0oDDT5KSZal2dt%2F-LMevl5UC1Ba-9OOC04_%2Fm20.PNG?alt=media\&token=184c7fe0-fcd4-4942-9a54-a2ba395a58bd)

### 3-3 實作機智解題小玩具

現在我們繼續來創作，利用手勢感應與變數設定來做一個機智解題小玩具。請先寫程式將microbit設定成有以下的功能。

* 一開始會顯示初始值0。
* 上側偏低則是會讓中間的數值-3。
* 下側偏低則是會讓中間的數值-5。
* 左側偏低則是會讓中間的數值+5。
* 右側偏低則是會讓中間的數值+9。
* 按下A鍵會將數字歸0。
* 一直讓中間顯示的數值是最新數字。

當完成上面的設計之後，挑戰讓中間的面板顯示1，顯示2，顯示3...到顯示9。

### 3-4 加點刺激

將剛剛做完的機制解題小玩具增添一些新功能，改變一下玩法。條件如下

* 一開始會顯示初始值0。
* 上側偏低讓中間的數值-3。
* 下側偏低讓中間的數值-5。
* 左側偏低讓中間的數值+5。
* 右側偏低讓中間的數值+9。
* 會記錄數字的加減的次數。
* 按下A鍵會顯示目前數值。
* 按下B鍵會顯示目前所進行加減的次數。
* 按下A+B鍵會讓數字及次數重新歸零。

現在已經改良成可以記錄使用的次數，來試試看你花了多少次達成中間的數字為1、為2...到9。
