Games::Solitaire::Verify::State - a class for Solitaire


Games-Solitaire-Verify documentation  | view source Contained in the Games-Solitaire-Verify distribution.

Index


NAME

Top

Games::Solitaire::Verify::State - a class for Solitaire states (or positions) of the entire board.

VERSION

Top

Version 0.0101

SYNOPSIS

Top

    use Games::Solitaire::Verify::State;

    my $board = <<"EOF";
    Foundations: H-6 C-A D-A S-4
    Freecells:  3D  8H  JH  9H
    : 4C 2C 9C 8C QS JD
    : KS QH
    : QC 9S
    : 5C
    : 2D KD TH TC TD 8D 7C 6D 5S 4D 3C
    : 7H JS KH TS KC QD JC
    : 9D 8S
    : 7S 6C 7D 6S 5D
    EOF

    # Initialise a column
    my $board = Games::Solitaire::Verify::State->new(
        {
            string => $board,
            variant => "freecell",
        },
    );

    # Prints 8.
    print $board->num_columns(), "\n";

    # Prints ": QC 9S"
    print $board->get_column(2)->to_string(), "\n"

FUNCTIONS

Top

$state->get_freecell($index)

Returns the contents of the freecell No. $index or undef() if it's empty.

$state->set_freecell($index, $card)

Assigns $card to the contents of the freecell No. $index .

$state->get_foundation_value($suit, $index)

Returns the foundation value for the suit $suit of the foundations No. $index .

$state->increment_foundation_value($suit, $index)

Increments the foundation value for the suit $suit of the foundations No. $index .

$board->num_decks()

Returns the number of decks that the variant has. Useful when querying the foundations.

$board->num_freecells()

Returns the number of Freecells in the board.

$board->num_empty_freecells()

Returns the number of empty Freecells on the board.

$board->num_columns()

The number of columns in the board.

$board->get_column($index)

Gets the column object for column No. $index.

$board->num_empty_columns()

Returns the number of completely unoccupied columns in the board.

$board->clone()

Returns a clone of the board, with all of its element duplicated. =cut

sub clone { my $self = shift;

    my $copy = Games::Solitaire::Verify::State->new(
        {
            variant => $self->_variant(),
        }
    );

    foreach my $idx (0 .. ($self->num_columns()-1))
    {
        $copy->_add_column(
            $self->get_column($idx)->clone()
        );
    }

    $copy->_foundations(
        $self->_foundations()->clone()
    );

    $copy->_freecells(
        $self->_freecells()->clone()
    );

    return $copy;
}

my $verdict = $board->verify_and_perform_move($move);

Performs $move on the board. If successful, returns 0. Else returns a non-zero value. See Games::Solitaire::Verify::Move for more information.

$self->clear_freecell($index)

Clears/empties the freecell at position $pos .

$self->to_string()

Stringifies the board into the Freecell Solver solution display notation.

AUTHOR

Top

Shlomi Fish, <shlomif at iglu.org.il>

BUGS

Top

Please report any bugs or feature requests to bug-games-solitaire-verifysolution-move at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Games-Solitaire-Verify. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Games::Solitaire::Verify::Column




You can also look for information at:

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Games-Solitaire-Verify

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Games-Solitaire-Verify

* CPAN Ratings

http://cpanratings.perl.org/d/Games-Solitaire-Verify

* Search CPAN

http://search.cpan.org/dist/Games-Solitaire-Verify

ACKNOWLEDGEMENTS

Top

COPYRIGHT & LICENSE

Top


Games-Solitaire-Verify documentation  | view source Contained in the Games-Solitaire-Verify distribution.