Graphviz::DOT::Chessboard
Raku package for making chessboard plots via the
DOT language
of
Graphviz.
Installation
From Zef ecosystem:
zef install Graphviz::DOT::Chessboard
From GitHub:
zef install https://github.com/antononcube/Raku-Graphviz-DOT-Chessboard.git
Basic usage
Load the package:
use Graphviz::DOT::Chessboard;
Generate DOT spec:
say dot-chessboard(4, 4, title => 'Example small chessboard'):!svg;
Generate an SVG plot:
my %opts = black-square-color => 'SandyBrown', white-square-color => 'Moccasin', :4size;
dot-chessboard(8, 8, |%opts):svg;

Using a FEN string (on a smaller board):
my $fen = '8/8/8/3K4/5r2/8/1k6/8';
dot-chessboard($fen, :5r, :6c):svg

Here is a way to specify the initial position of a 5x5 chess (in a "green style"):
my %opts-green = black-square-color => '#779556ff', white-square-color => '#ebecd0ff', white-piece-stroke-color=> 'LightGray';
my $fen = '8/8/8/rnbqk3/ppppp3/8/PPPPP3/RNBQK3';
dot-chessboard($fen, :5r, :5c, :4size, |%opts-green, background=>'none', :svg)

TODO
- DONE White pieces should have contours
- DONE Chess positions by Forsyth-Edwards Notation (FEN) strings
- TODO Fuller set of unit tests
- TODO CLI script
References
[AAp1] Anton Antonov,
Graph Raku package,
(2024),
GitHub/antononcube.
[AAp2] Anton Antonov,
Graphviz::DOT::Grammar Raku package,
(2024),
GitHub/antononcube.