banner

Los het raadsel op!

layout-2

Hierbij heeft de code kunnen bemachtigen! Was het uit nieuwsgierigheid? Voor studie of om de code te gebruiken in uw eigen project? Gelieve dan niet exact hetzelfde te gebruiken. Ik bescherm deze code omdat ik het copyright iets of wat wil behouden.

In 2019 ongeveer kwam ik op het idee om niet met een log-in maar wel met een toetsencombinatie een website te openen en zo lichtjes te kunnen beveiligen. Bij het raadplegen op google kwam ik hierover informatie tegen betreffende array's. Uiteindelijk vond ik een script op stackoverflow die ongeveer deed wat ik zocht maar niet 100%. Met wat extra research in javascript en logica kreeg ik uiteindelijk het resultaat wat mijn idee betrof. Het stond een jaar online en helaas werkte het niet op alle systemen. Het bleek nadien dat er toch nog redelijk wat fouten in zaten. Tot op de dag vandaag kan ik nog steeds niet opnieuw doen wat ik toen voor elkaar kreeg en moet ik nog steeds het script bestuderen om er uiteindelijk 100% functionaliteit uit te krijgen en javascript beter te leren begrijpen. Op mijn reference pagina voeg ik alle research toe die ik raadpleeg maar helaas kan ik stukje script waarmee ik mijn idee kon aanvatten niet meer terugvinden.

In Update 1 heb ik chatgpt geraadpleegd om de reset-functie toe te voegen en bij het correct invoeren van de button sequence het achtergrondkleur van de button. Dit ging echter niet vanzelf en er moest veel logica doorgeven worden aan de AI bot zelf. Ook zocht ik hierbij nog steeds informatie op via google en stackoverflow. In totaal besloeg het een tijdspanne van 6-uren met chatgpt. Wat ik werkelijk nooit alleen zou gevonden hebben, tenzij ik er over een veel langere tijd meer studie instak, en dan nog.

In Update 2 zijn extra buttons toegevoegd en smiley's zoals in het originele script, echter is er nog geen werkende functie aanwezg die de button bij in het inklikken de juiste smiley blijft weergeven als de sequence correct is. In Update 1 was dit mogelijk door de value van de buttons in een array te plaatsen. Ik probeerde om deze value van cijfers te veranderen in emoticons maar dan werkte het systeem niet meer. Nochtans zou het mogelijk zijn om niet met een cijfer te moeten werken in button.value volgens chatgpt.

Binnenkort zal ik de scripts in een codepen zetten. Ik moet mij eerst er nog op registreren.

Indien u deze pagina bezocht heeft wilt u dan ook zo vriendelijk zijn een comment achter te laten? T'beste nog!

  • Originele code
  • 
    

    const hit = ["๐Ÿซฃ", "๐Ÿ‘‰", "๐Ÿ‘ˆ", "๐Ÿค"]; var key = document.getElementsByTagName( "button" ); var chain = jQuery.makeArray( key ); for (var i = 0; i < hit.length; i++) { (function (i) { chain[i].onclick = function () { this.innerHTML = hit[i]; }; }(i)); } var len = hit.length; document.getElementsByClassName("format").innerHTML = len; console.log(hit) var buttons = document.querySelectorAll('button'), i; for (i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function() { var pressed = document.getElementById('pressed'); pressed.value += this.value + "|"; if (pressed.value === '1|2|3|4|') { alert('You unlocked it!'); const element = document.getElementById("dot"); element.addEventListener("click", function() { setTimeout(function(){ document.getElementById('T').style.top = '-50%'; }, 2000); // 1000 = 1 seconds setTimeout(function(){ document.getElementById('B').style.bottom = '-50%'; }, 2000); // 1000 = 1 seconds }); } if (pressed.value.length >= 10) { //Start over pressed.value = ""; } }, false); } const welkom = function(){document.getElementById("open").play()};

  • Update 1
  • 
    

    // Initialiseer de hit-array met de waarden 1, 2, 3, 4 let hit = ["2", "3", "1", "4"]; // Voeg de event listener toe aan de reset knop om de array te resetten document.getElementById('resetButton').addEventListener('click', function() {resetArray();}); // Voeg event listeners toe aan alle knoppen, behalve de resetknop document.querySelectorAll('.format:not(#resetButton)').forEach(function(button) { button.addEventListener('click', function () { var pressed = document.getElementById('pressed'); pressed.value += this.value + "|"; // Verander de achtergrondkleur van de geklikte knop naar LightGoldenRodYellow this.style.backgroundColor = 'LightGoldenRodYellow'; // Controleer of de geklikte knop in de juiste volgorde is if (this.value === hit[0]) { // Als de knop in de juiste volgorde is, verwijder deze waarde uit de hit-array hit.shift(); // Controleer of de array correct is en de knop "dot" klikbaar wordt if (pressed.value === '2|3|1|4|') { const button = setTimeout(function () { document.getElementById('dot').style.cssText = 'background-color: #669966;-webkit-transform:scale(2)'; document.getElementById('dot').disabled = false; }, 200); // Maak de knop "dot" klikbaar document.getElementById('dot').addEventListener('click', function () { if (!this.disabled) { welkom(); // Speel de audio af // Voer verdere acties uit wanneer de knop "dot" wordt geklikt setTimeout(function () { $('#content')[0].style.display = 'none'; }, 1600); setTimeout(function () { $('#lijn')[0].style.display = 'none'; }, 1600); setTimeout(function () { $('#social')[0].style.display = 'none'; }, 1600); setTimeout(function () { $('#U')[0].style.left = '-50%'; }, 2000); setTimeout(function () { $('#key')[0].style.left = '0%'; }, 2000); setTimeout(function () { $('#I')[0].style.left = '0vw'; }, 2100); setTimeout(function () { $('#R')[0].style.right = '-50%'; }, 2000); setTimeout(function () { $('#D')[0].style.right = '0vw'; }, 2100); } else { // Geef een melding weer dat de volgorde nog niet compleet is document.getElementById('input').textContent = 'Wrong'; } }); } } else { // Als de knop niet in de juiste volgorde is, reset de hit-array resetArray(); } if (pressed.value.length >= 10) { pressed.value = ""; } }); }); // Reset de array alleen wanneer de resetknop wordt geklikt function resetArray() { document.getElementById('pressed').value = ""; // Reset de waarde van pressed // Reset de achtergrondkleur van alle knoppen document.querySelectorAll('.format:not(#resetButton)').forEach(function(button) { button.style.backgroundColor = ''; // Reset de achtergrondkleur }); // Reset de hit-array naar de initiรซle waarde hit = ["2", "3", "1", "4"]; } // Aangepaste welkom functie const welkom = function () { if (!document.getElementById('dot').disabled && document.getElementById('pressed').value === '2|3|1|4|') { $("#open")[0].play(); } };

  • Update 2
  • 
    

    const mousedown = ["๐Ÿ˜Š", "๐Ÿคช", "๐Ÿค", "๐Ÿคซ","๐Ÿ˜ฒ","๐Ÿ˜ตโ€๐Ÿ’ซ","๐Ÿคข","๐Ÿ˜‡","๐Ÿคฏ","๐Ÿซจ","๐Ÿค’","๐Ÿคฌ","๐Ÿซฃ","๐Ÿง","๐Ÿ˜ด","๐Ÿค—"]; const mouseleave = ["๐Ÿค”", "๐Ÿค”", "๐Ÿค”", "๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”","๐Ÿค”"]; const mouseover = ["๐Ÿ˜Š", "๐Ÿคช", "๐Ÿค", "๐Ÿคซ","๐Ÿ˜ฒ","๐Ÿ˜ตโ€๐Ÿ’ซ","๐Ÿคข","๐Ÿ˜‡","๐Ÿคฏ","๐Ÿซจ","๐Ÿค’","๐Ÿคฌ","๐Ÿซฃ","๐Ÿง","๐Ÿ˜ด","๐Ÿค—"]; var key = document.getElementsByClassName("format"); var chain = jQuery.makeArray(key); for (var i = 0; i < chain.length; i++) { (function(i) { var timer; chain[i].addEventListener('mousedown', function() { clearTimeout(timer); this.innerHTML = mousedown[i]; }, true); chain[i].addEventListener('mouseover', function() { clearTimeout(timer); this.innerHTML = mouseover[i]; }); chain[i].addEventListener('mouseleave', function() { timer = setTimeout(() => { this.innerHTML = mouseleave[i]; }, 2000); }); })(i); } var buttons = document.querySelectorAll('button'), i; for (i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function() { var pressed = document.getElementById('pressed'); pressed.value += this.value + "|"; if (pressed.value === '1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|') { //alert('You unlocked it!'); const button = document.getElementById('dot').style.cssText = 'background-color: #669966;-webkit-transform:scale(1.5)'; const element = document.getElementById("dot"); element.addEventListener("click", function() { setTimeout(function(){ document.getElementById('T').style.top = '-50%'; }, 2000); // 1000 = 1 seconds setTimeout(function(){ document.getElementById('B').style.bottom = '-50%'; }, 2000); // 1000 = 1 seconds setTimeout(function(){ document.getElementById('dot').style.display = 'none'; }, 2000); // 1000 = 1 seconds }); } if (pressed.value.length >= 40) { //Start over pressed.value = ""; } }, false); } const welkom = function(){document.getElementById("open").play()};

    comments