View difference between Paste ID: WYkhZMgw and HQ3q8Vwz
SHOW: | | - or go back to the newest paste.
1
/*
2-
var keybogram = [];
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-
				while (cleanKeybogram[cleanKeybogram.length-1] != 'Space') cleanKeybogram.pop();
23+
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-
for (i = 1; i < keybogram.length; i++) { totalTime += keybogram[i][1]; }
33+
34
35
function analyzeKeybogram(keybogram) {
36-
for (i = 1; i < cleanKeybogram.length; i++) { cleanTime += cleanKeybogram[i][1]; }
36+
37
	for (i = 0; i < keybogram.length; i++) {
38-
console.log("Net speed:", cleanKeybogram.length/(totalTime/60000));
38+
39-
console.log("Brutto* speed:", cleanKeybogram.length/(cleanTime/60000));
39+
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
}