我如何更改我的代码(第6-10行),以获得假,假,在正常情况下,它是在任务中?输入我现在得到的东西:“假,假,假”。
def is_board_full(board):
"""
should return True if there are no more empty place on the board,
otherwise should return False
"""
6 for x in board:
7 if board != ".":
8 return False
9 else:
10 return True
if __name__ == "__main__":
# run this file to test you have implemented correctly the function
board_1 = [
["X", "O", "."],
["X", "O", "."],
["X", "X", "O"],
]
print(is_board_full(board_1)) # should return False
board_2 = [
[".", "O", "O"],
[".", "O", "X"],
[".", "X", "X"],
]
print(is_board_full(board_2)) # should return False
board_3 = [
["O", "O", "X"],
["O", "X", "O"],
["O", "X", "X"],
]
print(is_board_full(board_3)) # should return True## 发布于 2022-04-27 10:16:51
你想要做的是检查板上的每一行,并检查是否“。是排在一排的。将第6-10行改为此。
for row in board:
if "." in row:
return False
return True发布于 2022-04-27 10:26:47
你问题中的问题没有得到充分的描述。如果存在一个带有“.”的字段,则假定函数is_board_full应该返回False。在黑板上。
那么,当前的实现有两个问题:1)函数is_board_full被传递给一个二维数组.但是,您只在第一个维度上使用第6行中的循环运行。因此,在第7行中,检查数组是否与char '.‘’不相等。这不可能是真的。检查是否“。”在行中,您应该在第7行中使用if "." in row:。
2.)else块当前只导致一个比较,然后返回True或False。但是,只有在没有“”的情况下才应该返回True。在任何一排。因此,删除return True块并缩进它,以便在循环之后执行它。只有在循环尚未返回False的情况下,才不存在“”。在黑板上。性格。
然后,您的代码应该类似于Emmanuel's答案中的代码。
https://stackoverflow.com/questions/72026880
复制相似问题