Example #1
0
        public IEnumerable <GameTreeAction <AiAction> > GetNextActions(GameTreeNodeColor nodeColor)
        {
            var actions = new List <GameTreeAction <AiAction> >();
            var color   = nodeColor.IsRed ? PieceColor.Red : PieceColor.Black;

            foreach (var record in Board.GetChessRecords(color))
            {
                if (Board.MovePieceIsOK(record, color))
                {
                    var aiAction = new AiAction(record);
                    // TODO score 计算
                    var score  = ValueRule.GetValueOfRecord(record);
                    var action = new GameTreeAction <AiAction>(aiAction, score);
                    actions.Add(action);
                }
            }
            actions.Sort((x, y) =>
            {
                return(y.score.CompareTo(x.score));
            });
            return(actions);
        }
 public GameTreeNode(GameTreeNodeData <D, A> data, GameTreeNodeColor color)
 {
     nodeData  = data;
     nodeColor = color;
 }
Example #3
0
 public GameTree(GameTreeNodeData <D, A> rootData, GameTreeNodeColor rootColor)
 {
     this.rootData  = rootData;
     this.rootColor = rootColor;
 }