libcoyotl - A Library of C++ Tools

Created by Scott Robert Ladd at Coyote Gulch Productions.


libcoyotl::maze Class Reference

Defines the data structure of a maze. More...

#include <maze.h>

List of all members.

Public Types

Public Member Functions

Static Public Member Functions

Protected Member Functions

Protected Attributes

Friends

Classes


Detailed Description

A maze object contains the definition of a rectangular maze, including dimensions, wall placement, and entrance and exit locations. The maze class does not include intrinsic support for rendering images or genetic algorithms; instead, it contains a generated set of tables used by algorithms implementing those features. As such, the class implements a variety of interrogation functions meant to provide read-only access to internal data.

Member Enumeration Documentation

enum libcoyotl::maze::wall

Enumerator:
WALL_CLOSED  > Wall is open
WALL_SOLID  > Wall is closed

> Walls is solid and can never be open (outside boundary)

enum libcoyotl::maze::direction

Enumerator:
DIR_EAST  > North (up)
DIR_SOUTH  > East (right)
DIR_WEST  > South (down)

> West (left)


Constructor & Destructor Documentation

libcoyotl::maze::maze ( const maze a_source  ) 

Creates a new maze with a state matching an existing maze.

Parameters:
a_source - Source object

virtual libcoyotl::maze::~maze (  )  [virtual]

Destroys a maze objet and releases all of its resources.

libcoyotl::maze::maze ( size_t  a_width,
size_t  a_height 
) [protected]

This constructor sets parameters, and then calls construct to allocate memory and assign default walls.

Parameters:
a_width - Width, in cells, of the new maze
a_height - Height, in cells, of the new maze
See also:
maze::generate


Member Function Documentation

static maze libcoyotl::maze::generate ( size_t  a_width,
size_t  a_height,
architect a_architect 
) [static]

Creates a new maze with the specified dimensions and a floor plan defined by the given architect.

Parameters:
a_width - Width, in cells, of the new maze
a_height - Height, in cells, of the new maze
a_architect - Architect to design a floorplan
Returns:
A new maze object

static maze libcoyotl::maze::load ( std::istream &  a_source  )  [static]

Loads a maze from a binary file created using maze::save.

Parameters:
a_source - Input stream containing the binary maze
Returns:
A new maze object

maze& libcoyotl::maze::operator= ( const maze a_source  ) 

Sets the state of a new maze to match the state of an existing maze.

Parameters:
a_source - Source object

void libcoyotl::maze::save ( std::ostream &  a_receiver  ) 

Saves a maze to an output stream in binary format. This stream can later be used to reconstitute the maze via the load named constructor.

Parameters:
a_receiver - Output stream to hold the binary maze object

size_t libcoyotl::maze::get_width (  )  const [inline]

Returns the width of a maze.

Returns:
Width of the maze

size_t libcoyotl::maze::get_height (  )  const [inline]

Returns the height of a maze.

Returns:
Height of the maze

position libcoyotl::maze::get_entrance_cell_position (  )  const [inline]

Returns the position of the entrance cell for a maze.

Returns:
Coordinates of the entrance cell of the maze

position libcoyotl::maze::get_exit_cell_position (  )  const [inline]

Returns the position of the exit cell for a maze.

Returns:
Coordinates of the exit cell of the maze

cell libcoyotl::maze::get_cell ( size_t  a_col,
size_t  a_row 
) const

Returns data for a specific cell in a maze.

Parameters:
a_col - Column of the requested cell
a_row - Row of the requested cell
Returns:
Cell data

void libcoyotl::maze::construct (  )  [protected]

This constructor creates the raw maze, with all walls solid or closed. It is used by the named constructor generate

void libcoyotl::maze::release (  )  [protected]

Releases resources allocated to a maze.

void libcoyotl::maze::deep_copy ( const maze a_source  )  [protected]

Performs a deep copy of one maze to another.

Parameters:
a_source - Source object

void libcoyotl::maze::read ( std::istream &  a_source  )  [protected]

Read a maze's data from a binary stream.

Parameters:
a_source - Input stream containing the binary maze


The documentation for this class was generated from the following file:

© 1996-2005 Scott Robert Ladd. All rights reserved.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.