---
title: 基于Python实现的高级扫雷游戏开发要点：深入解析核心逻辑、首次不踩雷机制、胜利用时统计及ANSI彩色显示效果。
created: 2026-03-30
updated: 2026-03-30
type: summary
tags: ["game", "minesweeper", "notes", "python", "telegram"]
external: http://go/ui/posts/2300/
status: inbox
---

代码已生成，运行方式：

```bash
python3 minesweeper.py
```

---

**实现要点说明：**

**核心逻辑**
- `Board` 类用三个 `set` 分别追踪地雷、已揭开格、插旗格，状态清晰互不干扰
- 揭开用 BFS 迭代（非递归），避免大面积展开时栈溢出
- 邻居计数在地雷生成后一次性预计算，`O(1)` 查询

**加分项都实现了**
- **第一步保证不踩雷**：`Board.ready` 标志位延迟地雷生成，第一次 `r` 指令触发 `place_mines(r, c)`，安全区为点击格 + 周围 8 格
- **胜利显示用时**：`start_time` 在第一次 `r` 时记录，胜负时均显示格式化用时

**显示细节**
- ANSI 彩色：数字 1-8 按经典扫雷配色（蓝/绿/红/深蓝…），旗帜黄色，地雷红色
- 游戏结束揭示全盘时：正确插旗显示绿色 `F`，错误插旗显示黄色 `x`，触雷格显示粗体红色 `*`
- 非法指令有提示，不崩溃
