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],…}
。为什么您的计算不够?不清楚你在问什么。