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


C# Board.IsCheckMate方法代码示例

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


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

示例1: TestCheckMateNeverTwoRooks

        public void TestCheckMateNeverTwoRooks()
        {
            var b = new Board();
            b.PlayerTurn = Color.Black;
            b.State[6] = Colors.Val(Piece.Rook, Color.White);
            b.State[7] = Colors.Val(Piece.Rook, Color.White);
            b.State[8 * 6 + 5] = Colors.Val(Piece.King, Color.Black);

            bool check = b.IsCheckMate();

            Assert.IsFalse(check);
        }
开发者ID:adh2050,项目名称:Chess,代码行数:12,代码来源:TestCheck.cs

示例2: MakeMove

        private PGNMove MakeMove(PGNToken token, Board position)
        {
            var move = token.GetMove(position);

            if (move.Capture && position.State[move.To] == 0 && position.EnPassantTile == 0)
                throw new PGNException("Move is not a capture", token);

            if (move.Color != position.PlayerTurn)
                throw new PGNException("It is not this players turn to move", token);

            if (move.Color != position.GetColor(move.From))
                throw new PGNException("Moving piece is not of the expected color", token);

            if (move.Piece != position.GetPiece(move.From))
                throw new PGNException("Moving piece is not of the expected type", token);

            var ok = position.Move(move.From, move.To, true);

            if (!ok)
                throw new PGNException("Illegal move", token);

            if (move.Promotion != Piece.None)
            {
                ok = position.Promote(move.To, move.Promotion);
                if(!ok)
                    throw new PGNException("Illegal promotion", token);
            }

            if (move.Check && !position.IsChecked(position.PlayerTurn))
                throw new PGNException("Move did not cause a check", token);

            if (move.Mate && !position.IsCheckMate())
                throw new PGNException("Move did not cause a mate", token);

            return move;
        }
开发者ID:adh2050,项目名称:Chess,代码行数:36,代码来源:PGNParser.cs

示例3: TestCheckMateNoTwoRooksOneQueen

        public void TestCheckMateNoTwoRooksOneQueen()
        {
            // should be able to move the queen in front
            var b = new Board();
            b.State[6] = Colors.Val(Piece.Rook, Color.White);
            b.State[7] = Colors.Val(Piece.Rook, Color.White);
            b.State[7*8 + 7] = Colors.Val(Piece.King, Color.Black);
            b.State[6*8 + 0] = Colors.Val(Piece.Queen, Color.Black);
            b.PlayerTurn = Color.Black;

            bool check = b.IsCheckMate();

            Assert.IsFalse(check);
        }
开发者ID:adh2050,项目名称:Chess,代码行数:14,代码来源:TestCheck.cs


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