Chess::Rep::Coverage - Expose chess ply potential energy
version 0.1103
use Chess::Rep::Coverage; my $g = Chess::Rep::Coverage->new; print $g->board; $g->set_from_fen('8/8/8/3pr3/4P3/8/8/8 w ---- - 0 1'); $g->coverage; # Recalculate board status print $g->board;
This module exposes the "potential energy" of a chess ply by returning a hash reference of the board positions, pieces, possible movements, and their attack or protection status.
Return a new Chess::Coverage object.
Chess::Coverage
$c = $g->coverage;
Set the cover attribute and return a data structure, keyed on board position, showing:
occupant => Human readable piece name color => Color number of the occupant index => The C<Chess::Rep/Position> board position index move => List of positions that are legal moves by this piece protects => List of positions that are protected by this piece threatens => List of positions that are threatened by this piece is_protected_by => List of positions that protect this piece is_threatened_by => List of positions that threaten this piece white_can_move_here => List of white piece positions that can move to this position black_can_move_here => List of black piece positions that can move to this position
print $g->board;
Return an ASCII board layout with threats, protections and move statuses.
Protection and threat is indicated by p/t. White and black movement is indicated by w:b.
p/t
w:b
For example, the FEN 8/8/8/3pr3/4P3/8/8/8 w ---- - 0 1 is rendered as:
8/8/8/3pr3/4P3/8/8/8 w ---- - 0 1
A B C D E F G H +-----+-----+-----+-----+-----+-----+-----+-----+ 1 | | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ 2 | | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ 3 | | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ 4 | | | | 0:1 | 0/2 | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ 5 | | | | 1/1 | 0/0 | 0:1 | 0:1 | 0:1 | +-----+-----+-----+-----+-----+-----+-----+-----+ 6 | | | | | 0:1 | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ 7 | | | | | 0:1 | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ 8 | | | | | 0:1 | | | | +-----+-----+-----+-----+-----+-----+-----+-----+
This means that, 1) the black pawn at D5 can move to D4 and can capture the white pawn at E4; 2) the white pawn at E4 can capture the pawn at D5 but cannot move; 3) the black rook at E5 protects the black pawn at D5, can capture the white pawn at E4 and can move to F5 through H5 or E6 through E8.
@piece_moves = move_probability(%arguments);
Compute the "likelihood" of moving to a protected or threatened position.
The code in this distribution examples/ and t/ directories.
Chess::Rep
http://en.wikipedia.org/wiki/Forsyth-Edwards_Notation
Gene Boggs <gene@cpan.org>
This software is copyright (c) 2020 by Gene Boggs.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Chess::Rep::Coverage, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Chess::Rep::Coverage
CPAN shell
perl -MCPAN -e shell install Chess::Rep::Coverage
For more information on module installation, please visit the detailed CPAN module installation guide.