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

NAME

Games::Sudoku::Component::Controller::Loader

SYNOPSIS

  require Games::Sudoku::Component::Controller::Loader;

  # Load from text
  my @cells = Games::Sudoku::Component::Controller::Loader->load(<<'EOT');
  4 . . . . 1
  2 1 . . 5 .
  3 5 1 2 6 .
  1 . . . 3 .
  6 . . 5 1 2
  5 . . . 4 6
  EOT

  # Or load from file
  my @cells = Games::Sudoku::Component::Controller::Loader->load(
    filename => 'file.txt',
  );

  # Or load from scalarref
  my $puzzle =<<'EOT';
  4 . . . . 1
  2 1 . . 5 .
  3 5 1 2 6 .
  1 . . . 3 .
  6 . . 5 1 2
  5 . . . 4 6
  EOT

  my @cells = Games::Sudoku::Component::Controller::Loader->load(\$puzzle);

  # When you finished loading, put the loaded data into a table.
  my $table = Games::Sudoku::Component::Table->new;
  foreach my $item (@cells) {
    $table->cell($item->row,$item->col)->value($item->value);
    $table->cell($item->row,$item->col)->lock if $item->value;
  }

DESCRIPTION

This module loads and parses puzzle data from file or scalar (reference) and returns an array of Games::Sudoku::Component::Table::Item objects.

METHODS

load (scalar or scalarref or hash or hashref)

Loads and parses puzzle data from file or scalar (reference), and then, returns an array of Games::Sudoku::Component::Table::Item objects.

Hash options are:

filename (or file, for short)

Filename for puzzle data.

scalar

Scalar of puzzle data.

scalarref

Scalar reference of puzzle data.

DATA STRUCTURE

Column separator is whitespaces. Row separator is line breaks. Other characters are treated as number, i.e. [^1-9] = 0.

SEE ALSO

Games::Sudoku::Component,
Games::Sudoku::Component::Controller,
Games::Sudoku::Component::Table

AUTHOR

Kenichi Ishigaki, <ishigaki@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2006 by Kenichi Ishigaki

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.