## [1.3.5-beta.2] - 2025-7-13

### 修复进度条会出现卡死的问题

------------------------------------------------------------

## [1.3.5-beta.2] - 2025-7-13

### 添加规则3D1X, 3D1X'

------------------------------------------------------------

## [1.3.5-beta.1] - 2025-7-13

### 添加求解器超时限制

------------------------------------------------------------

## [1.3.5-beta.1] - 2025-7-13

### 修复-q参数不能组合右线的bug

------------------------------------------------------------

## [1.3.5-beta] - 2025-7-12

### 上传至github

------------------------------------------------------------

## [1.3.5-alpha.10] - 2025-7-12

### 修复1S, 1O, 2S, 2G, 2B多解

------------------------------------------------------------

## [1.3.5-alpha.9] - 2025-07-10

### 修复

- 【规则 2A】修复生成谜题存在多解的问题（初步），增加唯一性验证逻辑

------------------------------------------------------------

## [1.3.5-alpha.9] - 2025-07-10

### 修复

- 【规则 2A】修复多解问题（初步），增加唯一性验证测试

------------------------------------------------------------

## [1.3.5-alpha.8] - 2025-07-10

### 新增

- 添加规则：`2G'`、`2G`、`2A`、`1E'`

------------------------------------------------------------

## [1.3.5-alpha.7] - 2025-07-09

### 新增

- 添加规则：`1P`、`1W'`

------------------------------------------------------------

## [1.3.5-alpha.6] - 2025-07-09

### 新增

- 添加规则：`1E`

------------------------------------------------------------

## [1.3.5-alpha.5] - 2025-07-09

### 改进

- 【生成器】为 `dig_unique()` 添加总进度条显示，支持任务追踪

------------------------------------------------------------

## [1.3.5-alpha.3] - 2025-07-08

### 改进

- 【位置系统】调整 `pos.neighbors()` 接口，支持欧几里得层次邻接调用

------------------------------------------------------------

## [1.3.5-alpha.2] - 2025-07-07

### 新增

- 添加规则：`1A`、`1H`、`1U`、`1X`、`2C`、`2H`、`2S`、`2Z`

------------------------------------------------------------

## [1.3.5] - 2025-07-07

### 新增

- 【显示系统】重写显示框架，支持以结构化对象生成图形元素，统一表示文字、图像与布局：
  - 添加 `get_text()`：创建文本显示元素，支持宽高控制、颜色双模（黑白底）、是否覆盖位置标识；
  - 添加 `get_image()`：从 `assets/` 文件夹加载图片元素，支持尺寸缩放、自动裁剪与对齐控制；
  - 添加 `get_row()` 与 `get_col()`：支持水平/垂直布局嵌套，自动继承主导方向，支持间距与子元素覆盖控制；
  - 添加 `get_dummy()`：添加自定义尺寸的空白占位元素，用于布局补齐；
  - 所有元素支持 `dominant` 参数统一对齐控制（高主导/宽主导/继承父级）；

### 改进

- 所有布局函数自动推导对齐属性，简化结构组合的对齐控制逻辑；
- 元素支持 `cover` 标志，可控制是否遮盖 `X=N` 的位置标签。

### 注意事项

- 图片加载路径固定为 `assets/{image_path}.png`，如文件不存在将返回 `None`；
- 宽高参数可为 `"auto"`（自动）或整数值（以单元格为单位）；
- 所有构造函数均返回 dict 对象，供渲染器或显示模块解释执行；
- 函数接口均为纯函数、无副作用，适合逻辑测试与序列化。

------------------------------------------------------------

## [1.3.4-alpha.3] - 2025-07-05 3:20

### 变更

- 修改规则调用方式为统一混合调用接口 `-c`, `--rules`：
  - 原命令行接口 `-l`（左线）、`-m`（中线）、`-c`（右线）已废弃；
  - 新接口通过 `-c 规则名...` 一次性指定所有线索规则，无需区分左右中线来源；
  - 支持任意组合，如 `-c 1F 2T 1L 2M` 表示同时使用两个左线规则与两个右线规则；
  - 所有规则通过名称自动识别其归属类型，无需额外标记。

------------------------------------------------------------

## [1.3.4-alpha.2+1] - 2025-07-04

### 修复

- 修复：染色系统无法作用于多题板结构的问题；
  - 原先颜色信息局限于单板，现在已支持跨题板共享染色组；
  - 修复逻辑已适配所有染色相关组件（含规则与调试模块）。

- 修复：所有左线规则在多主板模式下无法正确识别目标位置的问题；
  - 现已统一重构为支持按 `board_key` 操作；
  - 保持与单板逻辑兼容，允许左线在多个主板间独立或联合生效。

------------------------------------------------------------

## [1.3.4-alpha.2] - 2025-07-04

### 新增

- 【规则接口】添加可选函数接口 `suggest_total(info: dict)`，供规则在生成阶段添加总雷数相关约束：
  - 支持通过 `info["hard_fns"]` 提供硬约束函数，统一由生成器调用；
  - 支持通过 `info["soft_fn"]` 注册目标值与优先级作为软约束，生成器自动建模；
  - 适用于规则表达诸如“总雷数为 3 的倍数”、“期望总雷数为 40”等逻辑；
  - 接口为可选实现，规则可选择性重写以参与总雷数调控。

### 文档

- 补充 `suggest_total()` 接口文档，说明参数结构、调用时机及软/硬约束行为；
- 示例展示如何使用闭包添加约束与调用软约束注册函数；
- 明确该接口仅在生成阶段调用，与求解器运行阶段无关。

------------------------------------------------------------

## [1.3.4-alpha.1] - 2025-07-04

### 新增

- 【规则系统】添加伪 3D 抽象规则类 `Abstract3DRule`（位于 `impl/rule/3D/__init__.py`）：
  - 提供跨层坐标支持：`pos_up(pos, n=1)`、`pos_down(pos, n=1)` 等；
  - 用于构建多层结构中的邻域引用，无需扩展题板本体为 3D。

- 【规则实现】新增基础 3D 规则类：
  - `3D1T`, `3D2T`, `3D1Q`：基于多层区域的雷数约束；
  - `3DV`：支持跨层替换线索的伪 3D 线索规则。

### 文档

- 更新规则开发文档，新增 `impl/rule/3D/` 模块结构说明；
- 补充伪 3D 规则接口的设计原则与用法说明。

------------------------------------------------------------

## [1.3.3-build+2] - 2025-07-04

### 新增

- 添加 `AbstractBoard.get_interactive_keys()` 方法：
  - 返回所有配置项中 `interactive=True` 的子题板 key；
  - 用于规则系统或解题器自动识别具备主板交互权限的子题板；
  - 接口简洁、与现有 `get_board_keys()` 逻辑保持一致。

### 改进

- 优化题板配置项表达语义，新增布尔配置项 `interactive`：
  - 含义：是否允许解题器主动访问、操作该副板；
  - 设为 `True` 时，该副板在逻辑上等同主板，参与变量赋值与规则建模；
  - 默认值为 `False`，除非显式设置。
- image_create在副板数量>2时会添加罗马数字方便区分

### 文档

- 补充 `interactive` 配置项的详细说明；
- 为 `get_interactive_keys()` 添加 API 文档段落，统一表格格式；
- 统一命名风格与布尔配置文档命名规范。

------------------------------------------------------------

版本：1.3.3 （2025-07-03）

【修复】
- 修复左线组合种子无效的bug。

【新增】
- 添加规则 [2E'2I]、[2E'2I']、[2I]、[2I']、[2E]、[1T]、[1T']。
- 给 imageElement、TextElement 接口添加参数 cover_pos_label。
- 给所有规则添加接口 init_clear()。

------------------------------------------------------------

版本：1.3.2 （2025-07-03）

【优化】
- 增加 docs/、config/ 文档文件夹，用于集中规则说明、开发接口文档。

------------------------------------------------------------

版本：1.3.1 （2025-07-03）

【新增】
- 引入副板机制，题板支持通过 board_key 标识区分不同逻辑区域。
- AbstractBoard 支持多子题板模型：
    - 新增 get_board_keys()、get_pos(x, y, key)、__call__(..., key=...) 等接口；
    - 新增 get_config(board_key, config_name) 读取副板配置。

------------------------------------------------------------

版本：1.2.x （2025-06-30）

【新增】
- 新增渲染模块 image.py，支持题板图片输出：
    - 可自定义单元格内的具体内容；
    - 兼容副板并列排布。
- 渲染过程支持参数配置（如大小、位置、色彩）。
