[英]while loop not breaking python
line1 = (" 1 | 2 | 3 ")
line2 = ("----|----|----")
line3 = (" 4 | 5 | 6 ")
line4 = ("----|----|----")
line5 = (" 7 | 8 | 9 ")
lines = [line1, line2, line3, line4, line5]
answer1 = 0
answer2 = 0
answer3 = 0
answer4 = 0
answer5 = 0
answers1 = [answer1, answer2, answer3, answer4, answer5]
p2answer1 = 0
p2answer2 = 0
p2answer3 = 0
p2answer4 = 0
p2answer5 = 0
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
count = 0
count2 = 0
while count <= 4:
while True:
count += 1
playerinput = int(input())
if playerinput == 1:
line1 = line1.replace('1', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 2:
line1 = line1.replace('2', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 3:
line1 = line1.replace('3', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 4:
line3 = line3.replace('4', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 5:
line3 = line3.replace('5', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 6:
line3 = line3.replace('6', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 7:
line5 = line5.replace('7', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 8:
line5 = line5.replace('8', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
if playerinput == 9:
line5 = line5.replace('9', 'X')
lines = [line1, line2, line3, line4, line5]
if count == 1:
answer1 = playerinput
if count == 2:
answer2 = playerinput
if count == 3:
answer3 = playerinput
if count == 4:
answer4 = playerinput
if count == 5:
answer5 = playerinput
answers1 = [answer1, answer2, answer3, answer4, answer5]
for word in lines:
print(word)
break
while True:
count2 += 1
player2input = int(input())
if player2input == 1:
line1 = line1.replace('1', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 2:
line1 = line1.replace('2', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 3:
line1 = line1.replace('3', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 4:
line3 = line3.replace('4', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 5:
line3 = line3.replace('5', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 6:
line3 = line3.replace('6', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 7:
line5 = line5.replace('7', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 8:
line5 = line5.replace('8', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
if player2input == 9:
line5 = line5.replace('9', 'O')
lines = [line1, line2, line3, line4, line5]
if count2 == 1:
p2answer1 = player2input
if count2 == 2:
p2answer2 = player2input
if count2 == 3:
p2answer3 = player2input
if count2 == 4:
p2answer4 = player2input
if count2 == 5:
p2answer5 = player2input
answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
for word in lines:
print(word)
break
我正在嘗試在 python 中創建井字游戲。 現在,當用戶輸入內容時,一切都打印出來並且工作正常,但是在用戶輸入所有輸入后,表格已滿,由於某種原因,程序仍然要求輸入,所以您仍然可以輸入數字。 它不打印任何東西,但它仍然很煩人。 我怎樣才能解決這個問題?
因為您在第 5 回合結束時停止,而玩家 2 只有 4 回合可玩,因為網格上有 9 個位置。 所以最后一個輸入是讓玩家 2 最后一次播放一個。
還請重構此代碼! 它的作用太長了
就像是:
for i in range(1, 9):
player = "x" if i % 2 == 0 else "o"
playerinput = int(input())
update_grid(grid, player, playerinput)
if is_game_finished(grid):
print(f"Player {player} has won")
break
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.