NAME

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

VERSION

Version 0.01

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

$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->to_string()

Stringifies the board into the Freecell Solver solution display notation.

AUTHOR

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

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, all rights reserved.

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