コード例 #1
0
        public void KeyDown(string key)
        {
            AddKeyUsage(key);
            RaisePropertyChanged("KeyUsageList");

            double sec = Stats.KeyboardActivity.Update(Statistics.InactivityThreshold);

            RaisePropertyChanged("KeyboardActivity");

            if (sec < 4 && sec > 0.1)
            {
                double perMinute = 60 / sec;
                TypingSpeed.Add(perMinute);
            }
            RaisePropertyChanged("TypingSpeed");
            RaisePropertyChanged("TypingSpeedList");

            Stats.KeyStrokes++;
            RaisePropertyChanged("KeyStrokes");

            Stats.KeyCountPerHour.Increase();
            RaisePropertyChanged("KeyCountPerHour");
            RaisePropertyChanged("KeyCountPerHourList");
            RaisePropertyChanged("Report");
        }
コード例 #2
0
ファイル: LevelStatistics.cs プロジェクト: RavingRabbit/Labs
 public LevelStatistics(Level level, int errorsNumber, TypingSpeed typingSpeed, bool complited)
 {
     if (level == null)
         throw new ArgumentNullException("level");
     if (errorsNumber < 0)
         throw new ArgumentException(Resources.Level_Invalid_maxErrorsNumber_ExceptionMsg, "errorsNumber");
     if (typingSpeed == null)
         throw new ArgumentNullException("typingSpeed");
     _level = level;
     _errorsNumber = errorsNumber;
     _typingSpeed = typingSpeed;
     _complited = complited;
 }
コード例 #3
0
ファイル: LevelForm.cs プロジェクト: RavingRabbit/Labs
 private void button1_Click(object sender, EventArgs e)
 {
     var text = textTextBox.Text;
     int errorsNumber;
     if (!int.TryParse(errorsTextBox.Text, out errorsNumber) || errorsNumber < 0)
     {
         MessageBox.Show("Количество ошибок - целое неотрицательное число.");
         return;
     }
     int ts;
     if (!int.TryParse(typingSpeedTextBox.Text, out ts) || ts < 0)
     {
         MessageBox.Show("Скорость печати - целое неотрицательное число.");
         return;
     }
     var typingSpeed = new TypingSpeed(ts);
     var name = levelNameTextBox.Text;
     var level = new Level(text, errorsNumber, typingSpeed, name);
     OnLevelCreated(new EventArgs<Level>(level));
     Dispose();
 }
コード例 #4
0
ファイル: LevelEngine.cs プロジェクト: RavingRabbit/Labs
 private void Finish()
 {
     _finished = true;
     _finishTime = DateTime.Now;
     var elapsedTime = _finishTime - _startTime;
     var typingSpeed = new TypingSpeed(_level.Text.Length, elapsedTime);
     var isSucceed = _errorsNumber <= _level.MaxErrorsNumber && typingSpeed >= _level.MinTypingSpeed;
     var levelStatistics = new LevelStatistics(_level, _errorsNumber, typingSpeed, isSucceed);
     OnFinished(new EventArgs<LevelStatistics>(levelStatistics));
 }