Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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
Python3井字游戏的问题 玩家xyz赢得的输出将在赢得一次机会后打印 即使玩家2赢了,输出也会显示玩家1赢了 我做了一些实验,试图自己解决这个问题,但到现在为止运气都不好。 此外,如果你有任何建议,使代码更有效或更美观,请把它放在下面。 我的代码: def打印行(r1、r2、r3): 打印(r1) 打印(r2) 打印(r3) def为空(inp): 如果inp!='-': 打印(“请输入一个空位置”) 其他: 返回“有效” def user1(inp): 如果inp不在范围(1,10)内: 打印(“请输入1到9之间的数字”) 其他: 如果inp==1: 如果为空(第1行[0])==“有效”: 第1行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==2: 如果为空(第1行[1])==“有效”: 第1行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==3: 如果为空(第1[2]行]==“有效”: 第1行[2]=“X” 打印行(第1行、第2行、第3行) elif inp==4: 如果为空(第2行[0])==“有效”: 第2行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==5: 如果为空(第2行[1])==“有效”: 第2行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==6: 如果为空(第2行[2])==“有效”: 第2行[2]=“X” 打印行(第1行、第2行、第3行) elif inp==7: 如果为空(第3行[0])==“有效”: 第3行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==8: 如果为空(第3行[1])==“有效”: 第3行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==9: 如果为空(第3[2]行]==“有效”: 第3行[2]=“X” 打印行(第1行、第2行、第3行) def user2(inp): 如果inp不在范围(1,10)内: 打印(“请输入1到9之间的数字”) 其他: 如果inp==1: 如果为空(第1行[0])==“有效”: 第1行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==2: 如果为空(第1行[1])==“有效”: 第1行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==3: 如果为空(第1[2]行]==“有效”: 第1行[2]=“0” 打印行(第1行、第2行、第3行) elif inp==4: 如果为空(第2行[0])==“有效”: 第2行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==5: 如果为空(第2行[1])==“有效”: 第2行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==6: 如果为空(第2行[2])==“有效”: 第2行[2]=“0” 打印行(第1行、第2行、第3行) elif inp==7: 如果为空(第3行[0])==“有效”: 第3行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==8: 如果为空(第3行[1])==“有效”: 第3行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==9: 如果为空(第3[2]行]==“有效”: 第3行[2]=“0” 打印行(第1行、第2行、第3行) def检查(r1、r2、r3): 如果r1[0]=“X”和r1[1]=“X”和r1[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“X”和r2[0]=“X”和r3[0]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“X”和r2[1]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[1]=“X”和r2[1]=“X”和r3[1]=“X”: return“恭喜玩家1!你赢了。” elif r1[2]=“X”和r2[2]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[2]=“X”和r2[1]=“X”和r3[0]=“X”: return“恭喜玩家1!你赢了。” elif r2[0]=“X”和r2[1]=“X”和r2[2]=“X”: return“恭喜玩家1!你赢了。” elif r3[0]=“X”和r3[1]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“0”和r1[1]=“0”和r1[2]=“0”: return“恭喜玩家2!你赢了” elif r1[0]=“0”和r2[0]=“0”和r3[0]=“0”: return“恭喜玩家2!你赢了” elif r1[0]=“0”和r2[1]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” elif r1[1]=“0”和r2[1]=“0”和r3[1]=“0”: return“恭喜玩家2!你赢了” elif r1[2]=“0”和r2[2]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” elif r1[2]=“0”和r2[1]=“0”和r3[0]=“0”: return“恭喜玩家2!你赢了” elif r2[0]=“0”和r2[1]=“0”和r2[2]=“0”: return“恭喜玩家2!你赢了” elif r3[0]=“0”和r3[1]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” 打印(“[1,2,3]\n[4,5,6]\n[7,8,9]”) 计数=0;胜利者=假 行1=['-','-','-'] 第2行=['-','-','-'] 第3行=['-','-','-'] 打印(“欢迎来到Tic Tac Toe”) 打印(“玩家1将是X并开始游戏,玩家2将是0并开始第二次游戏。”) 当winner==False时: 如果计数_Python_Python 3.x_Tic Tac Toe - Fatal编程技术网

Python3井字游戏的问题 玩家xyz赢得的输出将在赢得一次机会后打印 即使玩家2赢了,输出也会显示玩家1赢了 我做了一些实验,试图自己解决这个问题,但到现在为止运气都不好。 此外,如果你有任何建议,使代码更有效或更美观,请把它放在下面。 我的代码: def打印行(r1、r2、r3): 打印(r1) 打印(r2) 打印(r3) def为空(inp): 如果inp!='-': 打印(“请输入一个空位置”) 其他: 返回“有效” def user1(inp): 如果inp不在范围(1,10)内: 打印(“请输入1到9之间的数字”) 其他: 如果inp==1: 如果为空(第1行[0])==“有效”: 第1行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==2: 如果为空(第1行[1])==“有效”: 第1行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==3: 如果为空(第1[2]行]==“有效”: 第1行[2]=“X” 打印行(第1行、第2行、第3行) elif inp==4: 如果为空(第2行[0])==“有效”: 第2行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==5: 如果为空(第2行[1])==“有效”: 第2行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==6: 如果为空(第2行[2])==“有效”: 第2行[2]=“X” 打印行(第1行、第2行、第3行) elif inp==7: 如果为空(第3行[0])==“有效”: 第3行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==8: 如果为空(第3行[1])==“有效”: 第3行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==9: 如果为空(第3[2]行]==“有效”: 第3行[2]=“X” 打印行(第1行、第2行、第3行) def user2(inp): 如果inp不在范围(1,10)内: 打印(“请输入1到9之间的数字”) 其他: 如果inp==1: 如果为空(第1行[0])==“有效”: 第1行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==2: 如果为空(第1行[1])==“有效”: 第1行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==3: 如果为空(第1[2]行]==“有效”: 第1行[2]=“0” 打印行(第1行、第2行、第3行) elif inp==4: 如果为空(第2行[0])==“有效”: 第2行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==5: 如果为空(第2行[1])==“有效”: 第2行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==6: 如果为空(第2行[2])==“有效”: 第2行[2]=“0” 打印行(第1行、第2行、第3行) elif inp==7: 如果为空(第3行[0])==“有效”: 第3行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==8: 如果为空(第3行[1])==“有效”: 第3行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==9: 如果为空(第3[2]行]==“有效”: 第3行[2]=“0” 打印行(第1行、第2行、第3行) def检查(r1、r2、r3): 如果r1[0]=“X”和r1[1]=“X”和r1[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“X”和r2[0]=“X”和r3[0]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“X”和r2[1]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[1]=“X”和r2[1]=“X”和r3[1]=“X”: return“恭喜玩家1!你赢了。” elif r1[2]=“X”和r2[2]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[2]=“X”和r2[1]=“X”和r3[0]=“X”: return“恭喜玩家1!你赢了。” elif r2[0]=“X”和r2[1]=“X”和r2[2]=“X”: return“恭喜玩家1!你赢了。” elif r3[0]=“X”和r3[1]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“0”和r1[1]=“0”和r1[2]=“0”: return“恭喜玩家2!你赢了” elif r1[0]=“0”和r2[0]=“0”和r3[0]=“0”: return“恭喜玩家2!你赢了” elif r1[0]=“0”和r2[1]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” elif r1[1]=“0”和r2[1]=“0”和r3[1]=“0”: return“恭喜玩家2!你赢了” elif r1[2]=“0”和r2[2]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” elif r1[2]=“0”和r2[1]=“0”和r3[0]=“0”: return“恭喜玩家2!你赢了” elif r2[0]=“0”和r2[1]=“0”和r2[2]=“0”: return“恭喜玩家2!你赢了” elif r3[0]=“0”和r3[1]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” 打印(“[1,2,3]\n[4,5,6]\n[7,8,9]”) 计数=0;胜利者=假 行1=['-','-','-'] 第2行=['-','-','-'] 第3行=['-','-','-'] 打印(“欢迎来到Tic Tac Toe”) 打印(“玩家1将是X并开始游戏,玩家2将是0并开始第二次游戏。”) 当winner==False时: 如果计数

Python3井字游戏的问题 玩家xyz赢得的输出将在赢得一次机会后打印 即使玩家2赢了,输出也会显示玩家1赢了 我做了一些实验,试图自己解决这个问题,但到现在为止运气都不好。 此外,如果你有任何建议,使代码更有效或更美观,请把它放在下面。 我的代码: def打印行(r1、r2、r3): 打印(r1) 打印(r2) 打印(r3) def为空(inp): 如果inp!='-': 打印(“请输入一个空位置”) 其他: 返回“有效” def user1(inp): 如果inp不在范围(1,10)内: 打印(“请输入1到9之间的数字”) 其他: 如果inp==1: 如果为空(第1行[0])==“有效”: 第1行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==2: 如果为空(第1行[1])==“有效”: 第1行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==3: 如果为空(第1[2]行]==“有效”: 第1行[2]=“X” 打印行(第1行、第2行、第3行) elif inp==4: 如果为空(第2行[0])==“有效”: 第2行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==5: 如果为空(第2行[1])==“有效”: 第2行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==6: 如果为空(第2行[2])==“有效”: 第2行[2]=“X” 打印行(第1行、第2行、第3行) elif inp==7: 如果为空(第3行[0])==“有效”: 第3行[0]=“X” 打印行(第1行、第2行、第3行) elif inp==8: 如果为空(第3行[1])==“有效”: 第3行[1]=“X” 打印行(第1行、第2行、第3行) elif inp==9: 如果为空(第3[2]行]==“有效”: 第3行[2]=“X” 打印行(第1行、第2行、第3行) def user2(inp): 如果inp不在范围(1,10)内: 打印(“请输入1到9之间的数字”) 其他: 如果inp==1: 如果为空(第1行[0])==“有效”: 第1行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==2: 如果为空(第1行[1])==“有效”: 第1行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==3: 如果为空(第1[2]行]==“有效”: 第1行[2]=“0” 打印行(第1行、第2行、第3行) elif inp==4: 如果为空(第2行[0])==“有效”: 第2行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==5: 如果为空(第2行[1])==“有效”: 第2行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==6: 如果为空(第2行[2])==“有效”: 第2行[2]=“0” 打印行(第1行、第2行、第3行) elif inp==7: 如果为空(第3行[0])==“有效”: 第3行[0]=“0” 打印行(第1行、第2行、第3行) elif inp==8: 如果为空(第3行[1])==“有效”: 第3行[1]=“0” 打印行(第1行、第2行、第3行) elif inp==9: 如果为空(第3[2]行]==“有效”: 第3行[2]=“0” 打印行(第1行、第2行、第3行) def检查(r1、r2、r3): 如果r1[0]=“X”和r1[1]=“X”和r1[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“X”和r2[0]=“X”和r3[0]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“X”和r2[1]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[1]=“X”和r2[1]=“X”和r3[1]=“X”: return“恭喜玩家1!你赢了。” elif r1[2]=“X”和r2[2]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[2]=“X”和r2[1]=“X”和r3[0]=“X”: return“恭喜玩家1!你赢了。” elif r2[0]=“X”和r2[1]=“X”和r2[2]=“X”: return“恭喜玩家1!你赢了。” elif r3[0]=“X”和r3[1]=“X”和r3[2]=“X”: return“恭喜玩家1!你赢了。” elif r1[0]=“0”和r1[1]=“0”和r1[2]=“0”: return“恭喜玩家2!你赢了” elif r1[0]=“0”和r2[0]=“0”和r3[0]=“0”: return“恭喜玩家2!你赢了” elif r1[0]=“0”和r2[1]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” elif r1[1]=“0”和r2[1]=“0”和r3[1]=“0”: return“恭喜玩家2!你赢了” elif r1[2]=“0”和r2[2]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” elif r1[2]=“0”和r2[1]=“0”和r3[0]=“0”: return“恭喜玩家2!你赢了” elif r2[0]=“0”和r2[1]=“0”和r2[2]=“0”: return“恭喜玩家2!你赢了” elif r3[0]=“0”和r3[1]=“0”和r3[2]=“0”: return“恭喜玩家2!你赢了” 打印(“[1,2,3]\n[4,5,6]\n[7,8,9]”) 计数=0;胜利者=假 行1=['-','-','-'] 第2行=['-','-','-'] 第3行=['-','-','-'] 打印(“欢迎来到Tic Tac Toe”) 打印(“玩家1将是X并开始游戏,玩家2将是0并开始第二次游戏。”) 当winner==False时: 如果计数,python,python-3.x,tic-tac-toe,Python,Python 3.x,Tic Tac Toe,问题#1:在调用check()后循环不会停止,因此游戏将继续。您可以调用break退出循环并结束游戏 问题2:我试着运行你的代码,结果显示玩家2赢了 Player 1: Where do you want to insert the next X? 4 ['X', 'X', '0'] ['X', '0', '-'] ['-', '-', '-'] Player 2: Where do you want to insert the next 0? 7 ['X', 'X', '0']

问题#1:在调用
check()
后循环不会停止,因此游戏将继续。您可以调用
break
退出循环并结束游戏

问题2:我试着运行你的代码,结果显示玩家2赢了

Player 1:  Where do you want to insert the next X?    4
['X', 'X', '0']
['X', '0', '-']
['-', '-', '-']
Player 2:  Where do you want to insert the next 0?    7
['X', 'X', '0']
['X', '0', '-']
['0', '-', '-']
Congratulations Player 2! You won.
Congratulations Player 2! You won.
Congratulations Player 2! You won.
Congratulations Player 2! You won.
Congratulations Player 2! You won.
Congratulations Player 2! You won.
一般反馈:当代码被重新编译时,这是一个令人担忧的迹象