Skip to content

Problem 10 (200pts): fastest_words

实现 fastest_words,它返回每个玩家打字最快的单词。 这个函数在两个玩家都完成打字后被调用。 它接受一个 game

具体来说,fastest_words 函数返回一个单词列表列表,每个玩家一个列表,每个列表中是他们相对于所有其他玩家打字最快的单词。 在平局的情况下,考虑列表中最早的玩家(最小的玩家索引)为打字最快的那个。

例如,考虑以下游戏,单词为 'Just''have''fun'。玩家 0 打字 'fun' 最快(3 秒),玩家 1 打字 'Just' 最快(4 秒),他们在单词 'have' 上平局(两者都用了 1 秒),因此我们认为玩家 0 最快,因为他们是列表中最早的玩家。

>>> player_0 = [5, 1, 3]
>>> player_1 = [4, 1, 6]
>>> fastest_words(game(['Just', 'have', 'fun'], [player_0, player_1]))
[['have', 'fun'], ['Just']]

game 参数是一个 game 字典,如问题 9 中返回的那个。 你可以使用选择器 get_word 访问 game 中的单词,它接受一个 gameword_index(一个整数)。 使用 get_word,你可以使用 time 访问任何玩家打字任何单词所需的时间。

重要: 在返回 game 时,确保使用 game 构造函数。 测试将检查你是否使用 game 字典,而不是假设特定数据格式。

确保你的实现不修改给定的玩家输入列表。 对于上面的例子,对 [player_0, player_1] 调用 fastest_words 不应 修改 player_0player_1

在编写任何代码之前,解锁测试以验证你对问题的理解:

$ python ok -q 10 -u

解锁完成后,开始实现你的解决方案。 你可以用以下命令检查正确性:

$ python ok -q 10

现在你可以与其他课程学生对战。 在 cats.py 底部附近将 enable_multiplayer 设置为 True,然后快速打字!