添加另一个循环来削减...
c1sc=random.randint(1,6)
c2sc=random.randint(1,6)
if c1sc > c2sc:
while c2st > 0 and c2sk > 0:
c1st=c1st+strengthmodifier
c2st=c2st-strengthmodifier
c1sk=c1sk+skillmodifier
c2sk=c2sk-skillmodifier
print('Character 1, your strength attribute is: '+(str(c1st))+' and your skill attribute is: '+(str(c1sk)))
print('Character 2, your strength attribute is: '+(str(c2st))+' and your skill attribute is: '+(str(c2sk)))
elif c2sc > c1sc:
while c1st > 0 and c1sk > 0:
c1st=c1st-strengthmodifier
c2st=c2st+strengthmodifier
c1sk=c1sk-skillmodifier
c2sk=c2sk+skillmodifier
print('Character 1, your strength attribute is: '+(str(c1st))+' and your skill attribute is: '+(str(c1sk)))
print('Character 2, your strength attribute is: '+(str(c2st))+' and your skill attribute is: '+(str(c2sk)))
else:
print('It\'s a draw, no changes were made.')
if c1sk < 0:
c1sk=0
elif c2sk < 0:
c2sk=0
if c1st < 0:
print('Character 1 died. Game over.')
elif c2st < 0:
print('Character 2 died. Game over.')
当然,还有更加紧凑写这个的方式。这仍然是不理想,但在减少代码...
c1sc=random.randint(1,6)
c2sc=random.randint(1,6)
if c1sc != c2sc:
while c1st > 0 and and c2st > 0:
c1st += strengthmodifier if c1sc > c2sc else -1 * strengthmodifier
c2st += strengthmodifier if c1sc < c2sc else -1 * strengthmodifier
c1sk += skillmodifier if c1sc > c2sc else -1 * skillmodifier
c2sk += skillmodifier if c1sc < c2sc else -1 * skillmodifier
print('Character 1, your strength attribute is: '+(str(c1st))+' and your skill attribute is: '+(str(c1sk)))
print('Character 2, your strength attribute is: '+(str(c2st))+' and your skill attribute is: '+(str(c2sk)))
c1sk = math.max(c1sk, 0) # Clamp skill to a minimum of 0
c2sk = math.max(c2sk, 0) # ...
if c1st < c2st:
print('Character 1 died. Game over.')
else:
print('Character 2 died. Game over.')
else:
print('It\'s a draw, no changes were made.')
最后,假设重新卷每一轮...
while c1st > 0 and and c2st > 0:
c1sc=random.randint(1,6)
c2sc=random.randint(1,6)
if c1sc != c2sc:
c1st += strengthmodifier if c1sc > c2sc else -1 * strengthmodifier
c2st += strengthmodifier if c1sc < c2sc else -1 * strengthmodifier
c1sk += skillmodifier if c1sc > c2sc else -1 * skillmodifier
c2sk += skillmodifier if c1sc < c2sc else -1 * skillmodifier
print('Character 1, your strength attribute is: '+(str(c1st))+' and your skill attribute is: '+(str(c1sk)))
print('Character 2, your strength attribute is: '+(str(c2st))+' and your skill attribute is: '+(str(c2sk)))
else:
print('It\'s a draw, no changes were made.')
c1sk = math.max(c1sk, 0) # Clamp skill to a minimum of 0
c2sk = math.max(c2sk, 0) # ...
if c1st < c2st:
print('Character 1 died. Game over.')
else:
print('Character 2 died. Game over.')
'虽然'可能永远不会是真的 - 如果他们每轮减少2并开始奇数呢? – Basic
@基本我明白你的观点。我不知道整场比赛是应该重播还是只是回合? c1sc应该每轮随机重新分配?因为它应该在循环内 –
你没有错 - 我只是认为他们会永远以相同的速度死亡...... – Basic