#chess-board #fen #notation #position #parser #struct #coordinates

fenx

A rust library for parsing and handling FEN and algebraic chess notations

2 releases

0.1.1 Jan 13, 2024
0.1.0 Jan 13, 2024

#516 in Math

MIT/Apache

24KB
573 lines

芬克斯棋库(未完成)

Fenx 是一个用于处理棋局逻辑的 Rust 库。它提供了对 Forsyth-Edwards 记号(FEN)字符串的解析、以代数记号处理棋步等功能的支持。

特性

芬模块

芬模块提供了用于表示 Forsyth-Edwards 记号(FEN)中棋盘位置的 Fen 结构。

Fen 结构

  • 构造函数: Fen::new(board: &str) -> Fen

    • 从给定的棋盘位置字符串创建一个新的 Fen 结构。
  • 解析器: Fen::parse_fen(fen_str: &str) -> Result<Fen, &'static str>

    • 将 FEN 字符串解析为 Fen 结构。
  • 调试打印: Fen::debug()

    • 用于调试目的打印 Fen 结构内的值。
  • 棋盘打印: Fen::print_to_board()

    • 将棋盘打印到控制台。
  • 棋盘转换: Fen::boardify() -> String

    • Fen 结构转换为表示棋盘的字符串。

坐标模块

坐标模块提供了用于表示棋盘位置的 Coordinates 结构。

Coordinates 结构

  • 构造函数: Coordinates { x: i8, y: i8 }

    • 使用指定的x和y值创建一个新的Coordinates结构体。
  • 从表示法: Coordinates::from_notation(notation: Notation) -> Result<Coordinates, &'static str>

    • Notation结构体转换为Coordinates结构体。
  • 转换为表示法: Coordinates::to_notation(&self) -> Result<Notation, &'static str>

    • Coordinates结构体转换为Notation结构体。

表示法模块

Notation模块提供了用于表示象棋走法的代数表示法的Notation结构体。

Notation结构体

  • 构造函数: Notation::new(file: char, rank: char) -> Option<Notation>

    • 使用行列值创建一个新的Notation结构体。
  • 从坐标: Notation::from_coordinates(coordinates: Coordinates) -> Result<Notation, &'static str>

    • Coordinates结构体转换为Notation结构体。
  • 转换为坐标: Notation::to_coordinates(&self) -> Result<Coordinates, &'static str>

    • Notation结构体转换为Coordinates结构体。

贡献

欢迎对Fenix做出贡献!请在创建pull request之前确保您的代码格式化为cargo fmt

无运行时依赖