本文整理汇总了C#中Wall.getOpposite方法的典型用法代码示例。如果您正苦于以下问题:C# Wall.getOpposite方法的具体用法?C# Wall.getOpposite怎么用?C# Wall.getOpposite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Wall
的用法示例。
在下文中一共展示了Wall.getOpposite方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: getDoorColour
protected Color getDoorColour(Wall w, Block currentCell)
{
Block.State doorState = Block.State.Unvisited;
if (currentCell.hidden && w.getOpposite(currentCell).hidden)
return Settings.Default.ColorWalls;
if (!Settings.Default.UseFancyDoors) return Settings.Default.ColorDoors;
if (w.getOpposite(currentCell).currentState != currentCell.currentState)
{ // check exit and current states
// use non-current state for when it's next to each other
if (currentCell.currentState == Block.State.Current)
doorState = w.getOpposite(currentCell).currentState;
if (w.getOpposite(currentCell).currentState == Block.State.Current)
doorState = currentCell.currentState;
if (currentCell.currentState == Block.State.Exit)
doorState = w.getOpposite(currentCell).currentState;
if (w.getOpposite(currentCell).currentState == Block.State.Exit)
doorState = currentCell.currentState;
if (!maze.isSolved)
{
if (currentCell.currentState == Block.State.Exit
&& w.getOpposite(currentCell).currentState == Block.State.Current)
doorState = Block.State.Unvisited;
if (currentCell.currentState == Block.State.Current
&& w.getOpposite(currentCell).currentState == Block.State.Exit)
doorState = Block.State.Visited;
}
else
{
if (currentCell.currentState == Block.State.Exit
&& w.getOpposite(currentCell).currentState == Block.State.Current)
doorState = Block.State.Current;
if (currentCell.currentState == Block.State.Current
&& w.getOpposite(currentCell).currentState == Block.State.Exit)
doorState = Block.State.Current;
}
}
else
{ // same state, mark as same colour
doorState = currentCell.currentState;
}
switch (doorState)
{
case Block.State.Unvisited:
return Settings.Default.ColorDoors;
case Block.State.Current:
return Settings.Default.ColorCurrentBlock;
case Block.State.Visited:
return Settings.Default.ColorVisitedBlock;
case Block.State.Exit:
return Settings.Default.ColorExitBlock;
default:
throw new ArgumentOutOfRangeException();
}
}