NAME

Chess::Rep::Coverage::Imager - Expose chess ply potential energy with Imager

SYNOPSIS

use Chess::Rep::Coverage::Imager;

my $g = Chess::Rep::Coverage::Imager->new();
$g->write('board', 'png');

$g->set_from_fen('8/8/8/3pr3/4P3/8/8/8 w ---- - 0 1');
$g->coverage(); # Recalculate coverage status
$g->board(); # Re-render the board.
$g->write('foo', 'png');

DESCRIPTION

This module exposes the "potential energy" of a chess ply by writing an Imager graphic of the board positions, pieces and their "attack or protection status."

METHODS

new()

Return a new Chess::Coverage::Imager object.

write($name, $type_extension)

$filename = $g->write('my-board', 'png');

Return filename on success (as defined by simple existence) or undef on failure.

board()

$board = $g->board(%arguments);

Return an Imager board layout with threats and protections indicated by concentric colored circles. Move status is indicated by concentric colored squares.

These are the %arguments with their default values, that you can override in the call:

border        => 2
channels      => 4
font_file     => undef # Set as /path/to/a/fontfile.ttf
font_size     => 15
grid          => 1 # Boolean
letters       => 1 # Boolean
max_coord     => 7 # Board side - 1
margin        => 20
square_height => 33
square_width  => 33

board_color         => #FFFFFF # white
border_color        => #808080 # gray
grid_color          => #C0C0C0 # silver
letter_color        => #000000 # black
white_move_color    => #00FF00 # lime
black_move_color    => #FDD017 # gold
white_threat_color  => #00FF00 # lime
black_threat_color  => #FDD017 # gold
white_protect_color => #00FF00 # lime
black_protect_color => #FDD017 # gold

For instance, if you just want to see the white player protection as lime green and threats from the black player as red, call board() with white_move_color, black_move_color, white_threat_color, and black_protect_color all as #FFFFFF, the black_threat_color = '#FF0000'> and white_protect_color = 00FF00>.

The FEN sequence in the Wikipedia link under "SEE ALSO" graphically renders (with default colors) as:

Starting positions

Move 1

Move 2

Move 3


How about an animation of the famous "Immortal Game" between Garry Kasparov vs. Veselin Topalov, in 1999?

The Immortal Game

SEE ALSO

* The code in the examples/ and t/ directories.

* Chess::Rep::Coverage

* Imager

* http://en.wikipedia.org/wiki/Forsyth-Edwards_Notation

* http://www.chessgames.com/perl/chessgame?gid=1011478 (The "Immortal" game)