Пример #1
0
        public override async void OnNavigatedTo(NavigationContext navigationContext)
        {
            base.OnNavigatedTo(navigationContext);
            var latestNetwork = await _accessService.GetLatestNetwork();

            _networkGeneration = latestNetwork.Generation;
            _blackPlayer       = EvolutionService.GetPlayer(latestNetwork.Network);
            ChangeTurn();
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
 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();
     });
 }