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


C# Square.Successor方法代码示例

本文整理汇总了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();
     }
 }
开发者ID:rofr,项目名称:othello-net,代码行数:9,代码来源:Board.cs

示例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;
        }
开发者ID:rofr,项目名称:othello-net,代码行数:17,代码来源:Board.cs

示例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);
            }
        }
开发者ID:rofr,项目名称:othello-net,代码行数:30,代码来源:Board.cs


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