您好我一直在尝试用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 "
答案 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"):