Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Python编写Tic-Tac-Toe播放器输入函数?_Python_Tic Tac Toe - Fatal编程技术网

如何用Python编写Tic-Tac-Toe播放器输入函数?

如何用Python编写Tic-Tac-Toe播放器输入函数?,python,tic-tac-toe,Python,Tic Tac Toe,在该程序中,我需要编写一个函数,该函数接受玩家的输入,以确定他们要将“X”或“O”放置在Tic Tac Toe游戏的哪个位置,这将是一个介于0-8之间的数字,该函数还将识别无效响应。无效响应将是一个不在0-8之间的数字、任何不是数字或以前输入的数字 有什么问题吗? 无论输入是什么,函数都会将其识别为无效,即使它应该是有效的 这是密码 def playerinput(): print("Select the number on the board:")

在该程序中,我需要编写一个函数,该函数接受玩家的输入,以确定他们要将“X”或“O”放置在Tic Tac Toe游戏的哪个位置,这将是一个介于0-8之间的数字,该函数还将识别无效响应。无效响应将是一个不在0-8之间的数字、任何不是数字或以前输入的数字

有什么问题吗?

无论输入是什么,函数都会将其识别为无效,即使它应该是有效的

这是密码

def playerinput():
    
    print("Select the number on the board:")
    
    while True:
    
        playerchoice = input()
        if playerchoice.isdigit == True:
            if int(playerchoice) in validdata:
                validdata.pop(int(playerchoice))
                return int(playerchoice)
            else:
                print("That is not a valid input please enter a different value:")
            
            
        else:
            print("That is not a valid input please enter a different value:")
validdata是一个全局变量

validdata = [0,1,2,3,4,5,6,7,8]

看一看,您是否仔细检查了可从您的程序访问的
validdata
?(例如,可能尝试打印…
playerchoice.isdigit
是一个函数。您需要调用它:
playerchoice.isdigit()
@deceze我不确定链接的副本会有多大帮助。OP似乎理解这个理论(尽管这个实现有点笨手笨脚);问题只是你指出的打字错误。@FabioVeronese我刚刚检查了“validdata”是否可以从程序中访问。测试时,我发现“playerchoice.isdigit”由于某些原因总是错误的。然后我意识到我忘了放括号,这就是为什么会有错误。