14572 - Taiko no Tatsujin (complex ver) (Final-makeup-4)   

Description

Description

太鼓之達人系列(日語:太鼓の達人,英語:Taiko no Tatsujin,又譯作「太鼓達人」)是一款於2001年起由南夢宮(現:萬代南夢宮遊樂,家用版由萬代南夢宮工作室開發並由萬代南夢宮娛樂發行)發售的業務用大型電玩音樂遊戲系列作品。遊戲玩法與科樂美的Bemani系列類似,玩家需要配合音樂,敲打機台上的日本傳統樂器「太鼓」的框體,從而打出正確的節奏。

其中一種分數判定「通常分數」,分數計算將隨在燃燒段額外增加分數。

遊戲某版本的通常分數計分方式如下:

 

 

通常

燃燒段

良(good)

400

480

大音符特良(GOOD)

800

960

可(ok)

200

240

大音符特可(OK)

400

480

不可(bad)

0

0

小黃條連打(renda)

100/打

120/打

大黃條連打(RENDA)

200/打

240/打

氣球連打(balloon)

300/打

360/打

 

資料來源:https://zh.moegirl.tw/%E5%A4%AA%E9%BC%93%E4%B9%8B%E8%BE%BE%E4%BA%BA%E7%B3%BB%E5%88%97

 

給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:GetScore()

function.h:

typedef enum TaikoScore {
    good,  // 良
    GOOD,  // 大音符特良
    ok,    // 可
    OK,    // 大音符特可
    bad,   // 不可
    renda, // 小黃條連打
    RENDA,  // 大黃條連打
    balloon // 氣球連打
} TaikoScore;

 

typedef struct TaikoNote {
    enum TaikoScore NoteScore; // 此音符的計分類型
    int isFever;    // 是否進入燃燒段,1為進入燃燒段,0為否
    int rendaCount; // 連打數,若為balloon、renda或RENDA將紀錄連打數,其他音符則為0
    struct TaikoNote *next; // 下一個音符
} TaikoNote;

 

Methods:

- int GetScore(TaikoNote *firstNote) – 需不斷的拜訪傳進的TaikoNote記憶體的下一個TaikoNote記憶體(next)直至結束(NULL),並根據判定(TaikoScore)與表格中的給分標準返回最終得分

hint:

  1. 可以透過迴圈和*next來不斷拜訪並取得下一個TaikoNote

  2. 可以透過判斷TaikoNote記憶體是否為NULL,來決定是否終止迴圈

 

function.c

 

int GetScore(TaikoNote *firstNote) {
// TODO
 
}

 

Input

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

 

Note:

  1. 輸入 15 個字元 T 分別代表15個音符的評分

  2. T 為 'G', 'g', 'O', 'o', 'b', 'R', 'r', 'f' 其中一種,f為1或0(1代表進入燃燒段,0代表以通常計分),c為連打數(若T為'f'、'R'或'r',將輸入連打數,T為'G', 'g', 'O', 'o', 'b'時為0)

  3. 無需處理輸入

Output

輸出符合以下格式:

Score: score

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')

  2. 無需處理輸出

Sample Input  Download

Sample Output  Download

Partial Judge Code

14572.c

Partial Judge Header

14572.h

Tags




Discuss