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

Python中如何为if条件动态添加参数以适配任意尺寸井字棋获胜判断

适配任意尺寸棋盘的行获胜判断方案

直接利用Python内置能力就可以实现完全动态的判断逻辑,不需要写死多条件串联的if语句,以下是可直接复用的方案:

优化后代码

# dim为棋盘尺寸,可动态设置为3/4/5等任意值
for row_start in range(0, len(grid), dim):
    # 自动提取当前行的所有元素,长度随dim动态变化
    current_row = grid[row_start : row_start + dim]
    # 判断整行是否全为X,等价于N个and串联的判断条件
    if all(cell == "X" for cell in current_row):
        print("Player X win")
        print("-------------")
        # 打印完整棋盘
        for print_start in range(0, len(grid), dim):
            print(grid[print_start : print_start + dim])
        print("-------------")
        # 匹配到获胜直接终止遍历,节省性能
        break

方案说明

  • 列表切片grid[row_start : row_start + dim]会根据你设置的dim值自动提取对应长度的行元素,3x3棋盘取3个元素、5x5取5个,天然适配任意规格的棋盘
  • all()函数会迭代校验当前行所有元素是否都满足== "X"的条件,运行效率和手写多and判断完全一致,代码可维护性大幅提升
  • 原代码中冗余的count、count1计数变量已经删除,直接用步长为dim的range遍历即可自动计算每行的起始坐标,逻辑更清晰

注意:你原有代码中的count1 =+ dim是语法错误,等价于count1 = dim,会导致打印棋盘的逻辑出现死循环,优化后的代码已经修复了该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:15:01