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


C# Move.Validate方法代码示例

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


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

示例1: NormalizeMove

        /// <summary>
        /// 与えられた指し手が着手可能か調べ、もし着手可能な場合はそれを正式な表記に変換します。
        /// </summary>
        /// <remarks>
        /// 「正式な表記」にするとは、たとえば不要な「打」を削除したり、
        /// 右や直などの表記を正確なものに修正することです。
        /// </remarks>
        public static Move NormalizeMove(this Board board, Move move)
        {
            if (board == null)
            {
                throw new ArgumentNullException("board");
            }

            if (!board.Validate())
            {
                throw new ArgumentException("board");
            }

            if (move == null)
            {
                throw new ArgumentNullException("move");
            }

            if (!move.Validate())
            {
                throw new ArgumentException("move");
            }

            // 投了などの特殊な指し手は常にさせることにします。
            /*if (move.IsSpecialMove)
            {
                return move;
            }*/

            // 一度、指し手の正規化を行います(打を消したり、左を追加するなど)
            // あり得る指し手が複数ある場合は失敗とします。
            var bmove = board.ConvertMove(move, true);
            if (bmove == null || !board.CanMove(bmove))
            {
                return null;
            }

            // 指し手を表記形式に再度変換します。
            // 移動元の情報は使いません。("65銀(55)"という表記にはしません)
            var newMove = board.ConvertMove(bmove, false);
            if (newMove == null)
            {
                return null;
            }

            // 最後に元の文字列を保存して返します。
            newMove.OriginalText = move.OriginalText;
            return newMove;
        }
开发者ID:leontius,项目名称:Ragnarok,代码行数:55,代码来源:BoardExtension.cs


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