Java 如何计算一个单词的拼字分数
我正试图写一个程序来计算一个单词的分数,基于拼字游戏 分数基于上图 我目前已经编写了一个函数,我的理想目标是使用它,让用户输入一个单词来计算分数Java 如何计算一个单词的拼字分数,java,Java,我正试图写一个程序来计算一个单词的分数,基于拼字游戏 分数基于上图 我目前已经编写了一个函数,我的理想目标是使用它,让用户输入一个单词来计算分数 int scrabbleScore(String Word) { int score = 0; for (int i = 0; i < Word.length(); i++){ char calculatedLetter = Word.at(i); switch (c
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;
int拼字游戏分数(字符串字){
智力得分=0;
for(int i=0;i
为什么我对任何单词的评分都是0分?你可以把它缩短一点,准备一天多语言,只需稍加修改
std::string word;
std::cin>>word;
std::cout<<"Your Score :" << scrabbleScore(word) ;
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;
}
int拼字游戏分数(字符串字)
{
智力得分=0;
char EnglishCoreTable[26]={1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,1,1,4,8,4,10};
for(自动字母:Word)
{
如果(字母>='A'&&Letter将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) {
private static int scrabbleScore(字符串字){
智力得分=0;
字符串大写=Word.toUpperCase();
for(int i=0;i
你似乎有一个函数,到底是什么问题?即使你在这种情况下没有达到极限,我还是想告诉人们,当我看到这么大的开关案例时,如果你有一个包含1023个以上案例的开关,它会产生未定义的行为。这给了我一个错误,函数调用中的参数太少了,我们应该这样做吗猜猜看?我们现在应该猜猜哪一行出错了吗?我们应该猜猜应该有多少个参数吗?今天是你的幸运日:你将学习一些编程知识,并学会一些基本的提问技巧。后者比前者更能帮助你的生活。你只检查大写字母。如何你知道参数应该是什么类型的吗?你读过作业了吗?@RobKennedy现在你会说OP可以有一个名为String
的类。当然。我的印象是自定义字符串类在入门编程类中非常常见。我的函数似乎不是计算分数,它只是为每一个单词。@Hayde这可能是因为你需要检查小写字母看起来很好,而且更整洁。假设这个单词中有一个“-”,我怎么能让这个单词不返回任何分数呢?这是一个很好的英语ASCII的简洁解决方案。但是这对多语言有什么准备呢?如果它看起来像是阻止其他语言使用它的话这里有一个隐含的假设,即字母表中的所有字符都连续地存在于顺序空间中。但是许多语言都有重音符号等,这样就不能像您在这里所做的那样使用数组索引。@hayde您可以在else情况下处理特殊字符。@pp是的,它不是完全的多语言,而是查表的思想。它可能会改变在运行时,该表适用于任何语言,ANSI为256字节,unicode为64kb。如果移动超过26个字符,我更愿意在运行时从拼字分数创建查找表。我认为您忽略了回答这个问题。请记住,这是堆栈溢出;代码审阅是一个单独的站点。您所说的“imp”是什么意思?Implementation.Apols用于含糊不清的缩写缩写::-+1用于解决问题中描述的问题,但-1用于暗示以一种完全不同的语言重新实现项目。是的!我在autopilot上,刚刚选择all并将其粘贴到emacs中并运行javac。明显的语法线索如std::cout
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) {