Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

HexPoints14x14.hpp

Go to the documentation of this file.
00001 
00002 #ifndef HEXPOINT14x14_HPP
00003 #define HEXPOINT14x14_HPP
00004 
00005 /** A location on a Hex board.  A HexPoint's neighbours can be
00006     calculated only when considering what size board the point is in.
00007     See ConstBoard for an example board layout.
00008 
00009     @note The order of these points if very important. There are
00010     several pieces of code that rely on this ordering
00011     (StoneBoard::GetBoardID() is one of them). Change this only if you
00012     know what you are doing!
00013 */
00014 typedef enum
00015 {
00016     /** Dummy point. */
00017     INVALID_POINT = 0,
00018 
00019     /** Point used to denote a resign move by a player. 
00020 
00021         @todo since this is not really a point on a board, should we
00022         create a HexMove class and put this there? */
00023     RESIGN = 1,
00024 
00025     /** Point used to denote a swap move by a player. 
00026 
00027         @todo since this is not really a point on a board, should 
00028         we create a HexMove class and put this there?  */
00029     SWAP_PIECES = 2,
00030 
00031     /** The top edge. */
00032     NORTH = 3,
00033 
00034     /** The right edge. */
00035     EAST  = 4,
00036 
00037     /** The bottom edge. */
00038     SOUTH = 5,
00039 
00040     /** The left edge. */
00041     WEST  = 6,
00042 
00043     /** @name Interior cells. */
00044     // @{
00045 
00046     HEX_CELL_A1, HEX_CELL_B1, HEX_CELL_C1, HEX_CELL_D1, HEX_CELL_E1,
00047     HEX_CELL_F1, HEX_CELL_G1, HEX_CELL_H1, HEX_CELL_I1, HEX_CELL_J1,
00048     HEX_CELL_K1, HEX_CELL_L1, HEX_CELL_M1, HEX_CELL_N1,
00049 
00050     HEX_CELL_A2, HEX_CELL_B2, HEX_CELL_C2, HEX_CELL_D2, HEX_CELL_E2,
00051     HEX_CELL_F2, HEX_CELL_G2, HEX_CELL_H2, HEX_CELL_I2, HEX_CELL_J2,
00052     HEX_CELL_K2, HEX_CELL_L2, HEX_CELL_M2, HEX_CELL_N2,
00053 
00054     HEX_CELL_A3, HEX_CELL_B3, HEX_CELL_C3, HEX_CELL_D3, HEX_CELL_E3,
00055     HEX_CELL_F3, HEX_CELL_G3, HEX_CELL_H3, HEX_CELL_I3, HEX_CELL_J3,
00056     HEX_CELL_K3, HEX_CELL_L3, HEX_CELL_M3, HEX_CELL_N3,
00057 
00058     HEX_CELL_A4, HEX_CELL_B4, HEX_CELL_C4, HEX_CELL_D4, HEX_CELL_E4,
00059     HEX_CELL_F4, HEX_CELL_G4, HEX_CELL_H4, HEX_CELL_I4, HEX_CELL_J4,
00060     HEX_CELL_K4, HEX_CELL_L4, HEX_CELL_M4, HEX_CELL_N4,
00061 
00062     HEX_CELL_A5, HEX_CELL_B5, HEX_CELL_C5, HEX_CELL_D5, HEX_CELL_E5,
00063     HEX_CELL_F5, HEX_CELL_G5, HEX_CELL_H5, HEX_CELL_I5, HEX_CELL_J5,
00064     HEX_CELL_K5, HEX_CELL_L5, HEX_CELL_M5, HEX_CELL_N5,
00065 
00066     HEX_CELL_A6, HEX_CELL_B6, HEX_CELL_C6, HEX_CELL_D6, HEX_CELL_E6,
00067     HEX_CELL_F6, HEX_CELL_G6, HEX_CELL_H6, HEX_CELL_I6, HEX_CELL_J6,
00068     HEX_CELL_K6, HEX_CELL_L6, HEX_CELL_M6, HEX_CELL_N6,
00069 
00070     HEX_CELL_A7, HEX_CELL_B7, HEX_CELL_C7, HEX_CELL_D7, HEX_CELL_E7,
00071     HEX_CELL_F7, HEX_CELL_G7, HEX_CELL_H7, HEX_CELL_I7, HEX_CELL_J7,
00072     HEX_CELL_K7, HEX_CELL_L7, HEX_CELL_M7, HEX_CELL_N7,
00073 
00074     HEX_CELL_A8, HEX_CELL_B8, HEX_CELL_C8, HEX_CELL_D8, HEX_CELL_E8,
00075     HEX_CELL_F8, HEX_CELL_G8, HEX_CELL_H8, HEX_CELL_I8, HEX_CELL_J8,
00076     HEX_CELL_K8, HEX_CELL_L8, HEX_CELL_M8, HEX_CELL_N8,
00077 
00078     HEX_CELL_A9, HEX_CELL_B9, HEX_CELL_C9, HEX_CELL_D9, HEX_CELL_E9,
00079     HEX_CELL_F9, HEX_CELL_G9, HEX_CELL_H9, HEX_CELL_I9, HEX_CELL_J9,
00080     HEX_CELL_K9, HEX_CELL_L9, HEX_CELL_M9, HEX_CELL_N9,
00081 
00082     HEX_CELL_A10, HEX_CELL_B10, HEX_CELL_C10, HEX_CELL_D10, HEX_CELL_E10,
00083     HEX_CELL_F10, HEX_CELL_G10, HEX_CELL_H10, HEX_CELL_I10, HEX_CELL_J10,
00084     HEX_CELL_K10, HEX_CELL_L10, HEX_CELL_M10, HEX_CELL_N10,
00085 
00086     HEX_CELL_A11, HEX_CELL_B11, HEX_CELL_C11, HEX_CELL_D11, HEX_CELL_E11,
00087     HEX_CELL_F11, HEX_CELL_G11, HEX_CELL_H11, HEX_CELL_I11, HEX_CELL_J11,
00088     HEX_CELL_K11, HEX_CELL_L11, HEX_CELL_M11, HEX_CELL_N11,
00089 
00090     HEX_CELL_A12, HEX_CELL_B12, HEX_CELL_C12, HEX_CELL_D12, HEX_CELL_E12,
00091     HEX_CELL_F12, HEX_CELL_G12, HEX_CELL_H12, HEX_CELL_I12, HEX_CELL_J12,
00092     HEX_CELL_K12, HEX_CELL_L12, HEX_CELL_M12, HEX_CELL_N12,
00093 
00094     HEX_CELL_A13, HEX_CELL_B13, HEX_CELL_C13, HEX_CELL_D13, HEX_CELL_E13,
00095     HEX_CELL_F13, HEX_CELL_G13, HEX_CELL_H13, HEX_CELL_I13, HEX_CELL_J13,
00096     HEX_CELL_K13, HEX_CELL_L13, HEX_CELL_M13, HEX_CELL_N13,
00097 
00098     HEX_CELL_A14, HEX_CELL_B14, HEX_CELL_C14, HEX_CELL_D14, HEX_CELL_E14,
00099     HEX_CELL_F14, HEX_CELL_G14, HEX_CELL_H14, HEX_CELL_I14, HEX_CELL_J14,
00100     HEX_CELL_K14, HEX_CELL_L14, HEX_CELL_M14, HEX_CELL_N14,
00101     
00102     // @}
00103     
00104     /** The invalid HexPoint. */
00105     FIRST_INVALID
00106 
00107 } HexPoint;
00108 
00109 //----------------------------------------------------------------------------
00110 
00111 #endif


6 Jan 2011 Doxygen 1.6.3