Exemple #1
0
        public List <Coordinates> GetAllNearbyPrey
            (IField field, int predatorX, int predatorY, int predatorFOV, char preyBody)
        {
            var preyCoords = new List <Coordinates>();

            for (int yAxis = predatorY - predatorFOV; yAxis <= predatorY + predatorFOV; yAxis++)
            {
                if (!_validator.CoordinateYIsValid(yAxis))
                {
                    continue;
                }
                for (int xAxis = predatorX - predatorFOV; xAxis <= predatorX + predatorFOV; xAxis++)
                {
                    if (!_validator.CoordinateXIsValid(xAxis))
                    {
                        continue;
                    }
                    if (field.Contents[xAxis, yAxis] == preyBody)
                    {
                        preyCoords.Add(new Coordinates(xAxis, yAxis));
                    }
                }
            }
            return(preyCoords);
        }
        public List <Coordinates> GetAllNearbyPredators(IField field, IHerbivore prey, char predatorBody)
        {
            var predatorsCoords = new List <Coordinates>();

            for (int yAxis = prey.CoordinateY - prey.FieldOfView; yAxis <= prey.CoordinateY + prey.FieldOfView; yAxis++)
            {
                if (!_validator.CoordinateYIsValid(yAxis))
                {
                    continue;
                }
                for (int xAxis = prey.CoordinateX - prey.FieldOfView; xAxis <= prey.CoordinateX + prey.FieldOfView; xAxis++)
                {
                    if (!_validator.CoordinateXIsValid(xAxis))
                    {
                        continue;
                    }
                    if (field.Contents[xAxis, yAxis] == predatorBody)
                    {
                        predatorsCoords.Add(new Coordinates(xAxis, yAxis));
                    }
                }
            }

            if (predatorsCoords.Count == 0)
            {
                return(null);
            }
            return(predatorsCoords);
        }