Example #1
0
        public static void ResetAppModel()
        {
            IEventAggregator oldAggregator = _eventAggregator;
            _eventAggregator = null;
            _slimCore = null;

            if (_network != null)
            {
                _network.Dispose();
            }

            _network = null;
            if (_game != null)
                _game.Dispose();
            _game = null;
            _AI = null;

            //Create new instances of these things by accessing them
            EventAggregator.GetHashCode();
            SlimCore.GetHashCode();
            XNAGame.GetHashCode();
            AI.GetHashCode();

            oldAggregator.Publish(new ResetMessage() { EventAggregator = _eventAggregator, });
        }
Example #2
0
        public bool Defeats(Gene opponent)
        {
            try
            {
                int moveCount = 0;
                CreeperColor turn = CreeperColor.Ice;
                CreeperBoard board = new CreeperBoard();
                CreeperAI.AI thisAI = new CreeperAI.AI(_weights);
                CreeperAI.AI opponentAI = new CreeperAI.AI(opponent._weights);

                while (!board.IsFinished(turn))
                {
                    moveCount++;
                    if (moveCount > 70)
                    {
                        Console.WriteLine("Move Loop");
                        return false;
                    }
                    turn = turn.Opposite();

                    if (turn == CreeperColor.Fire)
                    {
                        board.Move(thisAI.GetMove(board, turn));
                    }
                    else
                    {
                        board.Move(opponentAI.GetMove(board, turn));
                    }
                }

                return turn == CreeperColor.Fire && board.GetGameState(turn) == CreeperGameState.Complete;
            }
            catch (Exception)
            {
                Console.WriteLine("Exception");
                return false;
            }
        }