将数学和变量应用于词典

时间:2017-08-08 00:55:33

标签: python

import random


def d(n):
    g = random.randint(1, n)
    return g


stat_list = {'vigor': (10 + 'fortitude'),
         'fortitude': [d(6), d(6), d(6), d(6)],
         'finesse': [d(6), d(6), d(6), d(6)],
         'insight': [d(6), d(6), d(6), d(6)],
         'guile': [d(6), d(6), d(6), d(6)]}

我正在努力为我正在制作的文本冒险制作一个能力评分系统,模仿我如何在现实生活中为D& D的分数起作用。除了我自己教过的关于python的少量数据之外,我生锈了,所以我对我正在做的事情没有多少线索。

这应该代表六面骰子的四个独立角色。要重新注册,要丢弃的最低滚动和剩余的三个要再次加在一起。这将被计算并添加到玩家对象中,或者操作最初是否会发生在玩家对象中?这些统计数据需要能够在调平发生时进行更改并在以后再循环到不同的操作中,因此这是否存储在所有正确的结构中?我不知道如何继续我已经拥有的东西,所以任何提示,提示或成品都会非常感激!

1 个答案:

答案 0 :(得分:0)

你问了很多问题。您应该将任务分解为单个步骤,这是有经验的程序员处理每个问题的方式。以下是您的一个问题的答案,一个将五面模具(面编号为2-6)卷四次,并返回三个最佳卷的总和的函数:

def roll5():
    x = [random.randint(2, 6) for _ in range(4)]
    return sum(x) - min(x)

BTW您提供的代码将无法运行。表达式10 + 'fortitude'尝试将字符串添加到整数,这是无法完成的。