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

NAME

Games::Battleship::Craft - A Battleship craft class

SYNOPSIS

  use Games::Battleship::Craft;

  my $craft = Games::Battleship::Craft->new(
      id => 'T',
      name => 'tug boat',
      points => 1,
  )

  $points_remaining = $craft->hit;

DESCRIPTION

A Games::Battleship::Craft object represents the profile of a Battleship

PUBLIC METHODS

new %ARGUMENTS
  • id => $STRING

    A scalar identifier to use to indicate position on the grid. If one is not provided, the uppercased first name character will be used by default.

    Currently, it is required that this be a single uppercase letter (the first letter of the craft name, probably), since a hit will be indicated by "lowercasing" this mark on a player grid.

  • name => $STRING

    A required attribute provided to give the craft a name.

  • points => $NUMBER

    An attribute used to define the line segment span on the playing grid.

  • position => [$X, $Y]

    The position of the craft bow ("nose") on the grid.

    Currently, the craft is assumed to have a horizontal or vertical alignment. Soon there will be diagonal positioning...

hit
  $points_remaining = $craft->hit;

Increment the craft's hit attribute value and return what's left of the craft (total point value minus the number of hits).

TO DO

Have different numbers of different weapons.

Allow a craft to have a width.

Allow diagonal positions too. Why not?

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

See Games::Battleship.