如何在Python中为Daggerheart骰子程序的变量设置最大值?
给Hope和Fear变量设置最大值6的解决方案
要限制hope和fear变量不超过6,最简单的方式是在每次增加变量值时,用Python内置的min()函数截断数值——它会返回传入参数里的最小值,刚好可以把数值卡在上限6上。
修改后的代码片段
import random # 初始化资源变量(示例初始值为0) hope = 0 fear = 0 playerMove = 'r' # 示例输入 # Roll the dice if playerMove == 'r': hopeDice = random.randint(1, 12) # randint本身返回整数,无需额外转int fearDice = random.randint(1, 12) roll = hopeDice + fearDice print(f'You rolled {roll} with ...') # f-string比format更直观简洁 if hopeDice > fearDice: print('... hope') hope = min(hope + 1, 6) # 增加后不超过6 elif fearDice > hopeDice: print('... fear') fear = min(fear + 1, 6) # 同样限制fear上限 else: print('... tie, no resource changes') # 补充平局的处理逻辑 # 打印当前资源值验证 print(f"Current Hope: {hope}, Current Fear: {fear}")
关键逻辑说明
min(hope + 1, 6):当hope + 1小于等于6时,直接取hope + 1;如果超过6,就取6,完美实现上限限制。fear变量的处理方式完全一致。- 额外优化了代码里的冗余
int()转换(randint返回的已经是整数),并用f-string简化了打印语句。
内容的提问来源于stack exchange,提问作者Nienke
相关产品推荐
相关产品推荐

