【问题标题】:simple python connect 4 game. why doesnt this test work?简单的python连接4游戏。为什么这个测试不起作用?
【发布时间】:2010-10-02 03:50:17
【问题描述】:

除了对角线获胜的测试之外,这段代码的所有内容似乎都运行良好。垂直和水平获胜的测试似乎是完全相同的概念,并且它们运行良好。

cmets 应该主要解释它,但测试应该基本上遍历电路板并检查左下角的 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

【问题讨论】:

  • 旁注:使用for i in range(2, -1, -1): 而不是古怪的while 循环。另外,您是否有某些原因要向后迭代? range(3) 会更简单。
  • 好点,但实际上并没有解决它。编辑了问题。

标签: python


【解决方案1】:

它对我有用。我从右下角的 X 开始,然后沿对角线向左移动。我也在那个初始位置的左边开始了一个。但是,当我连续获得 4 个 X 时,它并没有立即停止——我不得不输入另一个 O,因为它只检查游戏是否应该在放置 O 后停止。你测试过正确的对角线吗?

【讨论】:

  • 谢谢!哇,我真的很笨。这个测试应该从左到右,显然它是从右到左。
猜你喜欢
  • 1970-01-01
  • 2010-12-08
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多