The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Games::Board - a parent class for board games

VERSION

version 1.013

SYNOPSIS

  use Games::Board;

  my $board = Games::Board->new;

  $board->add_space(
    id  => 'go',
    dir => { next => 'mediterranean', prev => 'boardwalk' },
    cost => undef
  );

  my $tophat = Games::Board::Piece->new(id => 'tophat')->move(to => 'go');

DESCRIPTION

This module provides a base class for representing board games.

METHODS

new

This method constructs a new game board and returns it. As constructed it has no spaces or pieces on it.

space

  my $space = $board->space($id);

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

add_space

  my $space = $board->add_space(%args);

This method adds a space to the board. It is passed a hash of attributes to use in creating a Games::Board::Space object. The object is created by calling the constructor on the class whose name is returned by the spaceclass method. This class must inherit from Games::Board::Space.

piececlass

This method returns the class used for pieces on this board.

spaceclass

This method returns the class used for spaces on this board.

add_piece

  my $piece = $board->add_piece(%args)

This method adds a piece to the board. It is passed a hash of attributes to use in creating a Games::Board::Piece object. The object is created by calling the constructor on the class whose name is returned by the piececlass method. This class must inherit from Games::Board::Piece.

AUTHOR

Ricardo SIGNES <rjbs@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2003 by Ricardo SIGNES.

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