[英]How to calculate Scrabble Score of a word
我正在嘗試根據游戲Scrabble編寫一個程序來計算單詞的分數
分數基於上圖。
我目前已經編碼了一個函數,我的理想目標是使用它並讓用戶輸入一個單詞來計算分數。
int scrabbleScore(String Word) {
int score = 0;
for (int i = 0; i < Word.length(); i++){
char calculatedLetter = Word.at(i);
switch (calculatedLetter) {
case 'A':
case 'E':
case 'I':
case 'L':
case 'N':
case 'O':
case 'R':
case 'S':
case 'T':
case 'U':
score +=1; break;
case 'D':
case 'G':
score +=2; break;
case 'B':
case 'C':
case 'M':
case 'P':
score +=3; break;
case 'F':
case 'H':
case 'V':
case 'W':
case 'Y':
score +=4; break;
case 'K':
score +=5; break;
case 'J':
case 'X':
score +=8; break;
case 'Q':
case 'Z':
score +=10; break;
default: break;
}
}
return score;
為什么這給我每個單詞0分?
您可以將其縮短一點,並且只需很少的修改就可以准備一天的多語言版本。
int scrabbleScore(string Word)
{
int score = 0;
char EnglishScoreTable[26] = { 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 };
for (auto Letter : Word)
{
if (Letter >= 'A' && Letter <= 'Z')
{
score += EnglishScoreTable[Letter - 'A'];
}
else
{
// error in input
}
}
return score;
}
std::string word;
std::cin>>word;
std::cout<<"Your Score :" << scrabbleScore(word) ;
也,
int scrabbleScore(String Word)
^ this should be string from std namespace,
將imp更改為此:
private static int scrabbleScore(String Word) {
int score = 0;
String upperWord = Word.toUpperCase();
for (int i = 0; i < upperWord.length(); i++){
char calculatedLetter = upperWord.charAt(i);
switch (calculatedLetter) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.