Пример #1
0
        public static bool evaluateNeighboringCoordinates(Board board, HexagonalCoordinate coord)
        {
            if (!evaluateCoordinate(board, coord))
            {
                return(false);
            }

            foreach (var neighboringCoord in coord.getNeighbors())
            {
                if (Board.isOnBoard(neighboringCoord))
                {
                    if (!evaluateCoordinate(board, neighboringCoord))
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
Пример #2
0
        /**
         * Returns true if the coordinate meets all constraints.
         */
        public static bool evaluateCoordinate(Board board, HexagonalCoordinate coord)
        {
            Tile?current = board.getTile(coord);

            if (current == null)
            {
                return(true);
            }
            else if (current == Tile.DESERT)
            {
                return(true);
            }
            else if (board.isOkay(coord))
            {
                return(true);
            }

            foreach (HexagonalCoordinate neighborCoord in coord.getNeighbors())
            {
                if (Board.isOnBoard(neighborCoord))
                {
                    Tile?tile = board.getTile(neighborCoord);
                    if (tile == null)
                    {
                        return(true);
                    }
                    else if (tile == current)
                    {
                        board.markOkay(neighborCoord);
                        return(true);
                    }
                }
            }

            return(false);
        }