用Python创建多语言拼字游戏

用Python创建多语言拼字游戏,python,python-3.x,Python,Python 3.x,我有一个txt文件scrabble_letters.txt,内容如下: 1 E 1 A 1 I 1 N 1 O ... etc 我需要编写一个程序来帮助我对每个单词打分,从scrabble_letters.txt读取每个字母的分数,如下所示: Word: kiwi 11 points 下面是scrabble_letters.txt使用拼字法版本字母分数的示例: 到目前为止,我能够编译一个粗略的程序,但其功能不符合预期,如下所示: f = open('scrabble_

我有一个txt文件scrabble_letters.txt,内容如下:

1 E  
1 A  
1 I  
1 N  
1 O  
... etc  
我需要编写一个程序来帮助我对每个单词打分,从scrabble_letters.txt读取每个字母的分数,如下所示:

Word: kiwi
11 points
下面是scrabble_letters.txt使用拼字法版本字母分数的示例:

到目前为止,我能够编译一个粗略的程序,但其功能不符合预期,如下所示:

f = open('scrabble_letters.txt')
for line in f:
  SCORES = (line.strip())

  total = 0
  def scrabble_score(word):
    total = ()
  Word = input("Word: ")
  for letter in Word:
          total += SCORES[letter]
  print (total, "points")

我被困在这里,只是不知道如何从拼字游戏的法语版本创建输出,或者它是如何工作的。

假设您有一个文件“Scrabble\u letters.txt”,其中包含每个字母的分数,那么下面的代码定义了一个方法Scrabble\u score,该方法将一个单词作为参数并打印单词的分数

f = open('scrabble_letters.txt')
scores = {}
# make a map of letter to its score. Important: note the type casting to integer.
for line in f:
    temp = line.strip()
# line.split() takes a line eg. "1 K" and returns an array ['1', 'K'] i.e. splits by spaces.
    temp = line.split()
    scores[temp[1]] = int(temp[0])

def scrabble_score(word):
    total = 0
    for letter in word:
        total += scores[letter]
    print (total, "points") 
对于示例文本文件:

1 E  
1 A  
1 I  
1 N  
1 O 
5 K
6 W
将该方法作为

scrabble_score('KIWI')
打印输出13个点


注:你在问题中提到的法语评分版本完全取决于scrabble_letters.txt的内容。您可以根据条件使用if-else块打开所需文件,假设您有一个包含每个字母分数的文件“scrabble_letters.txt”,下面的代码定义了一个scrabble_score方法,该方法将单词作为参数并打印单词分数

f = open('scrabble_letters.txt')
scores = {}
# make a map of letter to its score. Important: note the type casting to integer.
for line in f:
    temp = line.strip()
# line.split() takes a line eg. "1 K" and returns an array ['1', 'K'] i.e. splits by spaces.
    temp = line.split()
    scores[temp[1]] = int(temp[0])

def scrabble_score(word):
    total = 0
    for letter in word:
        total += scores[letter]
    print (total, "points") 
对于示例文本文件:

1 E  
1 A  
1 I  
1 N  
1 O 
5 K
6 W
将该方法作为

scrabble_score('KIWI')
打印输出13个点



注:你在问题中提到的法语评分版本完全取决于scrabble_letters.txt的内容。您可以根据条件使用if-else块打开所需文件

为什么要特别提到法语版本?文本文件之间有链接吗?或者您只需要根据输入的单词从文本文件中获得分数的总和?请正确缩进您的代码-代码已损坏。您的代码完全与语言无关。scrabble_letters.txt的内容决定了哪种语言的评分规则将对单词进行评估。一种解决方法是让用户输入要使用的语言,并使用该输入来决定要打开的评分文件。@PatrickArtner我尝试了几种方法,但仍然无效。@chepner您的观点对我来说是合乎逻辑的,我不太聪明,不知道语言的评分规则会对单词进行评估。你为什么特别提到法语版本?文本文件之间有链接吗?或者您只需要根据输入的单词从文本文件中获得分数的总和?请正确缩进您的代码-代码已损坏。您的代码完全与语言无关。scrabble_letters.txt的内容决定了哪种语言的评分规则将对单词进行评估。一种解决方法是让用户输入要使用的语言,并使用该输入来决定要打开的评分文件。@PatrickArtner我尝试了几种方法,但仍然无效。@chepner您的观点对我来说听起来合乎逻辑,但是,我还没有足够的智慧来理解语言的评分规则将评估单词感谢您花了时间。我正在上一门编码课,这要求我得到准确的答案。然而,我能够通过对scrabble_letters.txt使用两个不同的值来获得所需的输出。我只是不确定在同一个程序中如何使用这两个值来显示两个不同的输出。你是说一个文件给出两个不同的分数?我想是的,这就是为什么他们说scrabble_letters.txt使用来自拼字游戏法语版本的字母分数。我能用两个不同的程序得到想要的结果,但不是同一个,我只是感到困惑。从这里读你的问题。你的作业只是要求你使用输入文件并打印分数。你可以不再关心法语或英语版本。根据你不关心的问题。你只需要打开scrabble_letters.txt文件并给出分数。你是通过在线评委提交的吗?如果是,请分享一个输入/输出测试用例的例子,如果不是,我很确定这些不同的分数只是为了举例。根据你问题的措辞,谢谢你花时间。我正在上一门编码课,这要求我得到准确的答案。然而,我能够通过对scrabble_letters.txt使用两个不同的值来获得所需的输出。我只是不确定在同一个程序中如何使用这两个值来显示两个不同的输出。你是说一个文件给出两个不同的分数?我想是的,这就是为什么他们说scrabble_letters.txt使用来自拼字游戏法语版本的字母分数。我能用两个不同的程序得到想要的结果,但不是同一个,我只是感到困惑。从这里读你的问题。你的作业只是要求你使用输入文件并打印分数。你可以不再关心法语或英语版本。根据你不关心的问题。你只需要打开scrabble_letters.txt文件并给出分数。你是在onl上提交的吗 法官?如果是,请分享一个输入/输出测试用例的例子,如果不是,我很确定这些不同的分数只是为了举例。根据你问题的措辞