private static Move createSimulatedEquivalentOfMove(Move originalMove) { Simulation.Game simulatedEquivalentGame = new Simulation.Game(originalMove.Game); Move simulatedEquivalentMove = CreateMatchingMoveForGame(originalMove: originalMove, game: simulatedEquivalentGame); return(simulatedEquivalentMove); }
private Move findBestMove() { Simulation.Game simulatedGame = new Simulation.Game(this.Game); AI simPlayer = (AI)simulatedGame.FindMatchingPlayer(this); TreeNode <Move> movePossibilityTree = simPlayer.buildMovePossibilityTreeInParallel(maximumDepth: 3); Move bestMove = searchMovePossibilityTreeForBestMove(movePossibilityTree); return(bestMove); }