Games::Sequential - sequential games framework with OO interface


Games-AlphaBeta documentation  | view source Contained in the Games-AlphaBeta distribution.

Index


NAME

Top

Games::Sequential - sequential games framework with OO interface

SYNOPSIS

Top

    package My::GamePos;
    use base qw(Games::Sequential::Position);

    sub apply { ... }

    package main;
    use My::GamePos;
    use Games::Sequential;

    my $pos = My::GamePos->new;
    my $game = Games::Sequential->new($pos);

    $game->debug(1);
    $game->move($mv);
    $game->undo;




DESCRIPTION

Top

Games::Sequential is a framework for producing sequential games. Among other things it keeps track of the sequence of moves, and provides an unlimited undo() mechanism. It also has methods to clone() or take a snapshot() of a game.

Users must pass an object representing the initial state of the game as the first argument to new(). This object must provide the two methods copy() and apply(). You can use Games::Sequential::Position as a base class, in which case the copy() method will be provided for you. The apply() method must take a move and apply it to the current position, producing the next position in the game.

METHODS

Top

Users must not modify the referred-to values of references returned by any of the below methods.

new $initialpos [@list]

Create and return a new Games::Sequential object. The first argument must be an object representing the initial position of the game. The debug option can also be set here.

_init [@list]

Internal method

Initialize a Games::Sequential object.

debug [$value]

Return current debug level and, if invoked with an argument, set to new value.

peek_pos

Return reference to current position. Use this for drawing the board etc.

peek_move

Return reference to last applied move.

move $move

Apply $move to the current position, keeping track of history. A reference to the new position is returned, or undef on failure.

undo

Undo last move. A reference to the previous position is returned, or undef if there was no more moves to undo.

TODO

Top

Implement the missing methods clone(), snapshot(), save() & resume().

SEE ALSO

Top

The author's website, describing this and other projects: http://brautaset.org/software/

AUTHOR

Top

Stig Brautaset, <stig@brautaset.org>

COPYRIGHT AND LICENCE

Top


Games-AlphaBeta documentation  | view source Contained in the Games-AlphaBeta distribution.