当前位置: 首页>>代码示例>>C#>>正文


C# Sides.Where方法代码示例

本文整理汇总了C#中Sides.Where方法的典型用法代码示例。如果您正苦于以下问题:C# Sides.Where方法的具体用法?C# Sides.Where怎么用?C# Sides.Where使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Sides的用法示例。


在下文中一共展示了Sides.Where方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: StepAlongPath

        private static Int3 StepAlongPath(Room room, Int3 currentLocation, Sides[] possibleSides,
            Directions[] possibleDirections, List<Int3> solutionPath, int i, int minPathLength, ref Directions lastDirection)
        {
            var currentSide = room.roomBuffer[currentLocation.X, currentLocation.Y, currentLocation.Z];

            if (lastDirection != Directions.None && UnityEngine.Random.Range(0, 2) == 0)
            {
                var side = currentSide;
                var direction = lastDirection;

                var desirableSides = possibleSides
                    .Where(s => (s & side) == 0 && s != Sides.None &&
                                (
                                    s == Sides.Left && direction != Directions.Right
                                    || s == Sides.Right && direction != Directions.Left
                                    || s == Sides.Top && direction != Directions.Down
                                    || s == Sides.Bottom && direction != Directions.Up
                                    || s == Sides.Front && direction != Directions.Back
                                    || s == Sides.Rear && direction != Directions.Forward
                                    ));

                if (desirableSides.Any())
                {
                    currentSide = desirableSides.SelectRandom();
                    room.roomBuffer[currentLocation.X, currentLocation.Y, currentLocation.Z] |= currentSide;
                }
            }

            var intendedLocation = DetermineNextLocation(room, currentLocation, possibleDirections, ref lastDirection);

            room.roomBuffer[intendedLocation.X, intendedLocation.Y, intendedLocation.Z] |= currentSide;
            currentLocation = intendedLocation;
            solutionPath.Add(currentLocation);

            return currentLocation;
        }
开发者ID:fatiguedartist,项目名称:Sisyphus,代码行数:36,代码来源:Solver.cs


注:本文中的Sides.Where方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。