# Chapter 2 來點輸入

## 1 按鈕觸發

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

![方塊位置，分類─輸入](/files/-LM_w6RcAULEnF_s4ZvY)

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

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

![這樣就可以用microbit來回答嚕](/files/-LMaC2eVPiHjzEgmoQ_Y)

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

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

## 2 手勢觸發

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

![方塊位置，分類─輸入](/files/-LMbju1B3d5lCuLAlqyb)

![按下右方小三角形可以切換偵測的狀態](/files/-LMbk1e6H_gB2GYNvtuW)

### 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。

![](/files/-LMei01ePnbv5cxK6Vny)

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

![方塊位置，分類，變數](/files/-LMeihbvfCN2O5mhNmNT)

#### A 建立一個變數

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

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

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

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

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

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

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

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

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

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

![提示指令](/files/-LMevl5UC1Ba-9OOC04_)

### 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。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://568edu.gitbook.io/568microbit/chapter-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
