Hackthis.co.uk coding level 2

Calculates and fills in the solution to coding level 2 on hackthis.co.uk

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        Hackthis.co.uk coding level 2
// @namespace   urn://https://www.georgegillams.co.uk/greasemonkey/hackthis_coding_2
// @include     https://www.hackthis.co.uk/levels/coding/2
// @exclude     none
// @version     3
// @description Calculates and fills in the solution to coding level 2 on hackthis.co.uk
// @description:en Calculates and fills in the solution to coding level 2 on hackthis.co.uk
// @grant    		none
// ==/UserScript==

let answer = 'INCOMPLETE';

function decrypt(n) {
  if (n === ' ') {
    return n;
  }
  return String.fromCharCode(126 + 32 - n);
}

function solveLevel() {
  if (answer !== 'INCOMPLETE') {
    return;
  }
  const allElements = document.getElementsByTagName('textarea');
  for (let i = 0; i < allElements.length; i += 1) {
    const element = allElements[i];
    if (element.style.height === '140px') {
      element.style.backgroundColor = '#44aeff';
      if (answer === 'INCOMPLETE') {
        answer = '';
        const values = element.value.split(',');
        for (let j = 0; j < values.length; j += 1) {
          answer += decrypt(values[j]);
        }
      } else {
        element.value = answer;
      }
    }
  }
}

solveLevel();
setInterval(solveLevel, 500);