Games::AlphaBeta::Position - base Position class for use with Games::AlphaBeta
package My::GamePos;
use base qw(Games::AlphaBeta::Position);
sub apply { ... }
sub endpos { ... } # optional
sub evaluate { ... }
sub findmoves { ... }
package main;
my $pos = My::GamePos->new;
my $game = Games::AlphaBeta->new($pos);
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.
The following methods are inherited from Games::Sequential::Position:
- new
- init
- copy
- player
Modules inheriting this class must implement the following methods (in addition
to "apply()" and anything else required by
Games::Sequential::Position): "evaluate()"
& "findmoves()".
- findmoves()
- Return an array of all moves possible for the current player at the
current position. Don't forget to return a null move if the player is
allowed to pass; an empty array returned here denotes an ending position
in the game.
- evaluate()
- Return the "fitness" value for the current player at the current
position.
The following methods are provided by this class.
- endpos
- True if the position is an ending position, i.e. either a draw or a win
for one of the players.
Note: Not all games need this method, so the default
implementation provided by this modules always returns false.
The author's website, describing this and other projects:
<http://brautaset.org/projects/>
Stig Brautaset, <stig@brautaset.org>
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.