Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private ValuedMove AlphaBetaMove(GameState state, AlphaBetaTreeNode node, int alpha, int beta)
- {
- if (state.IsFinal)
- return state.Leaf(Evaluate(state, false), node);
- ValuedMove curr = new ValuedMove(Int32.MinValue);
- foreach (var pos in state.Grid.FreeGrid)
- {
- AlphaBetaTreeNode newNode = node == null ? null : node.AddChild("Put in " + pos);
- ValuedMove minCheck = AlphaBetaPick(state.Move(pos), newNode, alpha, beta);
- curr.CheckSmaller(minCheck, pos);
- if (curr.BetaPrune(beta, node)) return curr;
- if (curr.Value == 1000) return curr;
- alpha = Math.Max(alpha, curr.Value);
- }
- if (node != null) node.Value = curr.Value.ToString();
- return curr;
- }
Add Comment
Please, Sign In to add comment