【发布时间】:2020-12-13 21:08:30
【问题描述】:
顺便说一句,它是python中的井字游戏,它是一个sn-p,它处理用户不输入无效代码或不尝试在已经占用的位置添加X或O的问题。 所以在线视频中的讲师说你可以使用while循环来检查上面列出的问题所以我想为什么不使用递归每当用户输入错误而现在它在输出中显示一些奇怪的东西
def handle_turn(player):
position=input("Chooes a position from 1 to 9: ")
if position not in ["1","2","3","4","5","6","7","8","9"]:
print("Invalid Choice")
handle_turn(player)
# while position not in ["1","2","3","4","5","6","7","8","9"]:
# position=input("iNVALID CHOICE Chooes a position from 1 to 9: ")
position=int(position)-1
if board[position]!="_":
print("you cannot go there")
handle_turn(player)
board[position]=player
display_board()
输出: 罢工>
从 1 到 9 选择一个位置:1
X | _ | _
_ | _ | _
_ | _ | _
从 1 到 9 选择一个位置:2
X | ○ | _
_ | _ | _
_ | _ | _
从 1 到 9 选择一个位置:3
X | ○ | X
_ | _ | _
_ | _ | _
从 1 到 9 选择位置:1
你不能去那里
从 1 到 9 选择一个位置:9
X | ○ | X
_ | _ | _
_ | _ | O
○ | ○ | X
_ | _ | _
_ | _ | O
从 1 到 9 选择位置:1
你不能去那里
从 1 到 9 选择位置:8
○ | ○ | X
_ | _ | _
_ | X | O
X | ○ | X
_ | _ | _
_ | X |哦
【问题讨论】:
-
您可能想要勾勒出函数调用。一旦一个函数被调用。执行它后面的下一条语句。使用 return 构造来确保递归结束后不再执行代码。
标签: python python-3.x python-2.7 recursion