Gene Boggs > Game-Battleship-0.0503 > Game::Battleship::Grid

Download:
Game-Battleship-0.0503.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.0302   Source  

NAME ^

Game::Battleship::Grid - A Battleship grid class

SYNOPSIS ^

  use Game::Battleship::Grid;
  my $grid = Game::Battleship::Grid->new(
      fleet => \@fleet,
      dimension => [$width, $height],
  );

DESCRIPTION ^

A Game::Battleship::Grid object represents a Battleship playing surface complete with fleet position references and line intersection collision detection.

PUBLIC METHODS ^

new %ARGUMENTS

PRIVATE FUNCTIONS ^

_tail_coordinates @COORDINATES, $SPAN
  ($orientation, $x1, $y1) = _tail_coordinates($x0, $y0, $span);

Return a vector for the craft. That is, hand back the vertical or horizontal line segment orientation and the tail coordinates based on the head coordinates and the length of the segment (i.e. the craft).

_segment_intersection @COORDINATES
  $intersect = _segment_intersection(
      p_x0, p_y0,  p_x1, p_y1,
      q_x0, q_y0,  q_x1, q_y1
  );

Return zero if there is no intersection (or touching or overlap).

Each pair of values define a coordinate and each pair of coordinates define a line segment.

TO DO ^

Allow diagonal craft placement.

Allow placement restriction rules (e.g. not on edges, not adjacent, etc.) as an arrayref of boundary equations or regular expressions.

Allow some type of interactive craft re-positioning.

Allow > 2D playing spaces.

SEE ALSO ^

Game::Battleship, Game::Battleship::Craft

Segment intersection:

http://www.meca.ucl.ac.be/~wu/FSA2716/Exercise1.htm

AUTHOR ^

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE ^

See Game::Battleship.

syntax highlighting: