[英]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
I am trying to create a tic-tac-toe game in python.我正在尝试在 python 中创建井字游戏。 Right now, everything prints and works fine when the user inputs things but after the user enters all the inputs so the table is full, for some reason the program still asks for input so you can still enter numbers.现在,当用户输入内容时,一切都打印出来并且工作正常,但是在用户输入所有输入后,表格已满,由于某种原因,程序仍然要求输入,所以您仍然可以输入数字。 It doesnt print anything but its still annoying.它不打印任何东西,但它仍然很烦人。 How can I fix this?我怎样才能解决这个问题?
Because you stop at the end of turn 5, whereas player 2 has only 4 turns to play since there are 9 spots on the grid.因为您在第 5 回合结束时停止,而玩家 2 只有 4 回合可玩,因为网格上有 9 个位置。 So the last input is for player 2 to play one last time.所以最后一个输入是让玩家 2 最后一次播放一个。
Also please refactor this code !还请重构此代码! It is way too long for what it does它的作用太长了
Something like:就像是:
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.