NAME

Games::Board::Grid -- a grid-shaped gameboard

SYNOPSIS

use Games::Board::Grid;

my $chess = Games::Board->new(size => 8);

my $rook = Games::Board::Piece->new(id => 'KR')->move(to => [7,7]);

DESCRIPTION

This module provides a base class for representing a board made up of spaces on a right-angled grid.

METHODS

new(size => $size)

This method constructs a new game board and returns it. As constructed it has no spaces or pieces on it. The size argument may be an integer, to produce a square board, or an arrayref containing two integers, to produce a rectangular board.

init

This method sets up the spaces on the board.

size
id2index($id)

This method returns the grid location of an identified space, in the format [$x, $y]. It isn't implemented in Games::Board::Grid, and will croak if called.

space($id)

This method returns the space with the given $id. If no space with that id exists, undef is returned.

add_space(%param)

This method, provided by Games::Board, will croak immediately if called.

Games::Board::Grid::Space

The spaces on a grid board are blessed into this class. It acts like a Games::Board::Space object, but directions are given as arrayrefs with x- and y-offsets. For example, a knight's move might be represented as:

$board->space([1,0])->dir([2,1]);

TODO

Lots. First up: write a TODO list.

AUTHORS

Ricardo SIGNES <rjbs@cpan.org>

COPYRIGHT

Copyright 2003-2004 by Ricardo Signes <rjbs@cpan.org>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html