diff -r 000000000000 -r 45c82a071aca Source/HexGrid.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/HexGrid.h Wed May 28 12:47:10 2008 -0700 @@ -0,0 +1,47 @@ +/* This code is based on Apple's "GeekGameBoard" sample code, version 1.0. + http://developer.apple.com/samplecode/GeekGameBoard/ + Copyright © 2007 Apple Inc. Copyright © 2008 Jens Alfke. All Rights Reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted + provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions + and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials provided + with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRI- + BUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#import "Grid.h" + + +/** Hexagonal grid. + The hexes are oriented with points facing up and down. + The coords are still rectangular, since the hexes line up in straight horizontal rows, + but every odd-numbered row of hexes is offset slightly to the right. */ +@interface HexGrid : Grid +{ + CGFloat _side, _capHeight; + CGPathRef _cellPath; +} + +/** Similar to -addAllCells, but only adds enough cells to create a hexagonal board. */ +- (void) addCellsInHexagon; + +@end + + +@interface Hex : GridCell + +@property (readonly) Hex *nw, *ne, *e, *se, *sw, *w; // Absolute directions (n = increasing row#) +@property (readonly) Hex *fl, *fr, *r, *br, *bl, *l; // Relative to player (upside-down for player 2) + +@end \ No newline at end of file