コード例 #1
0
        public static bool CollisionWithOtherObject(Cordinates cordinate, PlayingMap map, bool leaveDeadBody)
        {
            foreach (var barrier in map.Barriers)
            {
                if (barrier == cordinate)
                {
                    return(true);
                }
            }

            foreach (var food in map.Food.FoodCordinates)
            {
                if (food == cordinate)
                {
                    return(true);
                }
            }

            foreach (var snake in map.Snake)
            {
                if (!snake.IsAlive && !leaveDeadBody)
                {
                    foreach (var coord in snake.Cordinates)
                    {
                        if (coord == cordinate)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
コード例 #2
0
        async Task LocationAsync()
        {
            var locator = CrossGeolocator.Current;

            locator.DesiredAccuracy = 50;
            var myPosition = await locator.GetPositionAsync();

            var location = new Cordinates
            {
                Latitude  = myPosition.Latitude,
                Longitude = myPosition.Longitude
            };

            try
            {
                HttpClient HttpClient = SessionManager.GetHttpClient();
                var        json       = JsonConvert.SerializeObject(location);
                var        content    = new StringContent(json, Encoding.UTF8, "application/json");
                var        url        = SessionManager.GetAPIURL("cordinates");
                var        req        = new HttpRequestMessage(HttpMethod.Post, url)
                {
                    Content = content,
                };
                var response = await HttpClient.PostAsync(url, content);

                if (response != null && response.IsSuccessStatusCode)
                {
                }
            }
            catch (Exception e)
            {
                this.Show("Error", e.Message);
            }
        }
コード例 #3
0
        public void InitiateRover()
        {
            Rover      rover      = null;
            Cordinates cordinates = new Cordinates();

            rover = cordinates.InitRover("5 5");

            // Assert
            Assert.IsNotNull(rover);
        }
コード例 #4
0
        public void RoverPosition()
        {
            Rover      rover      = null;
            Cordinates cordinates = new Cordinates();

            rover = cordinates.InitRover("5 5");
            rover = cordinates.RoverPosition(rover, "2 1 E");

            // Assert
            Assert.IsNotNull(rover);
        }
コード例 #5
0
        public void RoverMovement()
        {
            Rover      rover      = null;
            Cordinates cordinates = new Cordinates();

            rover = cordinates.InitRover("5 5");
            rover = cordinates.RoverPosition(rover, "1 2 N");
            var result = rover.Move("LMLMLMLMM");

            // Assert
            Assert.AreEqual(1, result.GetX());
            Assert.AreEqual(3, result.GetY());
            Assert.AreEqual("N", result.GetDirection());
        }
コード例 #6
0
        private static void CheckOtherSide(PlayingMap map, int xFactor, int yFactor, Cordinates point, ref double minDistance, ref Cordinates nearestFoodCor)
        {
            foreach (var food in map.Food.FoodCordinates)
            {
                double dist = Math.Sqrt(
                    Math.Pow(point.X - (food.X + map.sideSize * xFactor), 2)
                    + Math.Pow(point.Y - (food.Y + map.sideSize * yFactor), 2));

                if (dist < minDistance)
                {
                    minDistance       = dist;
                    nearestFoodCor    = food;
                    nearestFoodCor.X += xFactor * map.sideSize;
                    nearestFoodCor.Y += yFactor * map.sideSize;
                }
            }
        }
コード例 #7
0
    public static void AddCordinates(float x, float y, float z)
    {
        System.DateTime epochStart = new System.DateTime(1970, 1, 1, 0, 0, 0, System.DateTimeKind.Utc);
        float           cur_time   = (float)(System.DateTime.UtcNow - epochStart).TotalSeconds;
        var             cord       = new Cordinates {
            X_Cord    = x,
            Y_Yord    = y,
            Z_Cord    = z,
            Time      = cur_time,
            SessionId = session.SessionId,
            Level     = SceneManager.GetActiveScene().buildIndex
        };
        var ds = new DataService("tempDatabase.db");

        ds.CreateGivenCordinates(cord);
        //Debug.Log("Session ID:"+session.ToString());
    }
コード例 #8
0
        public static MapForNN GetMapFromPoint(Cordinates point, int size, PlayingMap playingMap)
        {
            int xPadding = point.X - size / 2;
            int yPadding = point.Y - size / 2;

            List <MapCoordConverter> coordList = new List <MapCoordConverter>();

            for (int i = 0; i < size; i++)
            {
                for (int j = 0; j < size; j++)
                {
                    int x = xPadding + i;
                    int y = yPadding + j;

                    if (x < 0)
                    {
                        x += playingMap.sideSize;
                    }
                    if (y < 0)
                    {
                        y += playingMap.sideSize;
                    }

                    if (x >= playingMap.sideSize)
                    {
                        x -= playingMap.sideSize;
                    }
                    if (x >= playingMap.sideSize)
                    {
                        x -= playingMap.sideSize;
                    }

                    coordList.Add(new MapCoordConverter()
                    {
                        PMapCoord  = new Cordinates(x, y),
                        NNMapCoord = new Cordinates(i, j)
                    });
                }
            }

            return(CreateMap(size, coordList, playingMap, point));
        }
コード例 #9
0
        private static void FindNearestFood(ref MapForNN map, PlayingMap pMap, Cordinates point)
        {
            Cordinates nearFood = pMap.Food.FoodCordinates[0];
            double     minDist  = Math.Sqrt(
                Math.Pow(point.X - (pMap.Food.FoodCordinates[0].X), 2)
                + Math.Pow(point.Y - (pMap.Food.FoodCordinates[0].Y), 2));;

            for (int xFactor = -1; xFactor <= 1; xFactor++)
            {
                for (int yFactor = -1; yFactor <= 1; yFactor++)
                {
                    CheckOtherSide(pMap, xFactor, yFactor, point, ref minDist, ref nearFood);
                }
            }

            if (point.X < nearFood.X)
            {
                map.NearestFoodHorizontal = SnakePathway.Right;
            }
            else if (point.X > nearFood.X)
            {
                map.NearestFoodHorizontal = SnakePathway.Left;
            }
            else
            {
                map.NearestFoodHorizontal = null;
            }

            if (point.Y < nearFood.Y)
            {
                map.NearestFoodVertical = SnakePathway.Down;
            }
            else if (point.Y > nearFood.Y)
            {
                map.NearestFoodVertical = SnakePathway.Up;
            }
            else
            {
                map.NearestFoodVertical = null;
            }
        }
コード例 #10
0
        private static MapForNN CreateMap(int size, List <MapCoordConverter> coordList, PlayingMap pMap, Cordinates point)
        {
            var map = new MapForNN(size);

            foreach (var c in pMap.Barriers)
            {
                var coord = coordList.Where(x => x.PMapCoord == c).ToArray();
                if (coord.Length > 0)
                {
                    map.Map[coord[0].NNMapCoord.X, coord[0].NNMapCoord.Y] = ObjectTypes.Barrier;
                }
            }
            foreach (var c in pMap.Food.FoodCordinates)
            {
                var coord = coordList.Where(x => x.PMapCoord == c).ToArray();
                if (coord.Length > 0)
                {
                    map.Map[coord[0].NNMapCoord.X, coord[0].NNMapCoord.Y] = ObjectTypes.Food;
                }
            }
            foreach (var snake in pMap.Snake)
            {
                foreach (var c in snake.Cordinates)
                {
                    var coord = coordList.Where(x => x.PMapCoord == c).ToArray();
                    if (coord.Length > 0)
                    {
                        map.Map[coord[0].NNMapCoord.X, coord[0].NNMapCoord.Y] = ObjectTypes.Snake;
                    }
                }
            }

            FindNearestFood(ref map, pMap, point);
            return(map);
        }
コード例 #11
0
 /// <summary>
 /// Копи конструктор
 /// Copy constructor
 /// </summary>
 /// <param name="X">Кордината Х/X coordinate</param>
 /// <param name="Y">Кордината Y/Y coordinate</param>
 public Cordinates(Cordinates cordinates)
 {
     this.X = cordinates.X;
     this.Y = cordinates.Y;
 }
コード例 #12
0
 public override string ToString() => $"Location {Cordinates.ToString()}, Walkable {Walkable.ToString()}";
コード例 #13
0
        public void InsertBarriers(PlayingMap map)
        {
            int length;

            switch (BarriersType)
            {
            case GameLogicsAttributes.Barriers.None:
                break;

            case GameLogicsAttributes.Barriers.Angles:
                length = map.sideSize / 4;
                for (int i = 0; i < length; i++)
                {
                    map.Barriers.Add(new Cordinates(i, 0));
                    map.Barriers.Add(new Cordinates(map.sideSize - 1 - i, 0));
                    map.Barriers.Add(new Cordinates(i, map.sideSize - 1));
                    map.Barriers.Add(new Cordinates(map.sideSize - 1 - i, map.sideSize - 1));
                    if (i != 0)
                    {
                        map.Barriers.Add(new Cordinates(0, i));
                        map.Barriers.Add(new Cordinates(0, map.sideSize - 1 - i));
                        map.Barriers.Add(new Cordinates(map.sideSize - 1, i));
                        map.Barriers.Add(new Cordinates(map.sideSize - 1, map.sideSize - 1 - i));
                    }
                }
                break;

            case GameLogicsAttributes.Barriers.LinesHorizontal:
                for (int i = UnityEngine.Random.Range(0, 5); i < map.sideSize; i += UnityEngine.Random.Range(3, 10))
                {
                    length = UnityEngine.Random.Range(1, map.sideSize);
                    int startX = UnityEngine.Random.Range(0, map.sideSize - length);
                    for (int j = 0; j < length; j++)
                    {
                        if (!CollisionWithFood(new Cordinates(startX + j, i), map) && !CollisionWithSnakes(new Cordinates(startX + j, i), map))
                        {
                            map.Barriers.Add(new Cordinates(startX + j, i));
                        }
                    }
                }
                break;

            case GameLogicsAttributes.Barriers.LinesVertical:
                for (int i = UnityEngine.Random.Range(0, 5); i < map.sideSize; i += UnityEngine.Random.Range(3, 10))
                {
                    length = UnityEngine.Random.Range(1, map.sideSize);
                    int startY = UnityEngine.Random.Range(0, map.sideSize - length);
                    for (int j = 0; j < length; j++)
                    {
                        if (!CollisionWithFood(new Cordinates(i, startY + j), map) && !CollisionWithSnakes(new Cordinates(i, startY + j), map))
                        {
                            map.Barriers.Add(new Cordinates(i, startY + j));
                        }
                    }
                }
                break;

            case GameLogicsAttributes.Barriers.Random:
                int count = (int)(Math.Pow(map.sideSize, 2) * UnityEngine.Random.Range(5, 10) / 100);
                while (map.Barriers.Count < count)
                {
                    var cor = new Cordinates(UnityEngine.Random.Range(0, map.Barriers.Count), UnityEngine.Random.Range(0, map.Barriers.Count));
                    if (!CollisionWithSnakes(cor, map))
                    {
                        map.Barriers.Add(cor);
                    }
                }
                break;

            case GameLogicsAttributes.Barriers.Solid:
                for (int i = 0; i < map.sideSize; i++)
                {
                    for (int j = 0; j < map.sideSize; j++)
                    {
                        if (i == 0 || j == 0 || i == map.sideSize - 1 || j == map.sideSize - 1)
                        {
                            map.Barriers.Add(new Cordinates(i, j));
                        }
                    }
                }
                break;
            }
        }
コード例 #14
0
    public static void Main(String[] args)
    {
        Cordinates cords = new Cordinates(10, 2);

        cords.printCordinates();
    }
コード例 #15
0
 public Cordinates CreateGivenCordinates(Cordinates cord)
 {
     _connection.Insert(cord);
     return(cord);
 }