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

Python控制台8×8棋盘黑白交替着色异常问题求助

修复8×8棋盘(3×3格子)的黑白交替着色问题

原代码的核心问题在于行颜色判断逻辑混乱和换行逻辑错误,导致棋盘黑白完全不符合交替规则。以下是问题拆解和修复方案:

问题点分析

  1. 行颜色判断逻辑错误:原代码用linecount%3==0 or linecount%4==0 or linecount%5==0来决定颜色,完全偏离棋盘行的规律。正确逻辑应为:每3行对应棋盘的一个大格子行,同一大格子行的3行颜色模式一致,相邻大格子行的颜色模式交替。
  2. 换行位置错误:原代码用len(chessboard)%25==0触发换行,而每行实际是24个方块(8个大格子×3),换行位置计算错误导致排版混乱。
  3. 列颜色切换未结合行状态:原代码仅在i%3==0时切换颜色,但未关联当前大格子行的起始颜色,导致列交替逻辑混乱。

修复后的代码

print("""
Chess

Press Enter to Start...
""")

enterwait = input()
if enterwait == "":
    chessboard = ""
    # 遍历8个棋盘大格子行,每个行对应3个小行
    for board_row in range(8):
        # 每个大格子行重复输出3次相同的小行
        for _ in range(3):
            # 遍历8个棋盘大格子列,每个列对应3个同色小方块
            for board_col in range(8):
                # 国际象棋棋盘颜色规则:行+列奇偶性相同为白色,否则黑色
                if (board_row + board_col) % 2 == 0:
                    chessboard += "⬜" * 3
                else:
                    chessboard += "⬛" * 3
            # 每个小行结束后换行
            chessboard += "\n"
    
    print(chessboard)

关键改动说明

  • 按大格子行/列组织逻辑:先处理8个大格子行,每个行重复3次小行;再处理8个大格子列,每个列输出3个同色方块,逻辑更清晰。
  • 简化颜色判断:用(board_row + board_col) % 2 == 0直接判断大格子颜色,严格遵循国际象棋棋盘的黑白交替规则。
  • 明确换行时机:每个小行(24个方块)结束后直接添加换行符,避免长度计算误差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:42:51