Advertisement
Guest User

Измеритель брутто* для Клавогонок

a guest
Mar 16th, 2016
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Урезанная клавограмма + измеритель брутто* для Клавогонок.
  3. автор: MMMAAANNN
  4. v 0.02
  5.  
  6. Это альфа версия. Чтобы ее использовать, нужно:
  7. 1) Скопировать этот код
  8. 2) Открыть JS-консоль браузера
  9. 3) Создать заезд
  10. 4) Вставить код в консоль и нажать Enter ДО НАЧАЛА ЗАЕЗДА
  11. 5) Пройти заезд
  12. 6) Нажать любую клавишу
  13. 7) В консоли прочесть результат замера скорости нетто и брутто*
  14.  
  15. Планируется далее оформить это все в юзерскрипт, чтобы не нужно было ничего никуда вставлять и чтобы результат выводился прямо на странице заезда, а не в консоли.
  16.  
  17. */
  18.  
  19. var x = 0;
  20. var keybogram = [];
  21. var nonPrintedKeys = "ShiftRight ShiftLeft ControlRight ControlLeft AltRight AltLeft".split(' ');
  22.  
  23. document.onkeydown = function(ev) {
  24.     if (game.gamestatus === 'racing') {
  25.         if (!game.finished) {
  26.             y = performance.now();
  27.             keybogram.push([ev.code, y - x, ev]); x = y;
  28.         } else {
  29.             analyzeKeybogram(keybogram);
  30.         }
  31.     }
  32.        
  33. }
  34.  
  35.  
  36. function analyzeKeybogram(keybogram) {
  37.     var cleanKeybogram = [];
  38.     for (i = 0; i < keybogram.length; i++) {
  39.         if (keybogram[i][0] === 'Backspace') {
  40.             if (keybogram[i][2].ctrlKey) {
  41.                 while (cleanKeybogram[cleanKeybogram.length-1] != 'Space') cleanKeybogram.pop();
  42.             } else {
  43.                 cleanKeybogram.pop();
  44.             }
  45.         } else if (nonPrintedKeys.indexOf(keybogram[i][0]) === -1) {
  46.             cleanKeybogram.push(keybogram[i]);
  47.         }
  48.     }
  49.  
  50. var totalTime = 0;
  51. for (i = 1; i < keybogram.length; i++) { totalTime += keybogram[i][1]; }
  52.  
  53. var cleanTime = 0;
  54. for (i = 1; i < cleanKeybogram.length; i++) { cleanTime += cleanKeybogram[i][1]; }
  55.  
  56. console.log("Net speed:", cleanKeybogram.length/(totalTime/60000));
  57. console.log("Brutto* speed:", cleanKeybogram.length/(cleanTime/60000));
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement