Why not adopt me?
NAME
Games::AlphaBeta::Position - base Position class for use with Games::AlphaBeta
SYNOPSIS
package My::GamePos;
use base Games::AlphaBeta::Position;
sub apply { ... }
sub endpos { ... }
sub evaluate { ... }
sub findmoves { ... }
package main;
my $pos = My::GamePos->new;
my $game = Games::AlphaBeta->new($pos);
DESCRIPTION
Games::AlphaBeta::Position is a base class for position-classes that can be used with Games::AlphaBeta. It inherits most of its methods from Games::Sequential::Position; make sure you read its documentation.
This class is provided for convenience. You don't need this class in order to use Games::AlphaBeta
. It is, however, also possible to make use of this class on its own.
MISSING METHODS
Modules inheriting this class must implement at least these three methods (in addition to apply()
which is required by Games::Sequential::Position): endpos()
, evaluate()
& findmoves()
. If you chose to not use this class, you must also implement a copy()
method which makes a deep copy of the object.
Here's a quick description of how the missing methods must work:
- findmoves()
-
Return an array of all moves possible for the current player at the current position. Don't forget to include null moves if the player is allowed to pass.
- endpos()
-
True if the position is an ending position, i.e. either a draw or a win for one of the players.
- evaluate()
-
Return the "fitness" value for the current player at the current position.
METHODS
The following methods are provided by this class.
- _init [@list]
-
Internal method.
Make sure the missing methods are implemented. You probably want to override this though. You might want to call
$self-
SUPER::_init(@_)> from within the overriding method.
SEE ALSO
The author's website, describing this and other projects: http://brautaset.org/projects/
AUTHOR
Stig Brautaset, <stig@brautaset.org>
COPYRIGHT AND LICENCE
Copyright (C) 2004 by Stig Brautaset
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available.