[英]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.