Can get 3 moves in advance without crashing at about 7 seconds, 4 moves crashes.
 There is some highlighting bug that I think you might be best suited to solve.
 Im not super in love with my code just yet but I think once we create a proper min max it might work out better.

 Not quite sure what else to say, I changed it to evaluate the nodes only at the deepest depth, no sense in evaluating intermediate nodes I dont think.