def __init__(self, edgeLength): self.radius = edgeLength - 1 self.diameter = 2 * self.radius self.numTilesHigh = self.diameter + 1 self.numTilesWide = self.diameter + 1 print "Creating board", self.numTilesWide, "tiles wide and", self.numTilesHigh, "tiles high" # Initialise the tiles with their position in the axial coordinate system used to define locations on the board self.tilePositions = HexCoordSys.getPositionsDefinedByHexWithEdge(edgeLength) self.numTiles = len(self.tilePositions) print "Created a board containing", self.numTiles, "tiles" self.borders = defaultdict(list) for tilePosition in self.tilePositions: for key in HexCoordSys.borders.keys(): if HexCoordSys.borders[key](tilePosition, self.tilePositions): self.borders[key].append(tilePosition) self.center = TilePosition(row=0, col=0) self.spokes = defaultdict(list) for key in HexCoordSys.edgeDirections.keys(): curTile = self.center while self.isOnBoard(curTile): self.spokes[key].append(curTile) curTile = HexCoordSys.edgeDirections[key](curTile)