当前位置:首页 > Python > 正文

Python编程入门:输出国际象棋棋盘教程 | Python基础教学

Python编程入门:输出国际象棋棋盘

学习编程最好的方式是通过有趣的项目实践。在本教程中,我们将使用Python创建一个国际象棋棋盘,既可以在控制台输出文本版本,也可以生成HTML表格版本。通过这个项目,你将掌握Python的基础循环、条件判断和字符串操作。

国际象棋棋盘的特点

国际象棋棋盘是一个8×8的方格矩阵,具有以下特征:

  • 由64个方格组成(8行×8列)
  • 方格颜色交替排列(通常为黑白交替)
  • 左上角方格为黑色或白色(取决于棋盘方向)
  • 每个方格可以用坐标表示,如a1, b2等

方法1:控制台文本输出

首先,我们创建一个在控制台输出的文本版本棋盘:

def print_text_chessboard():
    """在控制台输出文本格式的国际象棋棋盘"""
    print("文本格式国际象棋棋盘:")
    for row in range(8):
        for col in range(8):
            # 判断方格颜色:当行号+列号为偶数时输出黑色方格
            if (row + col) % 2 == 0:
                print("■", end=" ")  # 黑色方格
            else:
                print("□", end=" ")  # 白色方格
        print()  # 换行

# 调用函数
print_text_chessboard()

输出结果示例:

■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■

方法2:生成HTML棋盘

现在让我们创建一个更直观的HTML版本棋盘,使用Python生成HTML表格:

def generate_html_chessboard():
    """生成HTML格式的国际象棋棋盘"""
    html = "<table style='border-collapse: collapse; margin: 20px auto;'>"
    for row in range(8):
        html += "<tr>"
        for col in range(8):
            # 设置方格颜色
            color = "black" if (row + col) % 2 == 0 else "white"
            # 添加坐标标签
            coord = f"{chr(97 + col)}{8 - row}"
            # 创建表格单元格
            html += f"<td style='width: 50px; height: 50px; background-color: {color}; color: {'white' if color == 'black' else 'black'}; text-align: center; font-weight: bold;'>{coord}</td>"
        html += "</tr>"
    html += "</table>"
    return html

# 使用示例
chessboard_html = generate_html_chessboard()
print(chessboard_html)  # 输出HTML代码,可在浏览器中显示

代码解析

让我们分解上面的代码,理解其工作原理:

1. 循环结构

使用嵌套循环遍历棋盘的每个位置:

  • 外层循环:for row in range(8) 处理8行
  • 内层循环:for col in range(8) 处理每行的8列

2. 方格颜色判断

使用数学方法确定方格颜色:

  • (row + col) % 2 == 0 - 行号+列号为偶数时返回True
  • 这种算法确保相邻方格颜色不同

3. 坐标系统

为每个方格添加坐标标签:

  • 列号转换为字母:chr(97 + col)(97是'a'的ASCII码)
  • 行号:8 - row 确保a1在左下角(国际象棋标准)

完整代码示例

下面是完整的Python程序,包含两种棋盘输出方法:

def print_text_chessboard():
    """在控制台输出文本格式的国际象棋棋盘"""
    print("文本格式国际象棋棋盘:")
    for row in range(8):
        for col in range(8):
            # 判断方格颜色
            if (row + col) % 2 == 0:
                print("■", end=" ")
            else:
                print("□", end=" ")
        print()

def generate_html_chessboard():
    """生成HTML格式的国际象棋棋盘"""
    html = "<table style='border-collapse: collapse; margin: 20px auto;'>"
    for row in range(8):
        html += "<tr>"
        for col in range(8):
            # 设置方格颜色
            color = "black" if (row + col) % 2 == 0 else "white"
            # 添加坐标标签
            coord = f"{chr(97 + col)}{8 - row}"
            # 创建表格单元格
            html += f"<td style='width: 50px; height: 50px; background-color: {color}; color: {'white' if color == 'black' else 'black'}; text-align: center; font-weight: bold;'>{coord}</td>"
        html += "</tr>"
    html += "</table>"
    return html

# 主程序
if __name__ == "__main__":
    # 输出文本棋盘
    print_text_chessboard()
    
    # 生成HTML棋盘
    chessboard_html = generate_html_chessboard()
    
    # 保存到HTML文件
    with open("chessboard.html", "w", encoding="utf-8") as f:
        f.write("<!DOCTYPE html>")
        f.write("<html><head><title>Python生成的国际象棋棋盘</title></head><body>")
        f.write("<h1 style='text-align:center;'>Python生成的国际象棋棋盘</h1>")
        f.write(chessboard_html)
        f.write("</body></html>")
    
    print("HTML棋盘已保存为 chessboard.html")

实际效果展示

下面是Python生成的国际象棋棋盘实际效果:

a8 b8 c8 d8 e8 f8 g8 h8
a7 b7 c7 d7 e7 f7 g7 h7
a6 b6 c6 d6 e6 f6 g6 h6
a5 b5 c5 d5 e5 f5 g5 h5
a4 b4 c4 d4 e4 f4 g4 h4
a3 b3 c3 d3 e3 f3 g3 h3
a2 b2 c2 d2 e2 f2 g2 h2
a1 b1 c1 d1 e1 f1 g1 h1

学习收获

通过本教程,你学会了:

  • 使用Python嵌套循环遍历二维网格
  • 利用模运算实现交替模式
  • 在控制台输出格式化文本
  • 生成HTML内容并保存为文件
  • 理解国际象棋棋盘的坐标系统

扩展练习

尝试以下挑战,巩固所学知识:

  1. 修改程序,使左上角为白色而不是黑色
  2. 添加功能让用户指定棋盘大小(如10×10)
  3. 在棋盘中添加国际象棋棋子(用字母表示)
  4. 创建一个函数判断给定坐标的方格颜色
  5. 将棋盘方向改为白方在底部(a1为黑格)

学习提示

这个项目是学习Python循环和条件语句的绝佳练习。通过可视化输出,你可以直观地理解代码逻辑。尝试修改代码中的变量,观察棋盘变化,这是学习编程的最佳方式!

发表评论