本文整理汇总了C#中Square.Successor方法的典型用法代码示例。如果您正苦于以下问题:C# Square.Successor方法的具体用法?C# Square.Successor怎么用?C# Square.Successor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Square
的用法示例。
在下文中一共展示了Square.Successor方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FlipBetween
private void FlipBetween(Square start, Square end, Direction direction)
{
while (true)
{
start = start.Successor(direction);
if (start.Row == end.Row && start.Col == end.Col) break;
_squares[start.Row, start.Col] = _squares[start.Row, start.Col].Opponent();
}
}
示例2: IsMove
private bool IsMove(Disc toMove, Square move)
{
if (_squares[move.Row, move.Col] != Disc.None) return false;
Disc opponent = toMove.Opponent();
for (Direction dir = 0; dir <= Direction.NorthWest; dir++)
{
Square s2 = move.Successor(dir);
if (s2 != null && _squares[s2.Row, s2.Col] == opponent)
do
{
s2 = s2.Successor(dir);
if (s2 != null && _squares[s2.Row, s2.Col] == toMove) return true;
} while (s2 != null && _squares[s2.Row, s2.Col] == opponent);
}
return false;
}
示例3: MakeMove
public void MakeMove(Disc playerToMove, Square move)
{
if (playerToMove == Disc.None) throw new InvalidEnumArgumentException("playerToMove");
_squaresRemaining--;
//clear cached counts
_blackDiscs = -1;
_whiteDiscs = -1;
//place the disc
_squares[move.Row, move.Col] = playerToMove;
Disc opponent = playerToMove.Opponent();
//scan each direction
for (Direction dir = 0; dir <= Direction.NorthWest; dir++)
{
Square cursor = move.Successor(dir);
if (cursor != null && _squares[cursor.Row, cursor.Col] == opponent)
do
{
cursor = cursor.Successor(dir);
if (cursor != null && _squares[cursor.Row, cursor.Col] == playerToMove)
{
FlipBetween(move, cursor, dir);
break;
}
} while (cursor != null && _squares[cursor.Row, cursor.Col] == opponent);
}
}