<p>你的if语句非常有利于p1获胜。示例代码,其中我希望“p2”获胜,因为p2具有更好的颜色:</p>
<pre><code>colour1 = 'b'
colour2 = 'r'
num1 = 2
num2 = 1
if(colour1 == "r")and(colour2 == "b"):
print("p1")
elif(colour1 == "b")and(colour2 == "y"):
print("p1")
elif(colour1 == "y")and(colour2 == "r"):
print("p1")
elif num1 > num2:
print("p1")
else:
print("p2")
>>> p1
</code></pre>
<p>玩家1在这里获胜,因为没有检查玩家2是否有更好的颜色。要正确检查正确的获胜者,可以将if语句修改为以下逻辑:</p>
<pre><code>colour1 = 'b'
colour2 = 'r'
num1 = 2
num2 = 1
if (colour1 == "r" and colour2 == "b") or (colour1 == "b" and colour2 == "y") or (colour1 == "y" and colour2 == "r"):
print("p1")
elif (colour2 == "r" and colour1 == "b") or (colour2 == "b" and colour1 == "y") or (colour2 == "y" and colour1 == "r"):
print("p2")
elif num1 > num2:
print("p1")
else:
print("p2")
>>> p2
</code></pre>
<p>在其中,可以将最后一个elif和else重构为以下代码行:</p>
<pre><code>colour1 = 'b'
colour2 = 'r'
num1 = 2
num2 = 1
if (colour1 == "r" and colour2 == "b") or (colour1 == "b" and colour2 == "y") or (colour1 == "y" and colour2 == "r"):
print("p1")
elif (colour2 == "r" and colour1 == "b") or (colour2 == "b" and colour1 == "y") or (colour2 == "y" and colour1 == "r"):
print("p2")
else:
print("p1" if num1 > num2 else "p2")
>>> p2
</code></pre>