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

NAME

Game::Battleship::Craft

VERSION

version 0.0602

SYNOPSIS

  use Game::Battleship::Craft;
  my $craft = Game::Battleship::Craft->new(
      id => 'T',
      name => 'tug boat',
      points => 1,
  )
  my $points_remaining = $craft->hit;

DESCRIPTION

A Game::Battleship::Craft object represents the profile of a Battleship craft.

PUBLIC METHODS

new

  • id => $STRING

    A scalar identifier to use to indicate position on the grid. If one is not provided, the upper-cased 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 "lower-casing" this mark on a player grid.

  • name => $STRING

    A required attribute provided to give the craft a name.

  • points => $INTEGER

    The number of total points that a craft is worth.

  • position => [$X, $Y]

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

  • orient => $BOOLEAN

    The vertical or horizontal orientation of the craft.

    Set this to 0 for vertical and 1 for horizontal.

    If not defined, the craft is randomly oriented on creation.

  • hits => $INTEGER

    Computed

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.

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Gene Boggs.

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