Exemple #1
0
        /// <summary>
        /// KifMoveNodeからMoveNodeへ構造を変換します。
        /// </summary>
        public MoveNode ConvertToMoveNode(Board board, KifMoveNode head,
                                          out Exception error)
        {
            var errors = new List <Exception>();
            var root   = new MoveNode
            {
                MoveCount = head.MoveCount,
                Duration  = head.Duration,
                Comment   = head.Comment,
            };

            // これでrootの子要素に指し手ツリーが設定されます。
            ConvertToMoveNode(board, root, errors);

            error = (
                !errors.Any() ? null :
                errors.Count() == 1 ? errors.FirstOrDefault() :
                new AggregateException(errors));

            return(root);
        }
Exemple #2
0
        /// <summary>
        /// KifMoveNodeからMoveNodeへ構造を変換します。
        /// </summary>
        public MoveNode ConvertToMoveNode(Board board, KifMoveNode head,
                                          out Exception error)
        {
            var errors = new List<Exception>();
            var root =  new MoveNode
            {
                MoveCount = head.MoveCount,
                Duration = head.Duration,
                Comment = head.Comment,
            };
            // これでrootの子要素に指し手ツリーが設定されます。
            ConvertToMoveNode(board, root, errors);

            error = (
                !errors.Any() ? null :
                errors.Count() == 1 ? errors.FirstOrDefault() :
                new AggregateException(errors));

            return root;
        }