コード例 #1
0
        public void ThirdTestMapSolved()
        {
            var result = MapDirections.SearchMap(DataSet.ThirdTestMap);

            Assert.AreEqual(DataSet.ThirdTestLetters, result.Letters);
            Assert.AreEqual(DataSet.ThirdTestPath, result.Path);
        }
コード例 #2
0
        public static Vector2Int DirectionsDelta(this MapDirections direction)
        {
            Vector2Int toReturn = Vector2Int.zero;

            switch (direction)
            {
            case MapDirections.North:
                toReturn = Vector2Int.up;
                break;

            case MapDirections.East:
                toReturn = Vector2Int.right;
                break;

            case MapDirections.South:
                toReturn = Vector2Int.down;

                break;

            case MapDirections.West:
                toReturn = Vector2Int.left;
                break;
            }

            return(toReturn);
        }
コード例 #3
0
        private Vector3 FromNode(PlatformNode p0, MapDirections direction)
        {
            Vector3 off = Vector3.zero;

            switch (direction)
            {
            case MapDirections.North:
                off = new Vector3(0, height, offset);
                break;

            case MapDirections.South:
                off = new Vector3(0, height, -offset);
                break;

            case MapDirections.East:
                off = new Vector3(offset, height, 0);
                break;

            case MapDirections.West:
                off = new Vector3(-offset, height, 0);
                break;
            }

            return(p0.transform.localPosition + off);
        }
コード例 #4
0
        public void Turn(bool ccw)
        {
            onPreRotate.Invoke(ccw);

            MapDirections next = facing.GetNeighbor(ccw);

            facing = next;
            StartCoroutine(RotateLerp(ccw ? -1 : 1));
            // transform.Rotate(Vector3.up, ccw ? -90 : 90);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: stojaget/MapTravel
 private static void ProcessInputMap(string inputString)
 {
     try
     {
         var result = MapDirections.SearchMap(inputString);
         Console.WriteLine($"Letters: {result.Letters}");
         Console.WriteLine($"Path as characters: {result.Path}");
     }
     catch (System.IO.IOException error)
     {
         Console.WriteLine($"Error while reading file:  { error.Message}");
     }
 }
コード例 #6
0
        public void MoveIsValid()
        {
            MapDirections inputMap = new MapDirections(new char[2, 2] {
                { '@', 'c' },
                { 'D', ' ' }
            }, 2, 2, 0, 0);

            var resultChar = inputMap.IsValidMove(MapMove.Up);

            Assert.IsFalse(resultChar);

            resultChar = inputMap.IsValidMove(MapMove.Right);
            Assert.IsTrue(resultChar);
        }
コード例 #7
0
ファイル: WorkerStrategy.cs プロジェクト: dyl10s/AtomicGames
        public static string Explore(IMap map, Unit unit)
        {
            PathFinder finder = new PathFinder(map);

            if (!navDirection.ContainsKey(unit.Id))
            {
                navDirection.Add(unit.Id, AICommand.SerializeDirection(MapDirections.RandomDirection()));
            }

            var results = finder.FindPath(unit.Location, GetPointFromDir(unit.Location, navDirection[unit.Id]));

            if (results == null)
            {
                var rnd = new Random();
                if (navDirection[unit.Id] == "N" || navDirection[unit.Id] == "S")
                {
                    if (rnd.Next(0, 2) == 0)
                    {
                        navDirection[unit.Id] = "E";
                    }
                    else
                    {
                        navDirection[unit.Id] = "W";
                    }
                }
                else if (navDirection[unit.Id] == "E" || navDirection[unit.Id] == "W")
                {
                    if (rnd.Next(0, 2) == 0)
                    {
                        navDirection[unit.Id] = "N";
                    }
                    else
                    {
                        navDirection[unit.Id] = "S";
                    }
                }
            }
            else
            {
                return(Globals.directionToAdjactentPoint(unit.Location, results[0]));
            }

            return("None");
        }
コード例 #8
0
 public void SwitchTo(MapDirections direction)
 {
     if (direction == MapDirections.Living && isDead || direction == MapDirections.Dead && !isDead)
     {
         if (isDead)
         {
             currentMap.deadMap.transform.localPosition   += UnusedOffset;
             currentMap.livingMap.transform.localPosition -= UnusedOffset;
             SetActiveMap(currentMap.livingMap);
         }
         else
         {
             currentMap.deadMap.transform.localPosition   -= UnusedOffset;
             currentMap.livingMap.transform.localPosition += UnusedOffset;
             SetActiveMap(currentMap.deadMap);
         }
         isDead = !isDead;
     }
 }
コード例 #9
0
        public void SearchNextChars()
        {
            MapDirections inputMap = new MapDirections(new char[2, 2] {
                { '@', 'c' },
                { 'D', ' ' }
            }, 2, 2, 0, 0);

            var resultChar = inputMap.SearchNextChar(MapMove.Right);

            Assert.IsNotNull(resultChar);
            Assert.AreEqual('c', resultChar);

            resultChar = inputMap.SearchNextChar(MapMove.Down);
            Assert.IsNotNull(resultChar);
            Assert.AreEqual('D', resultChar);

            resultChar = inputMap.SearchNextChar(MapMove.Up);
            Assert.IsNull(resultChar);
        }
コード例 #10
0
        public int CreateRecipe(RecipeRequest recipeRequest)
        {
            var foodRecipe    = new MapFoodRecipe();
            var foodrecipeMap = foodRecipe.GetMappingToFoodRecipe(recipeRequest);

            _recipeContext.FoodRecipes.Add(foodrecipeMap);

            var map = new MapIngredients(_recipeContext);
            var recipeIngredients = map.MapToRecipeIngredient(recipeRequest);

            if (recipeIngredients != null)
            {
                foodrecipeMap.RecipeIngredients.AddRange(recipeIngredients);
            }
            var mapdirection = new MapDirections();
            var directions   = mapdirection.MapToRecipeDirections(recipeRequest);

            _recipeContext.RecipeDirection.AddRange(directions);

            var mapCuisine    = new MapRecipeCuisine(_recipeContext);
            var recipeCuisine = mapCuisine.MapToRecipeCuisines(recipeRequest);

            _recipeContext.RecipeCuisine.AddRange(recipeCuisine);

            var mapMealtype    = new MapMealType(_recipeContext);
            var recipeMealType = mapMealtype.MapToRecipeCuisines(recipeRequest);

            _recipeContext.RecipeMealType.AddRange(recipeMealType);

            var mapDishType    = new MapDishType(_recipeContext);
            var recipeDishType = mapDishType.MapToRecipeDishType(recipeRequest);

            _recipeContext.RecipeDishType.AddRange(recipeDishType);

            var mapCookingStyle    = new MapCookingStyle(_recipeContext);
            var recipeCookingStyle = mapCookingStyle.MapToRecipeCookingStyles(recipeRequest);

            _recipeContext.RecipeCookingStyle.AddRange(recipeCookingStyle);

            _recipeContext.SaveChanges();
            return(foodrecipeMap.RecipeId);
        }
コード例 #11
0
    public static IEnumerator FlashTransition(MapDirections direction, DarknessOverlay darkness)
    {
        int animation = darkness.StartAnimation();

        darkness.UpdateValues(Vector3.zero, 0.0f, animation);
        darkness.SetColor(Color.white, animation);
        GameObject.FindGameObjectWithTag("GameController").GetComponent <WorldController>().SwitchTo(direction);

        float flashTime = 1.0f;
        float animTime  = 1.0f;

        while (animTime > 0.0f)
        {
            yield return(null);

            darkness.SetColor(new Color(1.0f, 1.0f, 1.0f, animTime * animTime), animation);
            animTime -= Time.deltaTime / flashTime;
        }

        darkness.EndAnimation(animation);
    }
コード例 #12
0
 public static MapDirections Inverse(this MapDirections current)
 {
     return((MapDirections)(((int)current + 2 + 4) % 4));
 }
コード例 #13
0
        public static MapDirections GetNeighbor(this MapDirections current, bool ccw)
        {
            int next = ((int)current + (ccw ? -1 : +1) + 4) % 4;

            return((MapDirections)(next));
        }