úÎN·Nodes in a game search tree 2Is this a game-terminating node (e.g. checkmate)? &Law: is_terminal n == (children n == []) Heuristic value of node OReturned value must line in the (inclusive) range (minBound + 4, maxBound - 3) 4 Needs to be sensitive to whose turn it is to move. Q I.e. it must return values of the opposite sign if the other player is to move. >Child nodes in the game tree (positions more deeply searched) (Negascout alpha-beta pruning algorithm. >Node_value needs to be sensitive to whose turn it is to move. Q I.e. it must return values of the opposite sign if the other player is to move. State to be evaluated Search this deep (Principal variation, Score) KAlpha-beta pruning with null-window search around every move after a move $ that improves alpha has been found State to be evaluated Search this deep (Principal variation, Score) 'Normal alpha beta pruning (no window). State to be evaluated Search this deep (Principal variation, Score) DPlain negamax (= minimax with negative scores at alternate levels).  No alpha-beta pruning. State to be evaluated Search this deep (Principal variation, Score) (Negascout alpha-beta pruning algorithm. +Minimum score maximising player is assured +Maximum score minimizing player is assured State to be evaluated Search this deep (Principal variation, Score) 2Principle variation search internals (soft fail). &The search continues as long as alpha < pvs < beta. F As soon pvs hits one these bounds the search stops and returns best. 'Normal alpha beta pruning (no window). +Minimum score maximising player is assured +Maximum score minimizing player is assured State to be evaluated Search this deep (Principal variation, Score)       game-tree-0.1.0.0Data.Tree.Game_tree.Game_treeData.Tree.Game_tree.Negascout Game_tree is_terminal node_valuechildren negascoutprincipal_variation_searchalpha_beta_searchnegamax negascout'pvs alpha_beta