蟒蛇。相邻空间的列表检查列表

时间:2014-08-30 20:10:08

标签: python list

您好我一直在尝试用Python构建一个Tic Tac Toe游戏,因此我正在检查相邻符号的列表列表。我知道代码不优雅。但我主要担心的是这个例程给我随机的结果。你们能明白为什么吗?

def winx(self):
    if self.current_table [0][0] and self.current_table [0][1] and self.current_table[0][2]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [1][0] and self.current_table [1][1] and self.current_table[1][2]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [2][0] and self.current_table [2][1] and self.current_table[2][2]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [0][0] and self.current_table [1][0] and self.current_table[2][0]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [0][1] and self.current_table [1][1] and self.current_table[2][1]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [0][2] and self.current_table [1][2] and self.current_table[2][2]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [0][0] and self.current_table [1][1] and self.current_table[2][2]== "x":
        print "Good Boy, you won"
        self.winner=1
    elif self.current_table [0][2] and self.current_table [1][1] and self.current_table[2][0]== "x":
        print "Good Boy, you won"
        self.winner=1
    else:
        self.winner=None "

2 个答案:

答案 0 :(得分:2)

如果你把

 if a and b and c == 'x'

您正在检查a是否为非零且b是非零并且c等于' x' (其中任何非空字符串都算作非零)

如果你把

 if a==b==c=='x'

应告诉您所有三个变量是否等于' x'

答案 1 :(得分:1)

我不知道这是否是唯一的问题,但你不能像这样进行分组比较:

if self.current_table[0][0] \
   and self.current_table[0][1] \
   and self.current_table[0][2]== "x":
#                              ^^^^^^

你必须写:

if self.current_table[0][0] == "x" \
   and self.current_table [0][1] == "x" \
   and self.current_table[0][2]== "x":

或者

if self.current_table[0][0] == \
   self.current_table[0][1] == \
   self.current_table[0][2] == "x":

或者

if (self.current_table[0][0],self.current_table [0][1],self.current_table[0][2]) == ("x","x","x"):