The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Games::Bingo::ColumnCollection - a collection class for holding columns

SYNOPSIS

my $col = Games::Bingo::ColumnCollection-E<gt>new();

my $c = Games::Bingo::Column-E<gt>new(0, [1, 2, 3, 4, 5, 6, 7, 8, 9]);

$col-E<gt>add_column($c1);

my $d = $col-E<gt>get_column(1);

my $e = $col-E<gt>get_random_column();

DESCRIPTION

The ColumnCollection is used when building the bingo cards and is a temporary data structure for holding object of the class Column.

The class is an encapsulated array, which is 1 indexed.

METHODS

new

The constructor blesses and array and returns.

divide

The divided method has nothing as such to do with the class apart from it is a helper method, which is used to taking a list of numbers (1-90 expected, see Games::Bingo).

It then divided this list into 9 separate arrays of the following constallations:

  • 1-9

  • 10-19

  • 20-29

  • 30-39

  • 40-49

  • 50-59

  • 60-69

  • 70-79

  • 80-90

From these arrays the Columns are built and the column collection is slowly populated, when done the column collection is returned.

add_column

This is a push like method, is can be used to add an additional to the collection.

remove_column

The method can remove a column specified by its index, the argument specifies this index.

get_column

The method returns a column specified by its index, the argument to this method is the index.

The second argument is an indicator of whether the returned collection should be removed from the list, 1 for removed and 0 for not removing, the latter is the default.

get_random_column

This method returns a random columns, the optional parameter can be used to indicate whether the column should be removed from the list. 1 indicates a removed and nothing (the default) that nothing should be done.

reset_columns

The method uses the fact that the class contains Columns and a bit of polymorphy, so this method can be used to set the status of all Columns contained in the class. ' The parameter is the status which you want to set, either 1 or 0.

count_columns

Returns the number of columns in G::B::Column object.

SEE ALSO

Games::Bingo
Games::Bingo::Column

TODO

The TODO file contains a complete list for the whole Games::Bingo project.

ACKNOWLEDGEMENTS

My friend Allan helped me out with some of the algoritmic stuff and was in when this class was thought up.

AUTHOR

Jonas B. Nielsen, (jonasbn) - <jonasbn@cpan.org>

COPYRIGHT

Games-Bingo is (C) by Jonas B. Nielsen, (jonasbn) 2003-2015

Games-Bingo is released under the artistic license 2.0