Guest User

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

a guest
Mar 16th, 2016
28
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. var x = 0;
  19. var keybogram = ['Start'];
  20. var nonPrintedKeys = "ShiftRight ShiftLeft ControlRight ControlLeft AltRight AltLeft".split(' ');
  21.  
  22. document.onkeydown = function(ev) {
  23.     if (game.gamestatus === 'racing') {
  24.         if (!game.finished) {
  25.             y = performance.now();
  26.             keybogram.push([ev.code, y - x, ev]); x = y;
  27.         } else {
  28.             analyzeKeybogram(keybogram);
  29.         }
  30.     }
  31.        
  32. }
  33.  
  34.  
  35. function analyzeKeybogram(keybogram) {
  36.     var cleanKeybogram = [];
  37.     for (i = 0; i < keybogram.length; i++) {
  38.         if (keybogram[i][0] === 'Backspace') {
  39.             if (keybogram[i][2].ctrlKey) {
  40.                 while (cleanKeybogram[cleanKeybogram.length-1][0] === 'Space')  cleanKeybogram.pop();
  41.                 while (cleanKeybogram[cleanKeybogram.length-1][0] != 'Space' && cleanKeybogram[cleanKeybogram.length-1] != 'Start')  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 = 2; i < keybogram.length; i++) { totalTime += keybogram[i][1]; }
  52.  
  53. var cleanTime = 0;
  54. for (i = 2; i < cleanKeybogram.length; i++) { cleanTime += cleanKeybogram[i][1]; }
  55.  
  56. console.log("Net speed:", (cleanKeybogram.length-1)/(totalTime/60000));
  57. console.log("Brutto* speed:", (cleanKeybogram.length-1)/(cleanTime/60000));
  58. }
Add Comment
Please, Sign In to add comment