public override async void OnNavigatedTo(NavigationContext navigationContext) { base.OnNavigatedTo(navigationContext); var latestNetwork = await _accessService.GetLatestNetwork(); _networkGeneration = latestNetwork.Generation; _blackPlayer = EvolutionService.GetPlayer(latestNetwork.Network); ChangeTurn(); }
private static void CalculateFitness(ref NeuralNetwork individual1, ref NeuralNetwork individual2) { var player1 = new NeuralNetworkPlayer(individual1); var player2 = new NeuralNetworkPlayer(individual2); var game = new Game(player1, player2); if (game.Draw) { individual1.Fitness -= 10; individual2.Fitness -= 10; } else { ((NeuralNetworkPlayer)game.Winner).Network.Fitness += game.PlayerPeaces(game.Winner) + (game.PlayerQueens(game.Winner) * 2) + 10; ((NeuralNetworkPlayer)game.Loser).Network.Fitness -= 10; } }
public Player ClonePlayer(Player player) { if (player.GetType() == typeof(HumanPlayer)) { HumanPlayer copy = new HumanPlayer(player); return(copy); } else if (player.GetType() == typeof(RandomPlayer)) { RandomPlayer copy = new RandomPlayer(player); return(copy); } else if (player.GetType() == typeof(MonteCarloPlayer)) { MonteCarloPlayer copy = new MonteCarloPlayer(player); return(copy); } else if (player.GetType() == typeof(MonteCarloUpgradePlayer)) { MonteCarloUpgradePlayer copy = new MonteCarloUpgradePlayer(player); return(copy); } else if (player.GetType() == typeof(DynamicGreedyPlayer)) { DynamicGreedyPlayer copy = new DynamicGreedyPlayer(player); return(copy); } else if (player.GetType() == typeof(NeuralNetworkPlayer)) { NeuralNetworkPlayer copy = new NeuralNetworkPlayer(player); return(copy); } else { return(null); } }
public DemoViewModel(IAccessService accessService, INotificationService notificationService) { _accessService = accessService; _notificationService = notificationService; _timer = new Timer(3000) { AutoReset = true }; _timer.Elapsed += (sender, args) => ChangeTurn(); BindingOperations.EnableCollectionSynchronization(Board, new object()); StartGameCommand = new DelegateCommand(async() => { var whiteNetwork = await _accessService.GetByGeneration(WhiteGeneration); var blackNetwork = await _accessService.GetByGeneration(BlackGeneration); _whitePlayer = EvolutionService.GetPlayer(whiteNetwork.Network); _blackPlayer = EvolutionService.GetPlayer(blackNetwork.Network); Reset(); _timer.Start(); }); }