Reimplement MiniMax