Advertisement
Guest User

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

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