SHOW:
|
|
- or go back to the newest paste.
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 | } |