The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

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

VERSION

Version 0.0101

SYNOPSIS

    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 board
    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

$self->set_freecells($freecells)

Sets the freecells' object, which should be a Games::Solitaire::Verify::Freecells object.

$self->add_column($columns)

Adds a new column of cards that should be an Games::Solitaire::Verify::Column object.

$self->set_foundations($foundations);

Sets the foundations to a value. Should be isa Games::Solitaire::Verify::Foundations .

$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.

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

Shlomi Fish, http://www.shlomifish.org/.

BUGS

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

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

    perldoc Games::Solitaire::Verify::Column

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2008 Shlomi Fish.

This program is released under the following license: MIT/X11 ( http://www.opensource.org/licenses/mit-license.php ).