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

NxN井字棋左上到右下对角线胜负判断实现及代码错误排查

问题根因

你编写的代码存在两个核心逻辑错误:

  • 提前终止循环:只要遍历到第一行的对角线元素就直接返回结果,完全没有检查后续所有行的对角线位置。你给出的测试用例中,第一行第一列是X,直接命中else分支返回True,完全没有检查第二行第二列的空位,导致误判。
  • 列索引自增逻辑错误:你把columncount的自增放在了匹配失败的分支中,即使能走到后续循环,也无法正确对应到下一行的对角线坐标(左上到右下对角线的坐标应为(i,i),行索引和列索引是同步增长的)。

修正后代码

# 测试用例
cur = [['X',' '],[' ',' ']] 
player= 'X'

def check_down_diag(cur, player):
    col_idx = 0
    for row in cur:
        # 只要有一个对角线位置不匹配,直接返回失败
        if row[col_idx] != player:
            return False
        # 列索引同步自增,匹配下一行的对角线位置
        col_idx += 1
    # 所有对角线位置都匹配,返回成功
    return True

# 测试输出
print(check_down_diag(cur, player)) # 输出False,符合预期

适配说明

  • 无需硬编码任何棋盘尺寸参数,自动适配任意NxN规格的井字棋棋盘
  • 时间复杂度为O(N),只需遍历N个对角线元素即可得出结果,中途发现不匹配直接终止,无需遍历全棋盘

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:57:00