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

如何在Connect4游戏中打印无引号、逗号的数组列表棋盘?

解决Connect4棋盘打印问题

假设你的棋盘是一个二维列表(比如每个元素是空格、'X'或'O'),直接打印列表会显示括号、引号和逗号,而单纯用''.join会把所有内容堆在一行,你可以按以下方式处理:

基础解决方案(空格分隔每行)

先对棋盘的每一行用空格连接元素,然后逐行打印,或者把所有处理后的行用换行符拼接后一次性打印:

方法1:循环逐行打印

# 示例棋盘
board = [
    [' ', ' ', ' ', ' ', ' ', ' ', ' '],
    [' ', ' ', ' ', ' ', ' ', ' ', ' '],
    [' ', ' ', 'X', ' ', ' ', ' ', ' '],
    [' ', 'O', 'X', ' ', ' ', ' ', ' '],
    [' ', 'O', 'X', 'X', ' ', ' ', ' '],
    ['O', 'X', 'O', 'X', 'O', ' ', ' ']
]

for row in board:
    print(' '.join(row))

运行后输出的棋盘就是干净的每行空格分隔样式:

X    
     O X    
     O X X  
O X O X O   

方法2:一次性拼接打印

如果不想用循环,也可以用生成器表达式把所有行处理后用换行符连接:

print('\n'.join(' '.join(row) for row in board))

进阶:添加棋盘边框(更像Connect4)

如果想让棋盘更直观,可以用竖线分隔每个元素,再加上横线分隔行:

for row in board:
    print(' | '.join(row))
    # 生成对应长度的分隔线,每行7个元素的话就是 7*3-1=20个'-'
    print('-' * (len(row)*3 - 1))

输出效果:

|   |   |   |   |   |  
-------------------------
  |   |   |   |   |   |  
-------------------------
  |   | X |   |   |   |  
-------------------------
  | O | X |   |   |   |  
-------------------------
  | O | X | X |   |   |  
-------------------------
O | X | O | X | O |   |  
-------------------------

为什么之前的''.join不行?

你之前用''.join可能是直接把整个二维列表的元素拉平了(比如''.join(item for row in board for item in row)),这样所有元素会连在一起显示在一行。正确的做法是先处理每一行,再把行与行用换行符分隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:30:58