# 積分戰與期末競賽
###### tags: `物聯網實境遊戲應用課程`
* [隊伍與積分表](https://docs.google.com/spreadsheets/d/1l-5mrQ2lcIxtM1tyzCV7Zf4egUjPZDbmUW6ketF0GzY/edit?usp=sharing)
## 賽程
* 採分組進行,4~5 人一組 (5人組只能有兩隊)
* 每兩周會有一次積分賽,一共三次,積分賽會影響期末決戰的種子權
* 期末決戰採單敗淘汰制,種子權與賽程表如下:

* 期末評分 (50%)
* 期末報告:10%
* 依期末競賽最後名次給分:40%
* A、B敗:20%
* C、D敗:25%
* E、F敗:30%
* G敗:35%
* G勝:40%
## 積分賽
* 以排名作為積分依據。第一名得 8 分、第二名得 7 分,依此類推。
* 三場積分賽的總分作為期末競賽的種子權依據。上圖賽程表即為總積分排名。
* 如果兩隊總積分相同,比三次積分賽的排名關係,三次中兩次排名較前者得到前位種子權。
* 如果上述方式無法分出勝負則抽籤決定先後位。
* 積分賽有個人戰與團體戰。個人戰先計算個人積分,再轉換成團隊積分,詳見個人賽的計分方式。
### 12/01 第一戰:Loop Solver

* 目標
* 延續期中的自走車演算法,處理岔路死路的情況、卡牆應對、穩定行走等
* 設計解迷宮的演算法,如:左/右牆法則
* 進階目標:記錄走過的岔路轉彎的類型,推測未知的道路情況
* 迷宮

* 包含兩個入口、兩個岔路、一個迴圈
* 每個岔路及轉角都是間隔一格
* 規則
* 每人有五次嘗試機會,可以挑選對自己有利的入口 (A或B)
* 通過為 A→B 或 B→A
* 每失敗一次,耗時會加上 5 秒作為懲罰
* 個人排名
* 先比走過的路徑覆蓋率 (覆蓋率 = 走過的格數 / 迷宮格數)
* **車體要完全進入到格內才會算有效走過**
* 覆蓋率相同比耗時,若耗時相同則排名相同
* 五次皆沒走出迷宮者,不會有排名,也不會有積分
* 團隊分數計算
* 個人排名先轉換成對應的個人積分,團隊分數 = 隊員個人積分總合 / 隊員人數。最後比較團隊分數作為團隊排名的依據,高者先位。
### 12/15 第二戰:自走車接力 Relay Race

* 目標:使用 wifi module 進行車間的通訊
* 迷宮

* 有四個簡單的單向道,S為起點,F是終點為死路
* 規則
* 每隊須派出 4 輛自走車參賽,分別置於迷宮的 4 個 S 位置。
* 每次可以派出不同的參賽組合,只要開始前告知執行順序即可
* 系統發出回合開始後,開始計時,第一台車出發,當第一台車抵達 F 位置 (會是死路) 後,發送訊息通知第二台車出發,依此類推,直到最後一台車抵達其 F 位置,發出回合完成,計時停止。
* 每隊有 3 次嘗試機會,取最佳成績
* 超過 120 秒為失敗,時間以 120 秒計
* 如果遭遇無法連線至 AP 的情況,則該組順延一次,不計嘗試次數
* 排名
* 先比完成度:四台車皆依序抵達 F 為前位
* 完成度相同比耗時,少者前位
### 12/29 第三戰:RFID 尋寶 RFID Finder

* 目標
* 利用 RFID Reader 讀取地圖版的 RFID 並與中控台交換訊息取得座標
* 車間交換地圖座標,嘗試走過沒有走過的地方
* 迷宮

* 迷宮中每個有效的地圖版上都有一個 RFID tag,透過讀取到的 RFID number 與中控台交換訊息可以得到對應的座標與類型。
* 每次測驗會挑出三個死路底的 RFID 做為寶藏
* 規則
* 一隊分兩組進行,一組有兩台車輛,由兩個入口進入
* 嘗試找出所有在迷宮死路中的寶藏
* 車輛連上線後,由中控台發佈開始訊息,計時開始;直到所有寶藏皆找出來後,計時結束。不需要走出迷宮。
* 每一小組只有 1 次嘗試機會。**當車輛卡住時,可以拿回從起點開始**
* 耗時超過 120 秒即算失敗,耗時以 120 秒記
* 排名
* 隊伍成績為兩組的總寶藏數與總耗時
* 先比找出寶物總數,多者先位;再比耗時,少者先位
## 期末競賽
[請見這邊](https://hackmd.io/s/Hk5MNSZSx#)
## [函式庫](https://github.com/LanKuDot/iot_brc)
課堂會提供積分賽與期末對戰會用到的函式庫,並提供 API Reference
* RFID (MFRC522):使用 SPI 通訊
* Wifi (KSM111 ESP8266):使用 UART 通訊
* 與中控台溝通的傳輸協定
## 迷宮空間
* 未來會開放 65102 的教室,採登記制,詳細方式與時間之後會公布在課程社團