在下面的代碼中,當 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 9\n"))
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 9\n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False
uj5u.com熱心網友回復:
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
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 獲勝的情況,因此這是唯一需要的更改
uj5u.com熱心網友回復:
只需放一個 break 陳述句。并且 game_on 變數是不必要的。只需使用while 1它比while True.
while 1:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
break
uj5u.com熱心網友回復:
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
無論如何,您可以用以下陳述句完全替換此game_on變數:break
if check_result(p1):
print("Player 1 wins")
break
if check_result(p2):
print("Player 2 wins")
break
如果您想更好地了解read break(也許是)的用法。continuethis
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481542.html
上一篇:使用帶有gdb命令的源
