我目前正在通过编写基于文本的冒险游戏来自学Python,该游戏很大程度上基于D&D。我正处于大多数基础知识都处于下降的阶段,我现在正在研究统计数据和统计修改器,并且有一个可行的解决方案,但是这是一个非常丑陋且笨拙的解决方案。
我定义了一个函数来检查某个统计信息的值是什么,并根据该统计信息为修饰符赋予一个特定的值。
但是,它看起来很凌乱并且目前占用很多空间,如下所示:
if strength == 1:
str_mod = -5
if strength == (2 or 3):
str_mod = -4
if strength == (4 or 5):
...
然后继续。我尝试过类似的事情:
if strength == (1, 2 or 3, 4 or 5...):
str_mod = (-5, -4, -3...)
我还尝试将统计信息和修饰符放在字典中,如下所示:
stat_dict = {
strength: str_mod,
dexterity: dex_mod,
constitution: con_mod,
wisdom: wis_mod,
intelligence: int_mod,
charisma: cha_mod,
}
但是找不到任何使语句执行以下操作的方法:
if key in stat_dict == 1:
value in stat_dict = -5
有没有更短的方法呢?还是我只需要满足132行代码,只是为了让stat修饰符起作用?