/
script.js
36 lines (29 loc) · 1.25 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var flyd = require('../../lib');
var stream = flyd.stream;
var filter = require('../../module/filter');
var lift = require('../../module/lift');
var inLast = require('../../module/inlast');
var sampleOn = require('../../module/sampleon');
var magicSeq = 'abbaba';
var seqLen = magicSeq.length;
var maxTime = 5000;
var setMsg = function(msg) { message.innerHTML = msg; };
document.addEventListener('DOMContentLoaded', function() {
var clicks = stream();
btnA.addEventListener('click', clicks.bind(null, 'a'));
btnB.addEventListener('click', clicks.bind(null, 'b'));
var correctClicks = flyd.reduce(function(n, c) {
return magicSeq[n] === c ? n + 1
: magicSeq[0] === c ? 1
: 0;
}, 0, clicks);
var clicksInLast5s = inLast(maxTime, clicks);
lift(function(corrects, inLast5s) {
var complete = corrects === seqLen, inTime = inLast5s.length >= seqLen;
setMsg(complete && inTime ? 'Combination unlocked'
: complete && !inTime ? "You're not fast enough, try again!"
: corrects);
}, correctClicks, sampleOn(clicks, clicksInLast5s));
flyd.map(function(c) { console.log('cor', c); }, correctClicks);
flyd.map(function(c) { console.log('lst', c); }, clicksInLast5s);
});