# HW02 評分標準
## 2.1 Subtitle Player
> 助教覺得人生好難,所以字幕很簡單,不然好難改
> 想說這題來送一下分,結果好像送不太出去...
### 顏色 (3 pts)
特別注意在 wiki 的外部連結有寫到,字幕顏色的格式是 `BBGGRR` 不是 `RRGGBB`。
**input1 (1 pts)** 粉色 `#FF00FF` (&Hff00ff)
**input2 (1 pts)** 橘色 `#FF5809` (&H000958FF) `#0958FF`
**input3 (1 pts)** 橘色 `#FF5809` (612607)
以下測試顏色皆使用範例的 `&Hffffff`
### 正常的字幕 (6 pts)
**input4 (6 pts)**
```
Dialogue: 0,0:00:03.00,0:00:04.00,Default,,0,0,0,,... Three minutes.
Dialogue: 0,0:00:06.00,0:00:08.00,Default,,0,0,0,,Oui, Chef. Turn on the stove. Come on. Hurry up. Oui, Chef.
```
### 時間延遲的字幕 (3 pts)
**input5 (3 pts)**
提早 3 秒出現,`shift: -3`,位移後的字幕時間應為:
```
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,... Three minutes.
Dialogue: 0,0:00:03.00,0:00:05.00,Default,,0,0,0,,Oui, Chef. Turn on the stove. Come on. Hurry up. Oui, Chef.
```
### 加快的字幕 (3 pts)
**input6 (3 pts)**
原時間為:
```
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,... Three minutes.
Dialogue: 0,0:00:06.00,0:00:10.00,Default,,0,0,0,,Oui, Chef. Turn on the stove. Come on. Hurry up. Oui, Chef.
```
`Speed: 2` 後,字幕時間應為:
```
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,... Three minutes.
Dialogue: 0,0:00:03.00,0:00:05.00,Default,,0,0,0,,Oui, Chef. Turn on the stove. Come on. Hurry up. Oui, Chef.
```
### 又時間延遲又加快的字幕 (3 pts)
**input7 (3 pts)**
原時間為:
```
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,... Three minutes.
Dialogue: 0,0:00:11.00,0:00:15.00,Default,,0,0,0,,Oui, Chef. Turn on the stove. Come on. Hurry up. Oui, Chef.
```
`Shift: -5, Speed: 2` 後,字幕時間應為:
```
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,... Three minutes.
Dialogue: 0,0:00:03.00,0:00:05.00,Default,,0,0,0,,Oui, Chef. Turn on the stove. Come on. Hurry up. Oui, Chef.
```
### 判錯 (2 pts)
**testcase 8 (1 pt)** `Shift: 11`
**testcase 9 (1 pt)** `Speed: 0.2`
## 2.2 Premier League
本題測試資料均僅從題目提供之 [資料集](https://github.com/datasets/football-datasets/tree/master/datasets/premier-league) 下載,共 10 個測試資料、每題佔 2 分。
排序方法根據 [Premier League 的官方文件](https://resources.premierleague.com/premierleague/document/2021/09/17/d9c834df-0f2c-454c-85bf-bf0da7586980/PL_Handbook_2021_22_DIGITAL_17.09.pdf),為 `Points (Pts) > Goal difference (GD) > Goals scored (GF)`。
每一份測試資料會根據每一行是否為正確的球隊,及該行是否每一筆資訊均正確。若有一行錯誤則扣 0.2 分,扣到 0 分為止。若印出不相關之資訊,則該測資零分。
關於排版,僅要求在每一個數字及隊伍名稱之間至少需要有一個空格、每隊各數字排序及每行的內容與範例內相同
所有測試資料及範例解答請自行到 GitHub 下載。
### 一些 Murmur
- 19 分以上的同學有 30 位,大家都有掌握到,你們好棒!
- 約 20 位同學在隊伍排序上有錯誤,導致僅拿到約六成的分數。除了要看清楚排序規則外,也可以搭配範例解答再想想要如何實作。
- 記得在繳交作業前先確認 debug 輸出要註解掉,避免因排版或是錯誤輸出失分!
- 這題的目的是讓各位自行 [找到官方的排名規則資料](https://weaintgotnohistory.sbnation.com/2021/9/20/22683552/what-are-the-tie-breaker-rules-for-the-premier-league-table-of-standings),並且讓各位在沒有標準答案的情況自己生出一份標準答案及透過多份資料反覆測試,同時也在排版上有需要一些小眉角需要注意。
- 很多人沒有把測試的 `.csv` 從資料夾內刪除,雖然沒有扣分,但還是建議盡量都先刪除喔!
## 2.3 Wordle Solver
鑑於上次慘烈的成績,本次測資較弱一點,有不少同學獲得滿分,大家繼續加油!
分數:T0~T8 各兩分,T9 T10 各一分
:::spoiler T0
``` 0.in
BBBBB
BBBYG
BBGGG
GGGGG
```
``` 0.out
Advice: EERIE
Feedback: Advice: STOAT
Feedback: Advice: CHANT
Feedback: Advice: PLANT
Feedback: Congratulations!!
```
:::
:::spoiler T1
``` 1.in
BBBBB
BBYYB
BYBBY
YYBGB
GGGGG
```
``` 1.out
Advice: EERIE
Feedback: Advice: STOAT
Feedback: Advice: DONNA
Feedback: Advice: ACHOO
Feedback: Advice: JACOB
Feedback: Congratulations!!
```
:::
:::spoiler T2
``` 2.in
BGBBB
GGBYB
GGGGG
```
``` 2.out
Advice: EERIE
Feedback: Advice: SEATO
Feedback: Advice: SETUP
Feedback: Congratulations!!
```
:::
:::spoiler T3
``` 3.in
GBGBB
GBGBB
GBGGB
GGGGG
```
``` 3.out
Advice: EERIE
Feedback: Advice: EARTH
Feedback: Advice: ENRON
Feedback: Advice: ERROR
Feedback: Congratulations!!
```
:::
:::spoiler T4
``` 4.in
YBBBB
BBGBB
BBGBG
GGGGG
```
``` 4.out
Advice: EERIE
Feedback: Advice: THETA
Feedback: Advice: OWENS
Feedback: Advice: BLESS
Feedback: Congratulations!!
```
:::
:::spoiler T5
``` 5.in
GBGBB
GGGGG
```
``` 5.out
Advice: EERIE
Feedback: Advice: EARTH
Feedback: Congratulations!!
```
:::
:::spoiler T6
``` 6.in
BBBBG
BBGBG
BBGBG
BBGBG
BBGBG
GGGGG
```
``` 6.out
Advice: EERIE
Feedback: Advice: STATE
Feedback: Advice: ADAGE
Feedback: Advice: PLANE
Feedback: Advice: CHAFE
Feedback: Advice: QUAKE
Feedback: Congratulations!!
```
:::
:::spoiler T7
``` 7.in
BBYBB
BGBBG
GGBGG
GGGGG
```
``` 7.out
Advice: EERIE
Feedback: Advice: TATAR
Feedback: Advice: MANOR
Feedback: Advice: MAYOR
Feedback: Congratulations!!
```
:::
:::spoiler T8
``` 8.in
YBYYB
YBYYB
BYYGB
BGBGG
GGBGG
GGGGG
```
``` 8.out
Advice: EERIE
Feedback: Advice: INERT
Feedback: Advice: ARIES
Feedback: Advice: HIDER
Feedback: Advice: RICER
Feedback: Advice: RIVER
Feedback: Congratulations!!
```
:::
:::spoiler T9
``` 9.in
GGGGG
```
``` 9.out
Advice: EERIE
Feedback: Congratulations!!
```
:::spoiler T10
``` 10.in
ABCED
```
``` 10.out
Advice: EERIE
Feedback: Wrong Input
```
:::
## 2.4 BMP
- 主要用我提供給你們的 [圖片傾斜網站](https://onlinetools.com/image/skew-image) 做圖片對比,只要以下就算對:
- 旋轉後與網站圖片對比後肉眼看起來沒問題
- 變化後的長寬一致(因精度問題如果與正確長寬差距 ± 2 範圍可算對)
- 測試圖片皆來自老師 File 單元的 [example 資料夾](https://drive.google.com/file/d/1KrjGF2h7QUDEMqKgbhKkgowlQv2mf1r9/view),下載後查詢 *.bmp 的所有檔案就可以找到相對應的圖片:
- maldives.bmp
- maldives_gray.bmp
- maldives_16.bmp
### 2pts for each case
:::spoiler case 1
```
maldives.bmp
rotate0_maldives.bmp
0
```
:::
:::spoiler case 2
```
maldives_gray.bmp
rotate0_maldives_gray.bmp
0
```
:::
:::spoiler case 3
```
maldives_16.bmp
rotate0_maldives_16.bmp
0
```
:::
:::spoiler case 4
```
maldives.bmp
rotate45_maldives.bmp
45
```
:::
:::spoiler case 5
```
maldives_gray.bmp
rotate45_maldives_gray.bmp
45
```
:::
:::spoiler case 6
```
maldives_16.bmp
rotate45_maldives_16.bmp
45
```
:::
:::spoiler case 7
```
maldives.bmp
rotate89_maldives.bmp
89
```
:::
:::spoiler case 8
```
maldives_gray.bmp
rotate89_maldives_gray.bmp
89
```
:::
:::spoiler case 9
```
maldives_16.bmp
rotate89_maldives_16.bmp
89
```
:::
:::spoiler case 10
```
maldives.bmp
rotate_dot_maldives.bmp
11.11
```
:::
## 2.5 Large Language Model
滿分會拿到:
```
2 pts: no file error
2 pts: gguf magic number detection
2 pts: calculate parameters
4 pts: show header
8 pts: show blocks
2 pts: format is good
```
我用 Phi 2 Q2_K 進行評分 https://huggingface.co/TheBloke/phi-2-GGUF/tree/main?show_tensors=phi-2.Q2_K.gguf
基本上來說,前四分是免費的,只需要檢查 4 個 bytes 就會拿到
正確計算的參數量應為 2,779,683,840
排版很重要,需要看出區塊的群組關係
## 2.6 Bonus: Where is errno
1. Where is errno? (2pts)
- 講到存放在 linux 系統哪個路徑下的檔案裡
2. Please find all known error numbers. Do not search them from Google but find them from codes. (2pts)
- 講到在 linux code 的哪裡並說明每個的 error numbers
- 用程式生成所有 error numbers
3. Please define a new error number and use perror to show it. (1pt)
- 請寫程式呈現