---
# System prepended metadata

title: 3小遊戲

---

# 3小遊戲

## 需求擷取
給我一個APP，希望可以玩到不止一個遊戲，可以的話能在玩的時候不要被媽媽發現。
## 需求分析
1.有不同遊戲
2.防媽媽裝置
### Use cases 使用案例
```plantuml

@startuml
:User: --> (玩遊戲)
:app:-->(輸出分數)
@enduml

```
### User Stories 使用者故事
日華是一名資訊老師，在課堂中把作業派給學生後，他覺得好無聊，於是希望有個app可以打發時間，但又不希望被學生看到他在課堂上玩手機，被發現是薪水小偷，因此也希望這個app可以有不讓學生發現他在玩遊戲的功能。

| 測資 | 輸入 | 輸出 |
| -------- | -------- | -------- |
| 測資1     | 無     | 分數|
## 流程圖
### 1.井字遊戲
```flow

st=>start: Start
cond1=>condition: 按按鈕
cond2=>condition: 是否連線
light=>inputoutput: 輸出結果 
End=>end: 程式結束

st->cond1->cond2
cond1(yes)->cond2
cond1(no)->cond1
cond2(yes)->light->End
cond2(no)->cond1

```
### 2.維尼的逆襲
```flow

st=>start: Start
cond1=>condition: 按下方塊
cond2=>condition: 球是否碰觸維尼
cond3=>condition: 分數是否為64
cond4=>condition: 球是否碰到上、左、右中任意邊界
cond5=>condition: 球是否碰到方塊
cond6=>condition: 紅球是否碰到下邊界

op=>operation: 分數+1
op2=>operation: 紅球速度+0.2
op3=>operation: 紅球速度為20
op4=>operation: 球反彈

light=>inputoutput: 輸出結果 

End=>end: 程式結束

st->cond1->
cond1(yes)->op3->cond6
cond1(no)->cond1
cond2(yes)->op->op2->cond3
cond2(no)->op4
cond3(yes)->light->End
cond3(no)->cond6
cond6(yes)->light->End
cond6(no)->cond4
cond4(yes)->op4->cond6
cond4(no)->cond5
cond5(yes)->op4->cond6
cond5(no)->cond2
```
### 3.煞氣卍賽車手
1.車車
```flow
st=>start: Start
cond1=>condition: 是否碰到球
light=>inputoutput: 輸出成績
End=>end: 程式結束
st->cond1
cond1(yes)->light->end
cond1(no)->cond1
```
2.球1
```flow
st=>start: Start
op=>operation: 球1速度為10
cond1=>condition: 球1是否碰到邊界
op2=>operation: 分數+10
cond2=>condition: 球1速度是否<60
op3=>operation: 球1速度+10

st->op->cond1
cond1(yes)->op2->cond2
cond1(no)->cond1
cond2(yes)->op3->cond1
cond2(no)->cond1
```
3.球2
```flow
st=>start: Start
op=>operation: 球2速度為10
cond1=>condition: 球2是否碰到邊界
op2=>operation: 分數+10
cond2=>condition: 球2速度是否<60
op3=>operation: 球2速度+5
cond3=>condition: 分數是否達到50

st->cond3
cond3(yes)->op->cond1
cond3(no)->cond3
cond1(yes)->op2->cond2
cond1(no)->cond1
cond2(yes)->op3->cond1
cond2(no)->cond1
```
4.球3

```flow
st=>start: Start
op=>operation: 球3速度為10
cond1=>condition: 球2是否碰到邊界
op2=>operation: 分數+10
cond2=>condition: 球3速度是否<60
op3=>operation: 球3速度+7
cond3=>condition: 分數是否達到70

st->cond3
cond3(yes)->op->cond1
cond3(no)->cond3
cond1(yes)->op2->cond2
cond1(no)->cond1
cond2(yes)->op3->cond1
cond2(no)->cond1
```
5.球4
```flow
st=>start: Start
op=>operation: 球4速度為10
cond1=>condition: 球4是否碰到邊界
op2=>operation: 分數+10
cond2=>condition: 球4速度是否<60
op3=>operation: 球4速度+4
cond3=>condition: 分數是否達到90

st->cond3
cond3(yes)->op->cond1
cond3(no)->cond3
cond1(yes)->op2->cond2
cond1(no)->cond1
cond2(yes)->op3->cond1
cond2(no)->cond1
```
6.球5
```flow
st=>start: Start
op=>operation: 球5速度為10
cond1=>condition: 球5是否碰到邊界
op2=>operation: 分數+10
cond2=>condition: 球5速度是否<60
op3=>operation: 球5速度+3
cond3=>condition: 分數是否達到100

st->cond3
cond3(yes)->op->cond1
cond3(no)->cond3
cond1(yes)->op2->cond2
cond1(no)->cond1
cond2(yes)->op3->cond1
cond2(no)->cond1
```
7.球6
```flow
st=>start: Start
op=>operation: 球6速度為10
cond1=>condition: 球6是否碰到邊界
op2=>operation: 分數+10
cond2=>condition: 球6速度是否<60
op3=>operation: 球6速度+1
cond3=>condition: 分數是否達到120

st->cond3
cond3(yes)->op->cond1
cond3(no)->cond3
cond1(yes)->op2->cond2
cond1(no)->cond1
cond2(yes)->op3->cond1
cond2(no)->cond1
```

## UI及元件說明

### UI 使用者介面
#### 主頁面
![](https://i.imgur.com/Vt3FH87.png)
#### OOXX
![](https://i.imgur.com/5DjRnap.png)
#### 煞氣卍賽車手
![](https://i.imgur.com/EqAHlWC.png)
#### 維尼的逆襲
![](https://i.imgur.com/hLkXvTK.png)
#### 媽媽來了
![](https://i.imgur.com/oGEzKz1.png)


### 元件說明

#### 主頁面
    1.標籤：標題
    2.按鈕：頁面跳轉

#### OOXX
    1.按鈕(開始遊戲)：開始遊戲
    2.按鈕(媽媽來了)：頁面跳轉
    3.按鈕(返回)：返回主頁面
    4.對話框：顯示勝負
    5.按鈕(九宮格內)：當被按下顯示O或X
    6.標籤：顯示輪到誰

#### 煞氣卍賽車手
    1.按鈕(開始)：開始遊戲
    2.按鈕(媽媽來了)：頁面跳轉
    3.按鈕(返回)：返回主畫面
    4.標籤(分數)：顯示分數
    5.對話框：顯示遊戲規則與分數
    6.球形精靈：當球形精靈碰觸到圖像精靈遊戲即終止
    7.圖像精靈：拖移畫布使其在畫布底層左右移動

#### 維尼的逆襲
    1.按鈕(開始)：開始遊戲
    2.按鈕(媽媽來了)：頁面跳轉
    3.按鈕(返回)：返回主畫面
    4.標籤(分數)：顯示分數
    5.對話框：顯示遊戲規則與分數
    6.球形精靈(紅球)：當其碰觸下邊界遊戲即結束
    7.球形精靈(不包含紅球)：其碰觸下邊界遊戲不會結束
    8.圖像精靈(BOSS)：任意球形精靈碰觸其，分數增加，紅球速度增加
    9.圖像精靈(方塊)：任意球形精靈碰觸其，反射球形精靈，拖移畫布使其在畫布中左右移動
    
    
#### 媽媽來了
    1.按鈕(返回)：返回主畫面
    2.標籤：顯示英文或中文
   

## 程式截圖
### 主頁面
![](https://i.imgur.com/cRC07Pq.png)

### OOXX
![](https://i.imgur.com/hu5aWVN.png)
![](https://i.imgur.com/VIY5yRi.png)
![](https://i.imgur.com/ozcRlSJ.png)
![](https://i.imgur.com/3qbrXci.png)
![](https://i.imgur.com/qG5oslY.png)
![](https://i.imgur.com/M98Gd2X.png)
![](https://i.imgur.com/Jgy3nut.png)


### 煞氣卍賽車手

![](https://i.imgur.com/xjjzL6q.png)
![](https://i.imgur.com/GJK2Q8G.png)
![](https://i.imgur.com/ZPmoLJF.png)
![](https://i.imgur.com/u24Bqc6.png)
![](https://i.imgur.com/le1hq2e.png)
![](https://i.imgur.com/xPdkBK2.png)
![](https://i.imgur.com/yXnMErP.png)
![](https://i.imgur.com/uxGdE82.png)
![](https://i.imgur.com/oTqO5FN.png)
![](https://i.imgur.com/JWPnB9e.png)
![](https://i.imgur.com/UQy9yMD.png)



### 維尼的逆襲


![](https://i.imgur.com/oR1Ao9G.png)
![](https://i.imgur.com/PZTcatG.png)
![](https://i.imgur.com/ZaWCmDd.png)
![](https://i.imgur.com/STDPZaV.png)
![](https://i.imgur.com/5ubC0k2.png)
![](https://i.imgur.com/g9bT2JA.png)
![](https://i.imgur.com/EHiFC3q.png)
![](https://i.imgur.com/JuAULHg.png)
![](https://i.imgur.com/C2CaKnx.png)
![](https://i.imgur.com/m45ZFSu.png)
![](https://i.imgur.com/YzHV4an.png)
![](https://i.imgur.com/P5m3hwP.png)




### 媽媽來了

![](https://i.imgur.com/EHVBBjx.png)

## 影片連結
https://youtu.be/irAGw290DuU

## 結論及心得
一開始原本是想寫很多遊戲，但後來發現時間不夠所以最後刪到剩三個，在寫第二個遊戲的時候，發現如果六顆球加速度相同，到最後會一坨掉下來，為了讓它不會一整坨球球掉下來，我把加速度改成不同的速度，這樣每顆球都會有高低落差，在寫第三個遊戲我發現如果球彈到右上角或左上角，球就會一直左上->方塊->右上無限循環，所以我就做了兩顆球當變因，讓其他球去改變紅球的指向，阿要是還卡那我也沒辦法，阿媽媽介面參考某R18遊戲，不知道的各位紳士們自己去查，在此聲明我絕對沒有玩....吧？

## 程式連結
 https://gallery.appinventor.mit.edu/?galleryid=6c5d81ef-27b1-45e2-9c77-aeb420c8f16b