本文整理汇总了C#中IMap.CreateWall方法的典型用法代码示例。如果您正苦于以下问题:C# IMap.CreateWall方法的具体用法?C# IMap.CreateWall怎么用?C# IMap.CreateWall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMap
的用法示例。
在下文中一共展示了IMap.CreateWall方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteCommand
protected override void ExecuteCommand(IMap map, DungeonParameters parameters)
{
var sparseFactor = parameters.CellSparseFactor;
var expectedNumberOfRemovedCells =
(int)Math.Ceiling(map.Size * (sparseFactor / 100m)) - 1;
var removedCellsCount = 0;
var nonWalls = map.Where(c => !c.IsWall).ToList();
if (!nonWalls.Any())
{
throw new InvalidOperationException("All cells are walls.");
}
while (removedCellsCount < expectedNumberOfRemovedCells)
{
foreach (var cell in nonWalls.Where(c => c.IsDeadEnd).ToList())
{
if (!cell.IsDeadEnd)
continue;
var emptySide = cell.Sides
.Single(s => s.Value != Side.Wall)
.Key;
map.CreateWall(cell, emptySide);
cell.IsCorridor = false;
nonWalls.Remove(cell);
removedCellsCount++;
}
}
}