public void SelectTest() { #region Формирование исходных данных var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() { Title = "Game" }; var strike = new Strike() {ErrorDistance = 0}; var strike2 = new Strike() {ErrorDistance = 1}; var strikes = new List<Strike> {strike, strike2}; var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); var settings = new List<PlayerHistorySample> { new PlayerHistorySample { FromStrike = "first", ToStrike = "last", GameTitle = "Game" } }; #endregion var samples = history.SelectSamples(settings); Assert.AreEqual(2, samples.Count()); for (var i = 0; i < strikes.Count; i++) { Assert.AreEqual(strikes[i].ErrorDistance, samples.ElementAt(i)); } }
public void AddGame(Game game, Users users) { _data.Add(new Tuple<Game, Users>(game, users)); }
private Users CreateUsers(Game currentGame) { // Испытуемый var person = GameObjects["person"] as Person; if (person == null) throw new NullReferenceException("person"); var users = new Users(); foreach (var userInfo in currentGame.Users) { var user = new User { CurrentGame = currentGame.Title, UserInfo = userInfo, TotalScore = userInfo.Score }; if (userInfo.UserType == UserTypeEnum.User) { user.Person = person; } users.Add(user); } return users; //GameObjects["users"] = users; }
public void Initialize() { stopwatch.Reset(); startingGameView = GameObjects["startingGameView"] as StartingGameView; if (startingGameView == null) throw new NullReferenceException("startingGameView"); // Текущая игра currentGame = GameObjects["currentGame"] as Game; if (currentGame == null) throw new NullReferenceException("currentGame"); }
public void Initialize() { if (Experiment == null) throw new NullReferenceException(); if (Experiment.Games.Count > 0) { currentGame = Experiment.Games[0]; gameObjects["currentGame"] = currentGame; gameObjects["nextGame"] = GetNextGame(currentGame); gamePlayer.Initialize(); } }
public void Initialize() { strikePlayer = new StrikePlayer(GameObjects); currentGame = GameObjects["currentGame"] as Game; if (currentGame == null) throw new NullReferenceException("currentGame"); currentStrike = currentGame.Strikes[0]; strikeRepeatTime = 0; strikesRepeatTime = 0; if (currentGame.StrikesRepeatTimes < 1) throw new ArgumentException(string.Format("Параметр \"StrikesRepeatTimes\" игры меньше 1, игра \"{0}\"", currentGame.Title)); if (currentStrike.RepeatTimes < 1) throw new ArgumentException(string.Format("Параметр \"RepeatTimes\" меньше 1, игра \"{0}\"", currentGame.Title)); GameObjects["currentStrikeInfo"] = currentStrike; strikePlayer.Initialize(); }
private Game GetNextGame(Game game) { var gameIndex = Experiment.Games.FindIndex(t => t == game); var nextGame = Experiment.Games.Find(t => Experiment.Games.IndexOf(t) == gameIndex + 1); return nextGame; }
private static ExperimentHistory CreateHistory(int hitCount, int size, bool lastStrikeHit) { var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() { Title = "Game" }; var strikes = new List<Strike>(); var count = hitCount - 1; var j = 0; for (var i = 0; i < size; i++) { var strike = new Strike { IsHit = j < count }; j++; strikes.Add(strike); } strikes.Last().IsHit = lastStrikeHit; var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); return history; }
private static ExperimentHistory CreateHistory(double mean, double stddev, int size) { var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() {Title = "Game"}; var samples = Normal.Samples(mean, stddev).Take(size); var strikes = samples.Select(t => new Strike {ErrorDistance = t}).ToList(); var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); return history; }
public void SelectTest18() { #region Формирование исходных данных var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() { Title = "Game" }; var strike = new Strike() { ErrorDistance = 0 }; var strike2 = new Strike() { ErrorDistance = 1 }; var strikes = new List<Strike> { strike, strike2 }; var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); var settings = new List<PlayerHistorySample> { new PlayerHistorySample { ToStrike = "last - 10", GameTitle = "Game" } }; #endregion var samples = history.SelectSamples(settings); }
public void Initialize() { _stopwatch.Reset(); // Таймер _timer = _gameObjects["timer"] as Timer; if (_timer == null) throw new NullReferenceException("timer"); _timer.Reset(); // Таймер время до нажатия пробела _timerBeforeSpaceDown = _gameObjects["timerBeforeSpaceDown"] as Timer2; if (_timerBeforeSpaceDown == null) throw new NullReferenceException("timerBeforeSpaceDown"); _timerBeforeSpaceDown.Reset(); _firstLoop = true; _currentStrike = _gameObjects["currentStrikeInfo"] as StrikeInfo; if (_currentStrike == null) throw new NullReferenceException("currentStrikeInfo"); var ballStartPosition = CreateBallStartPosition(); StoreBallStartPosition(ballStartPosition); _ball = GetBall(); SetupBall(_ball, ballStartPosition); var holeStartPosition = CreateHoleStartPosition(); StoreHoleStartPosition(holeStartPosition); _hole = GetHole(); SetupHole(_hole, holeStartPosition); #region Задание параметров отображаемой мишени var holeView = _gameObjects["holeView"] as HoleView; if (holeView == null) throw new NullReferenceException("holeView"); var holeInfo = _currentStrike.Hole; // если отображаемый размер мишени не задан, используется действительный размер holeView.SetSize(holeInfo.VisibleSize == null ? holeInfo.Size : holeInfo.VisibleSize.Value); #endregion // Текущая игра _currentGame = _gameObjects["currentGame"] as Game; if (_currentGame == null) throw new NullReferenceException("currentGame"); // Все игроки var users = _gameObjects["users"] as Users; if (users == null) throw new NullReferenceException("users"); // Текущий игрок - испытуемый бьет первым _currentUser = users.FirstOrDefault(t => t.UserInfo.UserType == UserTypeEnum.User); if (_currentUser == null) throw new NullReferenceException("currentUser"); _gameObjects["currentUser"] = _currentUser; // Снять выделение с имени игрока var botScoreView = GameObjects["botScoreView"] as UserScoreView; if (botScoreView != null) { botScoreView.IsActive = false; } // Показать очки игрока var userScoreView = GameObjects["userScoreView"] as UserScoreView; if (userScoreView == null) throw new NullReferenceException("userScoreView"); userScoreView.Score = _currentUser.TotalScore; userScoreView.IsActive = true; GameObjects["currentUserScoreView"] = userScoreView; // Режим игрока var experiment = GameObjects["experiment"] as Experiment; if (experiment == null) throw new NullReferenceException("experiment"); _inTestMode = experiment.Mode != null && experiment.Mode.Value == ExeprimentModeEnum.Test && _currentStrike.InTestMode != null; }
public bool Play() { var playing = gamePlayer.Play(); if (gamePlayer.IsCancelled) { IsCancelled = true; } if (IsCancelled) return false; if (!playing) { var nextGame = GetNextGame(currentGame); if (nextGame != null) { currentGame = nextGame; gameObjects["currentGame"] = currentGame; gameObjects["nextGame"] = GetNextGame(currentGame); gamePlayer.Initialize(); playing = true; } } return playing; }