因此,作为一个剧本我写玩井字游戏的一部分,我有一个“双赢检查”,这作为它的输入:的Python调试简单的脚本
- 这表示位置 号码列表
- 谁开始游戏
这不是对我有这个问题很重要,但我认为一些背景可能帮助。下面是代码:
import matplotlib.pyplot as plt
import math
import numpy as np
import random
import pdb
def win_checker(position_list, turn2):
win_list1 = []
win_list2 = []
for bud in xrange(len(position_list)):
if bud % 2 == 0:
win_list1.append(position_list[bud])
print win_list1
if 1 and 2 and 3 in win_list1:
return True
if 4 and 5 and 6 in win_list1:
return True
if 7 and 8 and 9 in win_list1:
return True
if 1 and 4 and 7 in win_list1:
return True
if 2 and 5 and 8 in win_list1:
return True
if 3 and 6 and 9 in win_list1:
return True
if 1 and 5 and 9 in win_list1:
return True
if 3 and 5 and 7 in win_list1:
return True
elif bud % 1 == 0:
win_list2.append(position_list[bud])
print win_list2
if 1 and 2 and 3 in win_list2:
return True
if 4 and 5 and 6 in win_list2:
return True
if 7 and 8 and 9 in win_list2:
return True
if 1 and 4 and 7 in win_list2:
return True
if 2 and 5 and 8 in win_list2:
return True
if 3 and 6 and 9 in win_list2:
return True
if 1 and 5 and 9 in win_list2:
return True
if 3 and 5 and 7 in win_list2:
return True
else:
return False
然后,当我尝试脚本一定位置:
win_checker([5,1,3,2], 1)
[5]
[1]
[5, 3]
Out[57]: True
我不明白为什么输出为True,如果有人能解释我缺少什么这将是对我很大的帮助
请参阅在http://stackoverflow.com/help/mcve准则 - 围绕代码一个很好的问题将包含** **最小的,完整的,可核查的例子 - 这意味着尽可能小的代码量将会产生相同的问题。在这种情况下,这可能只是一条包含单个“if”条件的行,您认为该条件不应该返回True,但实际上却是这样做的。 –