Python 什么';根据尝试次数和所用时间计算分数的更好方法是什么?

Python 什么';根据尝试次数和所用时间计算分数的更好方法是什么?,python,function,Python,Function,我创建了一个数字猜测游戏,用户从中选择一系列数字进行猜测,当用户输入一个数字时,程序将在数字过高或过低时做出响应,直到用户正确猜测为止。程序当前会考虑尝试次数和所用时间。也有不同的困难(难度越高,猜测的数字就越多)。我试图建立一个评分系统,但我需要更多的数学方面的帮助。现在我有一个生成分数的代码: def scorer(tries, total_time, difficulty): # Tells the user how much time and how many attempts

我创建了一个数字猜测游戏,用户从中选择一系列数字进行猜测,当用户输入一个数字时,程序将在数字过高或过低时做出响应,直到用户正确猜测为止。程序当前会考虑尝试次数和所用时间。也有不同的困难(难度越高,猜测的数字就越多)。我试图建立一个评分系统,但我需要更多的数学方面的帮助。现在我有一个生成分数的代码:

def scorer(tries, total_time, difficulty):
    # Tells the user how much time and how many attempts were made
    print "\nCorrect! It took you " + str(round(total_time, 2)) + \
          " seconds and " + str(tries) + " tries to guess.\n"

    # Calculates score, making lower times and fewer
    # tries yield a higher score
    # Difmod takes into account the difficulty
    # Multiply by 1000 to make number more readable
    score = 1 / (1 + (tries * round(total_time, 2))) * 1000 * dif_mod(difficulty)[1]

    # Prints the score, rounded to 1 decimal place
    print "Score: " + str(round(score, 2))
尝试
总时间
是不言自明的,而
dif\u mod
是我为使分数更公平而设定的一个值。dif_mod的值越高,难度就越高。如图所示:

def dif_mod(difficulty):
    if difficulty == 1:
        return [10, 1]

    elif difficulty == 2:
        return [50, 1.5]

    elif difficulty == 3:
        return [100, 2]

    elif difficulty == 4:
        return [1000, 10]

    elif difficulty == 5:
        return [10000, 20]

    elif difficulty == 0:
        return [1, 1]
列表中的第一个值是可以猜测的最大值,列表中的第二项是
dif_mod
。这些都是占位符值,我想弄清楚我应该为它们使用什么


我的主要目标是通过更少的尝试和更少的时间获得更高的分数,但如果用户难度更高,我也会以更高的分数奖励他们。

但我提供了工作代码:
score=1/(1+(trys*round(total_time,2)))*1000*dif_mod
我只是想知道是否有更好的方法来计算它,还有一个更好的方法来考虑dif_mod。当我运行整个程序时,一切都运行良好,没有语法错误。为了简单起见,我只发布了与评分相关的代码,所以我没有大约250行代码供人们筛选。您所做的编辑在这种情况下是有意义的。顺便说一句,
dif_mod
可以是一个字典而不是一个函数-
{1:[10,1],2:[50,1.5],…}
。为什么您的计算不够?不清楚你在问什么。但我提供了工作代码:
score=1/(1+(trys*round(total_time,2)))*1000*dif_mod
我只是想知道是否有更好的方法来计算它,以及更好的方法来考虑dif_mod。当我运行整个程序时,一切都运行良好,没有语法错误,为了简单起见,我只发布了与评分相关的代码,所以我没有大约250行代码供人们筛选。您所做的编辑在这种情况下是有意义的。顺便说一句,
dif_mod
可以是一个字典而不是一个函数-
{1:[10,1],2:[50,1.5],…}
。为什么您的计算不够?不清楚你在问什么。