它正在引用一个有9个插槽的游戏板,一旦插槽填满## while循环在没有任何空白点且我不知道如何解决它时继续搜索新的地点, 请帮忙! :(
computer = random.randint(0, 8)
if board[computer] != 'X' and board[computer] != 'O':
print computer
board[computer] = 'O'
else:
while board[computer] == 'O' or 'X':
counter = 0
if counter > 15:
break
computer = random.randint(0, 8)
print computer
if board[computer] != 'X' and board[computer] != 'O':
board[computer] = 'O'
counter += 1
答案 0 :(得分:6)
您的while
语句始终返回真值,因为or 'X'
始终评估为True
。首先,评估board[computer] == '0'
,如果False
,则会进入or
的右侧,这只是字符串X
。你的代码中的其他地方确实有这种模式,所以我怀疑这只是一种疏忽。
相反,您必须包含布尔比较的两侧:
while board[computer] == 'O' or board[computer] == 'X':
或者更好,您可以使用in
while board[computer] in ['O','X']:
或者,@icktoofay在评论中提供,这是惯用的:
while board[computer] in 'OX':
您的counter
必须初始化为<{1}} 在循环之外,而不是在内部重新初始化。
0