使用python的井字游戏 如果你看第12行,我需要做一个限制,这样你就不能互相重叠。例如,我不希望X在O已经存在的位置上移动。是的,我必须使用一个while循环,我尝试过不同的方法,但它似乎不起作用。
以下是我到目前为止想要改进的全部代码:使用python的井字游戏 如果你看第12行,我需要做一个限制,这样你就不能互相重叠。例如,我不希望X在O已经存在的位置上移动。是的,我必须使用一个while循环,我尝试过不同的方法,但它似乎不起作用。,python,Python,以下是我到目前为止想要改进的全部代码: board=[1,2,3,4,5,6,7,8,9] playerturn="X" while True: for i in range(0,9,3): print(board[i], "|", board[i+1], "|", board[i+2]) if (i<6): print("------------")
board=[1,2,3,4,5,6,7,8,9]
playerturn="X"
while True:
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
choose=int(input("Where do you want to play your" + " " + playerturn + ":"))
while[Need help making restriction here]
print("That spot is already occupied")
choose=int(input("Choose another spot:"))
board[choose-1]=playerturn
if playerturn =="X":
playerturn="O"
else:
playerturn="X"
count=0
if (board[0]==board[1]) and (board[1]==board[2]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[0]
print("The winner is", winner)
break
elif (board[3]==board[4]) and (board[4]==board[5]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[3]
print("The winner is", winner)
break
elif (board[6]==board[7]) and (board[7]==board[8]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[6]
print("The winner is", winner)
break
elif (board[0]==board[3]) and (board[3]==board[6]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[0]
print("The winner is", winner)
break
elif (board[1]==board[4]) and (board[4]==board[7]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[0]
print("The winner is", winner)
break
elif (board[2]==board[5]) and (board[5]==board[8]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[2]
print("The winner is", winner)
break
elif (board[0]==board[4]) and (board[4]==board[8]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[0]
print("The winner is", winner)
break
elif (board[2]==board[4]) and (board[4]==board[6]):
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
winner=board[2]
print("The winner is", winner)
break
for item in board:
if (item != "X") and (item != "O"):
count +=1
if count==0:
for i in range(0,9,3):
print(board[i], "|", board[i+1], "|", board[i+2])
if (i<6):
print("------------")
print("Tie game")
break
使用while循环检查选择是否可以播放
choose=int(input("Where do you want to play your" + " " + playerturn + ":"))
while board[choose-1] in ('X', 'O'): # These are the values when a spot is occupied
print("That spot is already occupied")
choose=int(input("Choose another spot:"))
你的缩进真是一团糟。请用正确的缩进重新发布,因为不可能知道脚本在做什么。while[]应该是什么?这是无效的语法。我认为while[]只是一个占位符,因为这似乎是他们要问的那一行……请从头到尾重复一遍。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。堆栈溢出不是为了替换现有的文档和教程。。这表明需要的集合对于堆栈溢出来说太广泛了。您介意解释一下它是如何工作的吗?需要解释的是哪一部分?为什么要把它放在X,Y中?这是做什么的?我应该有一个布尔表达式来表示这个对不起,那只是一个错误