public GameRunnerResults RunGames(int gamesToPlay, BasePacman controller, int RandomSeed = 0, List <double> gameParameters = null) { grr = new GameRunnerResults(); gs = gameParameters == null ? new GameState(RandomSeed) : new GameState(gameParameters, RandomSeed); gs.GameOver += new EventHandler(GameOverHandler); gs.StartPlay(); // Turn off the logging if (controller.GetType() == typeof(LucPac)) { LucPac.REMAIN_QUIET = true; } if (controller.GetType() == typeof(LucPacScripted)) { LucPacScripted.REMAIN_QUIET = true; } gs.Controller = controller; Stopwatch watch = new Stopwatch(); int percentage = -1; int lastUpdate = 0; watch.Start(); while (grr.gamesPlayed < gamesToPlay) { int newPercentage = (int)Math.Floor(((float)grr.gamesPlayed / gamesToPlay) * 100); if (newPercentage != percentage || grr.gamesPlayed - lastUpdate >= 100) { lastUpdate = grr.gamesPlayed; percentage = newPercentage; } // update gamestate Direction direction = controller.Think(gs); gs.Pacman.SetDirection(direction); // update game gs.Update(); } watch.Stop(); // shut down controller controller.SimulationFinished(); return(grr); }
public GameRunnerResults RunGamesOnline(string HostName, int gamesToPlay, string controller, int RandomSeed = 0, List <double> gameParameters = null) { var grr2 = new GameRunnerResults(); RPCData sendData = new RPCData(); MapData md = new MapData(gameParameters); sendData.MapData = md; sendData.GamesToPlay = gamesToPlay; sendData.AIToUse = controller; sendData.RandomSeed = RandomSeed; var Results = GetRemoteGameResults(sendData, HostName); grr2.scores = new List <double>(); if (gamesToPlay > 0) { //foreach (var Results in RunResults) { if (Results != null) { var lines = Results.Split('\n'); foreach (var line in lines) { if (line.Length > 1) { var result = line.Split(','); int Ghosts = int.Parse(result[0]); int Pills = int.Parse(result[1]); int Score = int.Parse(result[2]); grr2.totalGhostsEaten += Ghosts; grr2.pillsEatenTotal += Pills; //grr.TotalGames[Level]++; grr2.totalScore += Score; grr2.scores.Add(Score); } } } } } grr2.gamesPlayed = gamesToPlay; return(grr2); }