使用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中?这是做什么的?我应该有一个布尔表达式来表示这个对不起,那只是一个错误