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, }); }
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; } }