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::Card - a helper class for Games::Bingo

SYNOPSIS

use Games::Bingo::Card;

my $b = Games::Bingo-E<gt>new(90);
my $card = Games::Bingo::Card-E<gt>new($b);

my $bingo = Games::Bingo-E<gt>new(90);
$card-E<gt>validate($bingo);

use Games::Bingo::Card;

my $p = Games::Bingo::Card-E<gt>new();
$p-E<gt>populate();

DESCRIPTION

The Games::Bingo::Card class suits the simple purpose of being able to generate bingo cards and validating whether they are valid in during a game where a player indicate victory.

It is also used by Games::Bingo::Print to hold the generated bingo cards before they are printed.

METHODS

new

This method generates an object representing a bingo card.

The constructor, takes no arguments.

populate

This method is the main method of the class. It populates the card objects with a predefined number of randomly picked numbers which can be printed using the Games::Bingo::Print class.

_init

Init uses the function in Games::Bingo::Column and Games::Bingo::ColumnCollection, which are use to generate the necessary random numbers to generate the card and set the them in the necessary columns.

_insert

This is the private method which is used to insert numbers onto the card in the Bingo::Games::Card class.

Populate takes to arguments, the row and the number, it resolves the column using _resolve_column.

_resolve_column

Resolve column is method used to resolve where on the card a specified number should go. It takes a number and returns an integer indicating a column.

_integrity_check

This method is a part of the work-around, which was made in the populate method, it checks whether the populated card holds 12 numbers return a boolean value indicating succes or failure.

validate

This method can validate a bingo card against a game. So it easily can be examined whether a player/card has bingo.

The method takes one argument, the Games::Bingo object of the current game.

This method does not hold the same flaw as the method above though.

_print_card

This is the console version of the _print_card version, which is implemented in Games::Bingo::Print.

It prints the generated card with numbers.

_flush

This method can be used to flush the contents of the Card object.

get_all_numbers

Returns all the numbers contained in the _array attribute as an array.

BUGS

This class contains a bug in populate, which is regarded a design flaw. A work-around have implemented. See the BUGS file.

No other bugs are known at the time of writing.

SEE ALSO

Games::Bingo
Games::Bingo::Bot
Games::Bingo::Column
Games::Bingo::Column::Collection
Games::Bingo::Constants
Games::Bingo::Print

TODO

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

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