39 个稳定版本
新 3.1.5 | 2024年8月17日 |
---|---|
3.1.3 | 2024年7月31日 |
2.6.1 | 2024年3月2日 |
2.4.1 | 2023年7月26日 |
1.2.1 | 2020年11月29日 |
#83 in 图像
757 每月下载量
285KB
2.5K SLoC
Sgf Render
.
CLI 工具,用于从 SGF 格式的游戏记录生成围棋对局图。
默认 SVG 输出清晰,标签良好,易于重新样式化或修改。
安装
请检查 GitHub 上的 发布页面 以获取预构建的二进制文件。或者,您也可以从 crates.io 安装该包
$ cargo install sgf-render
从源代码构建
请确保您已安装 git
和 cargo
。然后
$ git clone https://julianandrews/sgf-render
$ cd sgf-render
$ cargo build --release
使用方法
Usage: sgf-render [OPTIONS] [FILE] [COMMAND]
Commands:
query Print a tree of the SGF's variations
help Print this message or the help of the given subcommand(s)
Arguments:
[FILE] SGF file to read from [default: read from stdin]
Options:
-o, --outfile <FILE> Output file [default: write to stdout]
-f, --format <OUTPUT_FORMAT> Output format [default: svg] [possible values: svg, text, png]
-g, --game-number <GAME_NUMBER> Game number to display (for multi-game files) [default: 0]
-v, --variation <VARIATION> Variation number to display (use `query` command for numbers) [default: 0]
-n, --node-number <NODE_NUMBER> Node number in the variation to display [default: last]
-w, --width <WIDTH> Width of the output image in pixels [default: 800]
-s, --shrink-wrap Draw only enough of the board to hold all the stones (with 1 space padding)
-r, --range <RANGE> Range to draw as a pair of corners (e.g. 'cc-ff')
--style <STYLE> Style to use [default: simple] [possible values: minimalist, fancy, simple]
--custom-style <FILE> Custom style `toml` file. Conflicts with '--style'. See the README for details
--move-numbers[=<RANGE>] Draw move numbers (may replace other markup)
--move-numbers-from <NUM> Number to start counting move numbers from (requires --move-numbers) [default: 1]
--label-sides <SIDES> Sides to draw position labels on [default: nw]
--no-board-labels Don't draw position labels
--tileset <TILESET> Tileset to use for text rendering (11 characters) [default: ●○┏┓┗┛┯┠┷┨┼]
--no-marks Don't draw SGF marks
--no-triangles Don't draw SGF triangles
--no-circles Don't draw SGF circles
--no-squares Don't draw SGF squares
--no-selected Don't draw SGF selected
--no-dimmed Don't draw SGF dimmed
--no-labels Don't draw SGF labels
--no-lines Don't draw SGF lines
--no-arrows Don't draw SGF arrows
--no-point-markup Don't draw any markup on points
--kifu Generate a kifu
-h, --help Print help
-V, --version Print version
节点选择和查询命令
可以使用 --node-number
标志选择节点编号。对于简单的 SGF,--node-number
和走法编号通常是对齐的,因为传统上 SGF 文件根节点没有走法。
可以使用 --variation
标志选择变体,并按深度优先遍历顺序编号。您可以使用 query
命令打印变体及其关联的 --node-number
值
$ sgf-render query tests/data/variation_tricky/input.sgf
Game #0
v0, 0-8
├── v0, 3-8
│ ├── v0, 6-8
│ └── v1, 6-7
└── v2, 3-7
├── v2, 5-7
│ ├── v2, 6-7
│ │ ├── v2, 7-7
│ │ ├── v3, 7-7
│ │ └── v4, 7-7
│ └── v5, 6-7
│ ├── v5, 7-7
│ └── v6, 7-8
├── v7, 5-5
└── v8, 5-5
Game #1
v0, 0-3
├── v0, 3-3
└── v1, 3-3
文本输出
您可以使用以下命令在终端生成适用于终端的纯文本图表:--format text
。
# sgf-render -f text tests/data/minimalist/input.sgf
ABCDEFGHJKLMNOPQRST
1 ┏┯┯┯┯┯┯┯┯┯┯○●●●●┯┯┓
2 ┠┼┼┼┼┼┼┼┼┼┼○○○●○●┼┨
3 ┠┼┼┼○○●○○○┼┼○●●○●●┨
4 ○○○○○●○○●┼○┼┼○●○○○●
5 ○●●●○●●●┼┼┼┼○┼┼┼○●┨
6 ●┼●○┼┼┼┼○┼┼┼●○┼●●┼●
7 ┠●●○┼┼○○┼●○○○●●┼┼●┨
8 ┠●○○○○●○┼○●●●○┼┼┼┼┨
9 ┠●○●┼○●○○○○○●●●●●┼┨
10 ┠┼●●●┼●○●●●●○○○○○●┨
11 ┠┼┼●○┼●●○┼┼○┼┼┼┼┼●┨
12 ┠┼●┼●○┼○┼○○┼┼┼┼┼○●┨
13 ┠●●●○○┼○○┼●○┼┼○┼○●┨
14 ┠●○○○●●●●●●○┼┼○●●┼┨
15 ○●●○●┼●○○○●●○┼┼○●┼┨
16 ┠○○●●●┼●●○○○○○○┼●┼┨
17 ┠○┼○┼●●●○┼┼●●○●●┼┼┨
18 ┠┼○○●┼┼●○┼○●┼●┼┼┼┼┨
19 ┗┷┷┷┷┷┷┷┷┷○┷●┷┷┷┷┷┛
文本图表主要用于在终端检查SGF文件,并不支持所有功能
--move-numbers
和--kifu
不受支持,- 点标记被禁用(等同于
--no-point-markup
),并且 --style
、--custom-style
和--width
被忽略。
棋谱生成
默认情况下,sgf-render
生成用于显示某一时刻棋盘位置的图表。被捕获的棋子将被移除,当使用 --move-numbers
时,只显示给定点的最后一步棋的编号。使用 --kifu
标志生成适合用作游戏记录的图表
- 步数编号被启用
- 所有其他标记被禁用
- 棋子永远不会从棋盘上移除
- 如果要在现有棋子上放置棋子,则添加注释代替
您可以使用 --move-numbers
标志选择要编号的子集,这在生成仅显示游戏一部分的图表(或一系列图表)时非常有用。
自定义样式
您可以使用 --custom-style
标志指定一个包含TOML格式自定义样式配置的文件。以下是一个用于 simple
样式的配置示例
line_color = "black"
line_width = 0.03
hoshi_radius = 0.09
background_fill = "#cfa87e"
label_color = "#6e5840"
black_stone_fill = "black"
white_stone_fill = "white"
black_stone_stroke = "black"
white_stone_stroke = "black"
markup_stroke_width = 0.1
black_stone_markup_color = "white"
white_stone_markup_color = "black"
empty_markup_color = "black"
black_stone_selected_color = "blue"
white_stone_selected_color = "blue"
empty_selected_color = "blue"
您可以在源代码包下的 resources/styles/
中看到一些其他示例
贡献
欢迎拉取请求!对于重大更改,请首先打开一个问题来讨论您想更改的内容。
也欢迎功能请求!目标是使其成为通用的SGF图表生成工具。只需在 GitHub 上打开一个问题即可。
依赖项
~4–14MB
~186K SLoC