示例#1
0
文件: Score.cs 项目: aldarg/academit
 public Score(GameSettings.DifficultyLevels level, string name, int result)
 {
     Level  = level;
     Name   = name;
     Result = result;
     Date   = DateTime.Now;
 }
示例#2
0
        public void NewGame(GameSettings.DifficultyLevels level, int width, int height, int minesTotal)
        {
            _settings = new GameSettings(level, width, height, minesTotal);
            _field    = new Field(_settings);

            _view.FieldHeight = _field.Height;
            _view.FieldWidth  = _field.Width;
            _view.MinesTotal  = _field.MinesCount;
            _view.MinesLeft   = _field.MinesCount;

            _view.NewGame();
        }
示例#3
0
        public void NewGame(GameSettings.DifficultyLevels level = GameSettings.DifficultyLevels.Current)
        {
            if (level != GameSettings.DifficultyLevels.Current)
            {
                _settings = new GameSettings(level);
            }

            _field = new Field(_settings);

            _view.FieldHeight = _field.Height;
            _view.FieldWidth  = _field.Width;
            _view.MinesTotal  = _field.MinesCount;
            _view.MinesLeft   = _field.MinesCount;

            _view.NewGame();
        }
示例#4
0
        public bool CheckResult(GameSettings.DifficultyLevels level, int time)
        {
            var levelScores = _highscores
                              .Where(x => x.Level == level)
                              .OrderByDescending(x => x.Result)
                              .ToList();

            if (levelScores.Count < TopResultsCount)
            {
                return(true);
            }

            var maxScore = levelScores.First();

            return(time < maxScore.Result);
        }
示例#5
0
        public void AddResult(GameSettings.DifficultyLevels level, string name, int time)
        {
            var newScore = new Score(level, name, time);

            var scoreToRemove = _highscores
                                .Where(x => x.Level == level)
                                .OrderBy(x => x.Result)
                                .Skip(TopResultsCount - 1)
                                .ToList();

            if (scoreToRemove.Any())
            {
                _highscores.Remove(scoreToRemove.First());
            }

            _highscores.Add(newScore);
        }