Path: blob/main/static/src/gs/public/breaklock/lab/bruteCalc.js
1330 views
#!/usr/bin/env node12if (!process.argv[2] || process.argv[2])34var patternLength = parseInt(process.argv[2]),5limit = 9,6proxies = [7[0,2,1],8[2,0,1],9[2,8,5],10[8,2,5],11[6,8,7],12[8,6,7],13[0,6,3],14[6,0,3],15[0,8,4],16[8,0,4],17[2,6,4],18[6,2,4]19]2021if (!patternLength || patternLength < 1 || patternLength > limit) {22console.log('Usage: node bruteCalc.js patternLength')23console.log('Please use a valid \'patternLength\' value (between 1 and 9)')24process.exit(1)25}2627function bf (length, stack, buffer) {28buffer = !buffer ? [] : buffer;29if (length <= 0) {30stack.push(buffer)31return stack32}33for (var i = 0; i < limit; i++) {34if (buffer.indexOf(i) != -1) {35continue36}37let pop = buffer[(buffer.length || 1) - 1]38if (buffer.length > 0 && proxies.find(pr => pr[0] == pop && pr[1] == i && buffer.indexOf(pr[2]) == -1)) {39continue40}4142let clone = buffer.concat([])43clone.push(i)44bf(length-1,stack,clone)45}46return stack47}4849var bfList = bf(patternLength, [])5051bfList.forEach(s => console.log(s.join('')))52console.log('-----')53console.log('Pattern length : ' + patternLength)54console.log('Lock founds : ' + bfList.length)555657