CS50 Week2 - Arrays 中文翻譯 實驗 Scrabble

判定兩個 Scrabble 單字誰比較大。
$ ./scrabble
Player 1: COMPUTER
Player 2: science
Player 1 wins!
背景
在 Scrabble 遊戲中,玩家透過建立單字來得分,
分數則是透過每個字的對應分之總和。
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 3 | 3 | 2 | 1 | 4 | 2 | 4 | 1 | 8 | 5 | 1 | 3 | 1 | 1 | 3 | 10 | 1 | 1 | 1 | 1 | 4 | 4 | 8 | 4 | 10 |
例如,
如果我們要計算 Code 的分數,依照一般的 Scrabble 規則,C 得 3 分,
o 得 1 分,
d 得 2 分,
e 得 1 分。
加總後,我們就得知 Code 總共值 3 + 1 + 2 + 1 = 7 分。
實作細節
請完成 scrabble.c 的實作,也就是它要能判別 scrabble 遊戲的勝利者。
兩個玩家會分別輸入他們的文字,分數較高的玩家獲勝。
- 注意到我們將每個字母的分數對照存在一個叫
POINTS的整數陣列中。- 例如,
A或a得1分 (顯示在POINTS[0]),B或b得3分 (顯示在POINTS[1]) 以此類推。
- 例如,
- 注意我們建立了一個輔助函式的原型叫
compute_score()可以接受一個字串作為輸入並回傳一個整數。
我們會透過呼叫這個函式來取得特定單字的分數。
注意這個原型宣告是必須的,讓 C 語言知道compute_score()會存在於接下來程式中。 - 在
main()程式會透過get_string()函式要求兩位玩家輸入單字。
這些單字會被存在變數word1跟word2中。 - 在
compute_score()你的程式應該透過POINTS陣列計算出字串參數的分數。
非文字的字應該要是0點,無論大小寫皆為相同分數。- 例如,
!得0分,而A或a皆得1分。 - 雖然正常的 Scrabble 規則,文字一定要字典裡找得到,但我們在這題先不處理。
- 例如,
- 在
main()你的程式應該要根據玩家的分數,印出Player 1 wins!,Player 2 wins!或Tie!。
提示
- 你可能會發現
isupper()跟islower()可以幫上忙。這些函式接收一個字符並回傳一個布林。 - 如果要找陣列
arr中的第n個值,我們會寫作arr[n]。這個也可以套用在string上,因為字串就是字符陣列。 - 回想下電腦是透過 ASCII 來展現字符的,這是一套透過數字來標示字符的標準。

