我正在尝试创建类似于我编写的凌乱代码块的方程式,以根据玩家在猜谜游戏中的猜测量计算分数。
玩家有10次尝试。对于每一次不成功的尝试,得分乘数都会减少x。 因此,尝试次数越多,得分所受的影响就越小。
我尝试计算包含尝试次数的猜测列表的长度,但这与我想要的相反。尝试使用的次数越多,得分越高。
我已经尝试过使用len(guesses [::-1]),但这确实是一样的...显然仍然需要10次尝试。
任何想法如何做到这一点?我怀疑有一个for循环,但是我无法做出任何接近工作的事情。
基本上,我要搜索的是方程式或数学表达式,而不是列表,字典等的实现方式。
例如线性的东西:
int
我当前凌乱且未优化的代码块:
Prize = bet * (reversedGuesses *
1.25)
# so that if it took 1 try = 12.5
# and if it took 10 tries = 1.25
上面的方法显然有效,但是我确信可以更有效地完成它...
我是python的新手,所以解释也很棒!
谢谢!
答案 0 :(得分:1)
我已经尝试过使用len(guesses [::-1]),但这确实是一样的...显然仍然需要10次尝试。
这种方法的问题是,如果您反转列表,并询问列表有多长,它将与原始列表一样长。
基本上,我要搜索的是方程式或数学表达式,而不是列表,字典等的实现方式。
您可以除以他们使用的猜测数。像这样:
Prize = bet / len(guesses)
对于每个错误的猜测,您都可以将奖赏减少10%:
Prize = bet * ((1 - 0.10) ** len(guesses))
您可以在10次错误的猜想之后将奖金降低到0,然后在两次之间每次降低相同的金额:
guesses_left = max(0, 10 - len(guesses))
Prize = bet * guesses_left
我是python的新手,所以解释也很棒!
如果您乘以列表的长度,则奖赏会随着他们玩的时间越长而越大,这与您要寻找的相反。