예제 #1
0
        static DiscretePoint FindNextClosestDirty(char[,] grid, DiscretePoint bot)
        {
            DiscretePoint dirty = null;
            double        min   = double.MaxValue;

            for (int i = 0; i < grid.GetLength(0); i++)
            {
                for (int j = 0; j < grid.GetLength(1); j++)
                {
                    if (grid[i, j] == 'd')
                    {
                        var distance = GridUtils.Distance(bot.X, bot.Y, j, i);
                        if (distance < min)
                        {
                            min   = distance;
                            dirty = new DiscretePoint(j, i);
                        }
                    }
                }
            }

            return(dirty);
        }
        static DiscretePoint FindFurthestHidden(char[,] grid, DiscretePoint bot)
        {
            DiscretePoint dirty = null;
            double        max   = 0;

            for (int i = 0; i < grid.GetLength(0); i++)
            {
                for (int j = 0; j < grid.GetLength(1); j++)
                {
                    if (grid[i, j] == 'o')
                    {
                        var distance = GridUtils.Distance(bot.X, bot.Y, j, i);
                        if (distance > max)
                        {
                            max   = distance;
                            dirty = new DiscretePoint(j, i);
                        }
                    }
                }
            }

            return(dirty);
        }