簡體   English   中英

如何計算單詞的拼字游戲分數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM