Games::Sequential::Position - base Position class for use with Games::Sequential


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

Index


NAME

Top

Games::Sequential::Position - base Position class for use with Games::Sequential

SYNOPSIS

Top

    package My::GamePos;
    use base Games::Sequential::Position;

    sub init { ... }   # setup initial state
    sub apply { ... }

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




DESCRIPTION

Top

Games::Sequential::Position is a base class for position-classes that can be used with Games::Sequential. This class is provided for convenience; you don't need this class to use Games::Sequential. It is also possible to use this class on its own.

PURE VIRTUAL METHODS

Top

Modules inheriting this class must implement at least the apply() method. If you chose to not use this class, you must also implement a copy() method which makes a deep copy of the object.

apply($move)

Accept a move and apply it to the current state producing the next state. Return a reference to itself. Note that this method is responsible for also advancing the state's perception of which player's turn it is.

Something like this (sans error checking):

    sub apply {
        my ($self, $move) = @_;

        ... apply $move, creating next position ...

        return $self;
    }

METHODS

Top

The following methods are provided by this class.

new [@list]

Create and return an object. Any arguments is passed on to the init() method. Return a blessed hash reference.

init [@list]

Initialize an object. By default, this only means setting player 1 to be the current player.

This method is called by new(). You You probably want to override this method and initialise your position there.

copy

Clone a position.

player [$player]

Read and/or set the current player. If argument is given, that will be set to the current player.

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.