You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python井字棋程序对角线胜利检测逻辑错误求助

井字棋对角线胜利检测误判问题求助

我用Python开发井字棋游戏,横竖方向的胜利检测功能正常,但对角线胜利检测会出现误判情况。

程序中用二维列表filled存储棋盘状态,初始值为:

filled = [['n','n','n'],
          ['n','n','n'],
          ['n','n','n']]

用户落子后会更新为X或O,例如:

filled= [['X','X','n'],
         ['n','O','O'],
         ['n','n','n']]

我的对角线检测函数Dcheck如下:

def Dcheck(filled):
 global win
 global winner
 global turn
 dxcount = docount = 0

 # Negative Diagonal (1,5,9)
 x = 0
 for row in filled:
      if row[x] == 'X':
           dxcount+=1
      elif row[x] == 'O':
           docount +=1
      x+=1
           
 if dxcount == 3:
      win,winner,turn = True,'X',0
 elif docount == 3:
      win,winner,turn = True,'O',0
         
 dxcount = docount = 0

 # Positive Diagonal (3,5,7)
 x = 2 
 for row in filled:
      if row[x] == 'X':
           dxcount+= 1
      elif row[x] == 'O':
           docount += 1
      x -= 1

 if dxcount == 3:
      win,winner,turn = True,'X',0
 elif docount == 3:
      win,winner,turn = True,'O',0
           

 return [win,winner,turn,dxcount,docount]

当棋盘状态为:

filled = [['X','O','O'],
          ['X','X','n'],
          ['n','n','n']]

时,程序错误判定X获胜,反向布局时也会出现类似误判,我无法定位问题所在,恳请帮助。

内容的提问来源于stack exchange,提问作者DarthKitten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:54:27