简单的Python四子棋游戏。为什么这个测试不工作?
这段代码看起来一切正常,除了对斜线胜利的测试。对垂直和水平胜利的测试似乎是完全相同的概念,而且它们工作得很好。
注释大部分应该能解释清楚,但测试的基本思路是遍历棋盘,检查左下角是否有“x”(这是右斜线胜利的唯一起点)。然后,它会向上和向右移动一个格子,连续检查四次,看看是否有四个连在一起。
下面是相关的函数。
#for diagonal
#not working! WHYYYY
def winnertest3():
for i in range(3):
for e in range(4):
print i,e
if board[i][e]=='X' and board[i+1][e+1]=='X' and board[i+2][e+2]=='X' and board[i+3][e+3]=='X':
print "X wins!!!!"
return 'over'
return 'on'
http://github.com/keevie/Computer-Science/blob/master//board1.py
1 个回答
1
对我来说这个方法有效。我从右下角开始放一个X,然后斜着往左上角放。还有,我在那个初始位置的左边也开始放了一个。不过,当我放了4个X连在一起的时候,游戏并没有立刻停止——我还得再放一个O,因为游戏只会在放了O之后检查是否该停止。你有没有测试过右边的对角线?