Last active
February 13, 2018 17:14
-
-
Save phts/69d8f50223030fc2cac189184daf2476 to your computer and use it in GitHub Desktop.
Quiz solver at Epam's Adaptation Portal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
javascript:(function() { | |
var interval, | |
permutations = { | |
check: { | |
'3': [[false, false, true], | |
[false, true, false], | |
[true, false, false], | |
[false, true, true], | |
[true, true, false], | |
[true, true, true]], | |
'4': [[false, false, false, true], | |
[false, false, true, false], | |
[false, false, true, true], | |
[false, true, false, false], | |
[false, true, false, true], | |
[false, true, true, false], | |
[false, true, true, true], | |
[true, false, false, false], | |
[true, false, false, true], | |
[true, false, true, false], | |
[true, false, true, true], | |
[true, true, false, false], | |
[true, true, false, true], | |
[true, true, true, false], | |
[true, true, true, true]], | |
'5': [[false, false, false, false, false], | |
[false, false, false, false, true], | |
[false, false, false, true, false], | |
[false, false, false, true, true], | |
[false, false, true, false, false], | |
[false, false, true, false, true], | |
[false, false, true, true, false], | |
[false, false, true, true, true], | |
[false, true, false, false, false], | |
[false, true, false, false, true], | |
[false, true, false, true, false], | |
[false, true, false, true, true], | |
[false, true, true, false, false], | |
[false, true, true, false, true], | |
[false, true, true, true, false], | |
[false, true, true, true, true], | |
[true, false, false, false, false], | |
[true, false, false, false, true], | |
[true, false, false, true, false], | |
[true, false, false, true, true], | |
[true, false, true, false, false], | |
[true, false, true, false, true], | |
[true, false, true, true, false], | |
[true, false, true, true, true], | |
[true, true, false, false, false], | |
[true, true, false, false, true], | |
[true, true, false, true, false], | |
[true, true, false, true, true], | |
[true, true, true, false, false], | |
[true, true, true, false, true], | |
[true, true, true, true, false], | |
[true, true, true, true, true]], | |
'6': [[false, false, false, false, false, false], | |
[false, false, false, false, false, true], | |
[false, false, false, false, true, false], | |
[false, false, false, false, true, true], | |
[false, false, false, true, false, false], | |
[false, false, false, true, false, true], | |
[false, false, false, true, true, false], | |
[false, false, false, true, true, true], | |
[false, false, true, false, false, false], | |
[false, false, true, false, false, true], | |
[false, false, true, false, true, false], | |
[false, false, true, false, true, true], | |
[false, false, true, true, false, false], | |
[false, false, true, true, false, true], | |
[false, false, true, true, true, false], | |
[false, false, true, true, true, true], | |
[false, true, false, false, false, false], | |
[false, true, false, false, false, true], | |
[false, true, false, false, true, false], | |
[false, true, false, false, true, true], | |
[false, true, false, true, false, false], | |
[false, true, false, true, false, true], | |
[false, true, false, true, true, false], | |
[false, true, false, true, true, true], | |
[false, true, true, false, false, false], | |
[false, true, true, false, false, true], | |
[false, true, true, false, true, false], | |
[false, true, true, false, true, true], | |
[false, true, true, true, false, false], | |
[false, true, true, true, false, true], | |
[false, true, true, true, true, false], | |
[false, true, true, true, true, true], | |
[true, false, false, false, false, false], | |
[true, false, false, false, false, true], | |
[true, false, false, false, true, false], | |
[true, false, false, false, true, true], | |
[true, false, false, true, false, false], | |
[true, false, false, true, false, true], | |
[true, false, false, true, true, false], | |
[true, false, false, true, true, true], | |
[true, false, true, false, false, false], | |
[true, false, true, false, false, true], | |
[true, false, true, false, true, false], | |
[true, false, true, false, true, true], | |
[true, false, true, true, false, false], | |
[true, false, true, true, false, true], | |
[true, false, true, true, true, false], | |
[true, false, true, true, true, true], | |
[true, true, false, false, false, false], | |
[true, true, false, false, false, true], | |
[true, true, false, false, true, false], | |
[true, true, false, false, true, true], | |
[true, true, false, true, false, false], | |
[true, true, false, true, false, true], | |
[true, true, false, true, true, false], | |
[true, true, false, true, true, true], | |
[true, true, true, false, false, false], | |
[true, true, true, false, false, true], | |
[true, true, true, false, true, false], | |
[true, true, true, false, true, true], | |
[true, true, true, true, false, false], | |
[true, true, true, true, false, true], | |
[true, true, true, true, true, false], | |
[true, true, true, true, true, true]] | |
}, | |
radio: { | |
'2': [[true, false], | |
[false, true]], | |
'3': [[true, false, false], | |
[false, true, false], | |
[false, false, true]], | |
'4': [[true, false, false, false], | |
[false, true, false, false], | |
[false, false, true, false], | |
[false, false, false, true]], | |
'5': [[true, false, false, false, false], | |
[false, true, false, false, false], | |
[false, false, true, false, false], | |
[false, false, false, true, false], | |
[false, false, false, false, true]], | |
'6': [[true, false, false, false, false, false], | |
[false, true, false, false, false, false], | |
[false, false, true, false, false, false], | |
[false, false, false, true, false, false], | |
[false, false, false, false, true, false], | |
[false, false, false, false, false, true]], | |
'7': [[true, false, false, false, false, false, false], | |
[false, true, false, false, false, false, false], | |
[false, false, true, false, false, false, false], | |
[false, false, false, true, false, false, false], | |
[false, false, false, false, true, false, false], | |
[false, false, false, false, false, true, false], | |
[false, false, false, false, false, false, true]] | |
} | |
}, | |
$sections = $('.questionnaire-text[data-lang="en"] section'), | |
iteration = 0, | |
data = $sections.map(function () { | |
var $this = $(this), | |
checkboxes = $this.find('input[type=checkbox]'), | |
radiobuttons = $this.find('input[type=radio]'), | |
type = checkboxes.size() ? 'check' : 'radio', | |
inputs = type === 'check' ? checkboxes : radiobuttons; | |
return { | |
title: $('.question-name', $this).text(), | |
inputs: inputs, | |
type: type | |
}; | |
}); | |
data = _.indexBy(data, 'title'); | |
$.fx.off = true; | |
function interate() { | |
if (iteration === 0) { | |
var errorSections = $sections.toArray(); | |
} else { | |
var errorSections = _.filter($sections.toArray(), function (it) { | |
return $(it).is('.error'); | |
}); | |
} | |
if (!errorSections.length) { | |
clearInterval(interval); | |
return; | |
} | |
if (iteration > 64) { | |
clearInterval(interval); | |
throw new Error('Not solved'); | |
} | |
_.forEach(errorSections, function(it) { | |
var $this = $(it), | |
title = $('.question-name', $this).text(); | |
entry = data[title], | |
perms = permutations[entry.type][entry.inputs.length][iteration]; | |
if (!perms) { | |
return; | |
} | |
_.forEach(entry.inputs, function (v, i) { | |
$(v).prop('checked', perms[i]); | |
}); | |
}); | |
$('.done-button').click(); | |
iteration++; | |
} | |
interval = setInterval(interate, 5000); | |
console.log('interval=', interval); | |
interate(); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment