java - 如何计算单词的拼字游戏分数

标签 java

我正在尝试编写一个程序来计算一个单词的分数,基于拼字游戏 enter image description here

分数基于上图。

我目前已经编写了一个函数,我的理想目标是使用它并让用户输入一个单词来计算分数。

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;
}

关于java - 如何计算单词的拼字游戏分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18983883/

相关文章:

java - 如何从字符串中提取日期并将其放入Java中的日期变量

Java 泛型 : override method that differs in parameterized return type

java - summarizingInt 和 Collectors.summarizingInt 之间的区别?

Java Multimap get 方法是否创建临时列表的动态分配?

java - 重构带有副作用的 for 循环以进行流式传输

java - 输入/输出流 : End of Stream?

java - 为 RunningTaskInfo 设置唯一标识符

java - 字符串文字表达式应该在等号比较的左边

java - 如何强制组合框呈现自动完成选项?

java - 如何使用线性布局?