在下面的代码中,当check_result返回true时,我希望程序终止。然而,当check_result(p1)返回True
时,print语句打印,但程序继续执行。
但是如果check_result(p2)返回True
,则输出语句并终止程序。请帮我弄清楚为什么第一个不行谢谢!
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9n"))
matrix[p1_turn - 1] = "X"
p1.append(p1_turn)
place_mark(matrix)
if check_result(p1):
print("Player 1 wins")
game_on = False
p2_turn = int(input(f"Player 2, choose a number between 1 and 9n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9n"))
matrix[p1_turn - 1] = "X"
p1.append(p1_turn)
place_mark(matrix)
if check_result(p1):
print("Player 1 wins")
game_on = False
break
p2_turn = int(input(f"Player 2, choose a number between 1 and 9n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False
只需添加break语句,如果玩家1获胜,它将实现,它将game_on设置为false并终止循环。
你的代码适用于玩家2获胜的情况,所以这是唯一需要更改的
放一个break语句。game_on变量是不必要的。
用while 1
比while True
快一点。while 1:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9n"))
matrix[p1_turn - 1] = "X"
p1.append(p1_turn)
place_mark(matrix)
if check_result(p1):
print("Player 1 wins")
break
p2_turn = int(input(f"Player 2, choose a number between 1 and 9n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
break
if check_result(p1):
print("Player 1 wins")
game_on = False
你在这里看到任何break
语句吗?while
循环不会自己断开。
if check_result(p1):
print("Player 1 wins")
game_on = False
break
你可以完全用break
语句替换这个game_on
变量:
if check_result(p1):
print("Player 1 wins")
break
if check_result(p2):
print("Player 2 wins")
break
如果你想更好地了解break
(也可能是continue
)的用法,请阅读this
。