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

Python四子棋开发:如何以带+/-的网格打印二维数组并显示行列号?

四子棋棋盘打印解决方案

问题拆解

你当前的代码存在几个核心问题:

  • 没有打印顶部的列号,无法直观看到列索引
  • 把网格分隔线和内容行的打印逻辑混在一起,导致落子符号根本没机会显示
  • 单元格没有预留对齐空间,格式和预期不符

修复后的代码

# 初始化6行6列的棋盘(标准四子棋是6行7列,可根据需求调整行列数)
board = [['', '', '', '', '', ''],
         ['', '', '', '', '', ''],
         ['', '', '', '', '', ''],
         ['', '', '', '', '', ''],
         ['', '', '', '', '', ''],
         ['', '', 'x', '', '', '']]  # 示例:在第5行第2列(索引从0开始)落子

# 打印顶部列号
col_count = len(board[0])
print("    ", end="")
for col in range(col_count):
    print(f"{col:^4}", end="")  # 列号居中,占4个字符宽度,和下方单元格对齐
print()

# 打印棋盘主体
for row_idx, row_content in enumerate(board):
    # 打印每行内容上方的分隔线
    print(" +", end="")
    for _ in range(col_count):
        print("---+", end="")
    print()
    
    # 打印行号和当前行的内容
    print(f"{row_idx}|", end="")
    for cell in row_content:
        # 空单元格显示空格,有落子则显示符号,都居中占3位
        print(f" {cell if cell else ' ':^3}|", end="")
    print()

# 打印最后一条分隔线,闭合棋盘底部
print(" +", end="")
for _ in range(col_count):
    print("---+", end="")
print()

代码说明

  • 列号打印:用f"{col:^4}"让每个列号居中在4字符宽度内,和下方的单元格完美对齐
  • 网格分隔线:每行内容的上下都打印+---+重复列数的横线,保证棋盘的网格结构清晰
  • 内容行处理:通过enumerate直接获取行号,每个单元格自动处理空值(显示空格),落子符号会居中显示在格子里,格式统一为 | 内容 |
  • 落子适配:只要在二维数组的对应位置存入符号(比如'x'或'o'),运行代码就会自动显示在正确位置

实际输出效果

运行后会得到和你预期一致的格式:

0   1   2   3   4   5 
 +---+---+---+---+---+---+
0|   |   |   |   |   |   |
 +---+---+---+---+---+---+
1|   |   |   |   |   |   |
 +---+---+---+---+---+---+
2|   |   |   |   |   |   |
 +---+---+---+---+---+---+
3|   |   |   |   |   |   |
 +---+---+---+---+---+---+
4|   |   |   |   |   |   |
 +---+---+---+---+---+---+
5|   |   | x |   |   |   |
 +---+---+---+---+---+---+

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:01:06