擅长:python、mysql、java
<p>看看这个,看看是否有帮助</p>
<pre><code>from random import randint
def roll():
return [randint(1, 6) for i in range(2)]
def check_for_one(rolls):
for roll in rolls:
# this could be simplified to "if 1 in rolls", this was just my preference
if roll == 1:
return True
return False
dicesum2 = 0
dicesum1 = 0
while True:
d1 = roll()
dicesum1 += sum(d1)
if check_for_one(d1):
print(f"Player 1 rolled a 1 in batch: {d1}")
print(f"Player 1 roll: {d1} | {dicesum1}")
d2 = roll()
dicesum2 += sum(d2)
if check_for_one(d2):
print(f"Player 2 rolled a 1 in batch: {d2}")
print(f"Player 2 roll: {d2} | {dicesum2}")
if dicesum1 >= 100:
print(f"Player 1 won with: {dicesum1}")
break
elif dicesum2 >= 100:
print(f"Player 2 won with: {dicesum2}")
break
</code></pre>
<p>所以在这个例子中,我们把滚动推到一个函数上,然后检查一个一个,它迭代你正在做的列表,检查一个一个并返回一个布尔值</p>
<p>我将循环更改为<code>while True</code>,因此该循环不负责更复杂的条件,这可能是限制性的</p>
<p>对于每个玩家,它执行掷骰、求和、检查并报告批次中是否有1,报告掷骰</p>
<p>最后,它检查赢家,如果一个人达到或超过100,它就会中断,并报告他们的胜利</p>