Why not adopt me?
NAME
Games::Sequential::Position - base Position class for use with Games::Sequential
SYNOPSIS
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
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
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.
Something like this (sans error checking):
sub apply { my ($self, $move) = @_; ... apply $move, creating next position ... return $self; }
METHODS
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]
-
Internal method.
Initialize an object. This method is called by
new()
, so you do not have to override that. You probably want to override this though. You might want to call$self-
SUPER::_init(@_)> from within the overriding method. - copy
-
Return a deep copy of the object.
- dump
-
Return a string dump (by Data::Dumper) of the current position.
- player [$player]
-
Read and/or set the current player. If argument is given, that will be set to the current player.
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.